/var/spool/abrt/
から古いディレクトリを削除するプロセスを自動化したいと考えています。
RHELマシン-バージョン7.xがあります。
既知の方法は次のようにすることです
# systemctl stop abrtd
# systemctl stop abrt-oops
そして、次のrmコマンドでこれらのディレクトリとファイルをすべて削除できます。
# abrt-cli rm /var/spool/abrt/*
そして、サービスを開始します
# systemctl start abrtd
# systemctl start abrt-oops
次のように削除プロセスを簡略化します-/var/spool/abrt/
から10日より古いディレクトリを削除します
find /var/spool/abrt/ -type d -ctime +10 -exec rm -rf {} \;
/var/spool/abrt/
ディレクトリを削除するのに適した方法ですか?
これが私の提案です:
1)シェルスクリプトを作成する/home/yael/purgeabrt.sh
$ cat purgeabrt.sh
#!/bin/bash
set -e
function cleanup()
{
systemctl start abrtd
systemctl start abrt-oops
}
trap cleanup EXIT
systemctl stop abrtd
systemctl stop abrt-oops
find /var/spool/abrt/ -type d -ctime +10 -exec abrt-cli rm {} \;
cleanup
2)スクリプトをrootとして実行します。
Sudo crontab -e
次の行を追加します。
*/5 * * * * bash /home/yael/purgeabrt.sh
cron
ジョブを5分ごとに実行するため。
編集:
set -e
は、コマンドがゼロ以外のステータスで終了した場合にスクリプトの実行を終了します。
trap cleanup EXIT
は、スクリプトにスローされる可能性のあるシグナルをキャッチし、クリーンアップコードを実行します。
注:スクリプトの最後の行でのcleanup
の呼び出しはおそらく不要(冗長)ですが、コードの可読性は向上しています。