/var/spool/abrt/をクリアする正しい方法は何ですか?

/var/spool/abrt/をクリアする正しい方法は何ですか?

私たちはからプロセスを自動化したいと思います/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

削除プロセスを次のように単純化しようとしています。 10日より古いディレクトリが削除されます。/var/spool/abrt/

find /var/spool/abrt/  -type d -ctime +10  -exec rm -rf {} \;

/var/spool/abrt/ディレクトリを消去するのは良い選択ですか?

ベストアンサー1

私の提案は次のとおりです。

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) スクリプトの実行:

sudo crontab -e

行を追加:

*/5 * * * * bash /home/yael/purgeabrt.sh

cron5分ごとにタスクを実行するため。

編集する:

set -eコマンドがゼロ以外の状態で終了すると、スクリプトの実行は終了します。

trap cleanup EXITスクリプトで発生する可能性のある信号をキャプチャし、クリーンアップコードを実行します。

メモ:スクリプトの最後の行の呼び出しはcleanup不要(重複)することができますが、コードの読みやすさを向上させます。

おすすめ記事