Rhel

什麼是清除 /var/spool/abrt/ 的正確方法

  • February 10, 2021

我們希望自動化從/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)創建一個shell腳本/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可能是不必要的(冗餘),但提高了程式碼的可讀性。

引用自:https://unix.stackexchange.com/questions/556307