Shell-Script
如何註釋所有 crontab 條目,然後使用腳本取消註釋
為了清楚起見,我想評論 crontab 條目,而不是基本文件。通常,我會這樣做
crontab -e
30 * * * * /u01/app/abccompny/scripts/GenerateAWRReport.pl 01,31 * * * * /u01/app/abccompny/scripts/table_growth_monitor.sh 30 0,4,8,12 /u01/shivam/script/getMongoData.sh
我在每行前面添加“#”並保存它。同樣,工作完成後,我刪除“#”。
#30 * * * * /u01/app/abccompny/scripts/GenerateAWRReport.pl #01,31 * * * * /u01/app/abccompny/scripts/table_growth_monitor.sh #30 0,4,8,12 /u01/shivam/script/getMongoData.sh
有沒有一種有效的方法可以使用腳本來做到這一點?
將目前的 crontab 導出到文件中,刪除 crontab,然後使用之前創建的文件。
$ crontab -l > cron_content $ crontab -r $ <this is where you do your stuff> $ crontab cron_content
您可以使用以下腳本在 crontab 中添加或刪除註釋。
#!/bin/bash # you must have permission to read the crontab if [[ $1 == "-add" ]]; then crontab -l > /tmp/cron_export awk '$0="#"$0' /tmp/cron_export > /tmp/cron_comment crontab -r crontab cron_comment elif [[ $1 == "-remove" ]]; then crontab -l > /tmp/cron_export awk '{ print substr($0,2) }' /tmp/cron_export > /tmp/cront_uncomment crontab -r crontab cron_uncomment else echo "no option was selected. Please use -add to add comments or -remove to remove comments" fi # Remove all the create files for the operations for f in /tmp/cron*; do [ -e "$f" ] && rm cron* || echo "No files to remove were found" break done
腳本的用法應該是:
添加評論
./youscriptname.sh -add
刪除評論
./youscriptname.sh -remove