明確に言えば、基本ファイルではなく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
スクリプトを使用してこれを行う効率的な方法はありますか?
答え1
現在のcrontabをファイルにエクスポートしてcrontabを削除した後、以前に作成されたファイルを使用します。
$ crontab -l > cron_content
$ crontab -r
$ <this is where you do your stuff>
$ crontab cron_content
答え2
cronを別のファイルにコピーして変更し、cronを再適用します。
cron を一部のファイルにコピーします。
crontabl -l > filename
これでfilename
クローンがあるので、クローンを使って申請できます。
crontab filename
コメントは#で始まるので、行の先頭に#を追加して削除します。
コメントを追加および削除するには、次のものを使用できます。sed
コメントを削除(#)
sed -i -e 's/^# //g' filename
コメントを追加(#)
sed -i -e 's/^/# /g' filename
以下を使用してクローンを適用します。
crontab filename
スケジュールされたタスクを確認してください
crontab -l
Happy Scripting
答え3
次のスクリプトを使用して、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
答え4
古い投稿ですが、より高速で簡単な解決策があると思います。
Linuxでは、すべてがファイルです。 crontab は各ユーザーの cron を /var/spool/cron/ に保存します。
- Ubuntu 20.04:/var/spool/cron/crontabs/<ユーザー>
- RHEL7から:/var/spool/cron/<ユーザー>
したがって、次のことができます。
# comment
sed -i 's/^/#/' /var/spool/cron/<user>
# uncomment
sed -i 's/^#//' /var/spool/cron/<user>