Linux

cron によるLinuxサーバーでの定期バッチ実行

更新日:

Linux系において、cronがインストールされていると、cronというジョブスケジューリング機能が存在しており、crontabの中にある書籍で設定が保存できる。

cronのインストールと状態確認

・cronのインストール
# yum install cronie
・cronの状態確認
# systemctl status crond
参考:https://eng-entrance.com/linux-cron-at

ファイル場所(参考事例AWS)
・エラーログ格納ファイルの場所:[ec2-user@ip-10-0-40-10 ~]の「ファイル名.log」
・バッチファイルの格納場所:[ec2-user@ip-10-0-40-10 ~]の「ファイル名.sh」
(参考:shファイルの格納場所)
┗一般ユーザーも使うなら、/usr/local/bin/xxx.sh
┗システム管理用なら、/usr/local/sbin/xxx.sh、/root/bin/ xxx.sh
┗特定のユーザーしか使わないなら、$HOME/bin/ xxx.sh

シェルスクリプトファイルの作り方と格納法

*viを使ってもよい。AtomやEmacsなどのテキストエディタを使ってもよい。

<編集エディタvi(vim)の使い方>
・起動
$ vi ファイル名
・終了(まずはエスケープキー【Esc】を押す)
・保存済みのファイルを開いているvimから抜ける場合
:q
ファイルを保存しないでvimを抜ける場合
:q!
・ファイルを保存してからvimを抜ける場合
:wq

 

作成手順

① shファイルの作成
$ vi ファイル名.sh でエンター押下→viが起動する

・shファイルの中身の記述(参考:http://lab.hde.co.jp/2008/04/tail.html)
#!/bin/sh

mail_alert() {
while read i
do
echo $i | grep -q ERROR
if [ $? = “0” ];then
echo $i | mail -s ERROR *****@*****.jp
fi
done
}

tail -n 0 –follow=name –retry /home/ec2-user/ファイル名.log | mail_alert

・ファイルを保存して抜ける(①でtest.shと入力しているのでファイル名test.shで保存される。)
:wq

============================
参考:http://lab.hde.co.jp/2008/04/tail.html
参考:https://qiita.com/Qrg/items/107928672569a8141222

シェルスクリプトに権限を与える
$ chmod 755 ファイル名.sh

スクリプトの実行
$ ./ファイル名.sh

cronの設定・編集

===手順===================
・cronをviで起動し編集できるようにする
$ crontab -e

・毎時30分にnp_transaction_mailalert.shを実行
30 * * * * /home/ec2-user/ファイル名.sh

=========================

参考:https://eng-entrance.com/linux-cron-at
参考:https://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html

お勧め参考書:

 

-Linux

Translate »

Copyright© 解決方法あった! , 2021 All Rights Reserved Powered by STINGER.