ファイルのローテーションなどで、5分おきなどでcronをまわしている処理の中で
一日一回出力先をローテーションする場合などは、dateコマンドを変数で持たせ
その変数をgrep -c に渡すことによって、その結果をif分に渡すことが出来る。
grep -c #cオプションは、該当する文字の個数を数えます。
【00:00にローテーションを実施】
date=`date +"%T"` #時間をhh:mm:ss形式で表示 -> 変数$dateに入れる
COUNT=`echo "${date}" | grep -cE "00:00:"` #grepにて00:00の個数を数える
#Eオプションは正規表現
if [ "${COUNT}" = "1" ] ; #if分にて00:00個数が1の場合“正”とする。
【確認事項】
COUNT行は、$date変数ではなく、直接
`date +"%T" | grep -cE "00:00:"`
でも、良いのかな。。。要確認です。
今回作ったシェルスクリプト
■キューに溜まっているメールの通数を調査する。
---
#!/bin/sh
date=`date +"%Y/%m/%d %T"`
COUNT=`echo "${date}" | grep -cE "18:40:"`
if [ "${COUNT}" = "1" ] ;
then
mv /var/log/mailcheck.log /var/log/mailcheck.0
touch /var/log/mailcheck.log
fi
if [ `ls /var/spool/mqueue | wc -l` -ge 10 ] ;
then
echo "${date} メールがキューに溜まっています。至急確認してください!"
else
echo "${date} GOOD!!"
fi
---
一日一回出力先をローテーションする場合などは、dateコマンドを変数で持たせ
その変数をgrep -c に渡すことによって、その結果をif分に渡すことが出来る。
grep -c #cオプションは、該当する文字の個数を数えます。
【00:00にローテーションを実施】
date=`date +"%T"` #時間をhh:mm:ss形式で表示 -> 変数$dateに入れる
COUNT=`echo "${date}" | grep -cE "00:00:"` #grepにて00:00の個数を数える
#Eオプションは正規表現
if [ "${COUNT}" = "1" ] ; #if分にて00:00個数が1の場合“正”とする。
【確認事項】
COUNT行は、$date変数ではなく、直接
`date +"%T" | grep -cE "00:00:"`
でも、良いのかな。。。要確認です。
今回作ったシェルスクリプト
■キューに溜まっているメールの通数を調査する。
---
#!/bin/sh
date=`date +"%Y/%m/%d %T"`
COUNT=`echo "${date}" | grep -cE "18:40:"`
if [ "${COUNT}" = "1" ] ;
then
mv /var/log/mailcheck.log /var/log/mailcheck.0
touch /var/log/mailcheck.log
fi
if [ `ls /var/spool/mqueue | wc -l` -ge 10 ] ;
then
echo "${date} メールがキューに溜まっています。至急確認してください!"
else
echo "${date} GOOD!!"
fi
---