シェルスクリプト newb here. まず、この問題について私を助けてくれた時間と労力に感謝します。
カスタム ディレクトリに保存されている /tmp とセッションを削除するには、シェル スクリプトと cron ジョブを作成する必要がありました。
私は数日前から基本を学んでおり、最初のシェル スクリプトと cron ジョブを試みています。
複数のシェル コマンドを実行して、他のコマンドが失敗した場合でもコマンドを実行できる最善の方法に困惑しています。また、失敗したコマンドについてログ レポートとメールを送信することも必要です。
アンパサンド (&&) またはセミコロンのいずれかを使用できることを認識しています。また、アンパサンドでは終了エラー チェックが許可されますが、セミコロンでは許可されないことも認識しています。
これが私のスクリプトです
TmpPurge.sh
#!/bin/bash
find /home/username/sessions -iname 'sess_*' -mmin +480 -exec rm -rf {} \; &&
find /home/username/sessions -iname 'sess_*' -mmin +240 -exec rm -rf {} \; &&
/usr/sbin/tmpwatch -umc 5 /home/username/sessions &&
/usr/sbin/tmpwatch -umc 6 /var/tmp &&
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator
if [ $? = 0 ];
then
echo "$(date) Tmp purge completed successfully with error code: $?. " >> /home/username/logs/TmpPurge.log
else
echo "$(date) Tmp purge exited with error code: $?. " >> /home/username/logs/TmpPurge.log
fi
echo -e "\r" >> /home/username/logs/TmpPurge.log
クロンジョブ:
20 3 * * * /bin/sh /home/username/scriptsdir/TmpPurge.sh > /home/username/logs/TmpPurge.log 2>&1
質問 1: スクリプトは正しいですか? 質問 2: 複数のコマンドを実行する最良の方法は何ですか? 上記でしょうか、それとも
find /home/username/sessions -iname 'sess_*' -mmin +480 -exec rm -rf {} \;
find /home/username/sessions -iname 'sess_*' -mmin +240 -exec rm -rf {} \;
/usr/sbin/tmpwatch -umc 5 /home/username/sessions;
/usr/sbin/tmpwatch -umc 6 /var/tmp;
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator
また
/usr/sbin/tmpwatch -umc 5 /home/username/sessions\%
/usr/sbin/tmpwatch -umc 6 /var/tmp\%
/usr/sbin/tmpwatch -umc 12 /var/cache/eaccelerator\%