crontab 誤刪恢復


某台服務器某賬號的 crontab 任務被清空,原因不明。同時,該服務器上的 crontab 任務備份未開啟。故思考如何恢復 crontab 任務。

經查,CentOS 系統的 crontab 任務的日志,打印在 /var/log/cron 之中。考慮過濾日志:

1
cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u

由此得到系統記錄過的 crontab 執行命令,過濾其他賬號的命令后即可追回目標賬號的 crontab 任務。

grep CMD  可以改為 grep "(root) CMD"  root 為某賬號的crontab 。

此外,考慮備份 crontab;腳本如下:

backup_crontab.sh
1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash

BACKUP_DIRECTORY="${HOME}/crontab_backup"

if [ ! -e "${BACKUP_DIRECTORY}" ]; then
mkdir -p ${BACKUP_DIRECTORY}
fi

crontab -l > ${BACKUP_DIRECTORY}/$(date '+%Y%m%d').txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM