Shell-Script

如何註釋所有 crontab 條目,然後使用腳本取消註釋

  • November 18, 2021

為了清楚起見,我想評論 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

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