Cron

停止 cron 為備份腳本發送郵件?

  • August 7, 2015

我已經設置了一個備份腳本,以每小時使用 cron 備份我的 Minecraft 伺服器上的世界數據,但由於玩家不斷編輯世界,tar 告訴我文件在讀取時發生了變化。我在腳本中的 tar 添加了 –ignore-command-error ,當我手動執行它時,它會抑制任何錯誤,但是 cron 仍然會發送一條郵件消息,說文件在被讀取時被更改,並最終淹沒我的郵件,因為它是每小時執行一次。有人知道怎麼修這個東西嗎?這是腳本:

filename=$(date +%Y-%m-%d)
cd /home/minecraft/Server/
for world in survival survival_nether survival_the_end creative superflat
do
if [ ! -d "/home/minecraft/backups/$world" ]; then
mkdir /home/minecraft/backups/$world
fi
find /home/minecraft/backups/$world -mtime +1 -delete
tar --ignore-command-error -c $world/ | nice -n 10 pigz -9 > /home/minecraft/backups/$world/$filename.tar.gz
done

Cron 將嘗試發送一封電子郵件,其中包含執行命令時可能出現的任何輸出。從 cron 的手冊頁:

執行命令時,任何輸出都會郵寄給 crontab 的所有者(或者發送給 crontab 中 MAILTO 環境變數中指定的使用者,如果存在的話)。任何作業輸出也可以使用 -s 選項發送到 syslog。

因此,要為特定的 crontab 條目禁用它,只需擷取所有命令輸出並將其定向到文件或/dev/null.

30 * * * * notBraiamsBackup.sh >/dev/null 2>&1

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