Linux crontab 任務誤刪恢復及備份步驟
阿新 • • 發佈:2018-09-29
鍵盤 The cto 你在 文件中 由於 line ffline 備份 crontab任務誤刪恢復及備份步驟
日常運維管理中,我們可能會碰到各種奇葩的問題,當然也包括誤操作。比如使用 crontab -e 命令執行編輯定時任務時,由於手抖或鍵盤舒適度(不失禮貌的笑臉)等問題,
誤寫成 crontab -r 。是的,你沒看錯,該賬戶下的 crontab 任務被清空。下面我們將進行 crontab 任務的恢復和備份操作。
說明??:
crontab -r :-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。
crontab 任務的恢復
經查,CentOS 系統的 crontab 任務的日誌,打印在 /var/log/cron 之中。考慮過濾日誌:
cat /var/log/cron* | grep -i "某個用戶" | grep "CMD" | awk -F ‘(‘ ‘{print $3}‘ | awk -F ‘)‘ ‘{print $1}‘ | sort -u > crontab_tmp
說明??:
- grep -i "某個用戶" :是為了過濾某個用戶的信息。比如你在test這個賬戶下誤操作“crontab -r”刪除當前用戶的crontab文件,那麽你可以使用 grep -i "test" 過濾test賬戶使用的
命令。 - 後續根據提取出來的命令再去 /var/log/cron文件中確認一下時間間隔,按照指定的方式恢復至/var/spool/cron/。
crontab 任務的備份
說明??:每天早上七點對crontab 進行備份 ,同時刪除7天前的數據
腳本如下:
backup_crontab.sh #!/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 find ${HOME}/crontab_backup -mtime +7 -name ‘*.txt‘ -exec rm -rf {};
把上面的腳本放在 crontab 定時任務中執行:
## backup_crontab
0 7 * * * cd /data/siterecoffline && sh backup_crontab.sh
Linux crontab 任務誤刪恢復及備份步驟