cronを簡単に有効または無効にする

cronを簡単に有効または無効にする

cron を有効にする必要があるときはいつでも、cron ファイルをスプール フォルダーにコピーします。

cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu 

これは機能しますか? 何か問題が発生する可能性はありますか?

アップデート: CentOS を使用

答え1

特定のユーザーに対して一部の cron ジョブを無効にする正式な方法は、入力しcrontab -e -u <user>#先頭にコメントアウトすることです。


アップデート

cron ファイルはシェル スクリプトの一部となるためです。

これを試して:

crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron

答え2

それ5月仕事。しかし..

前の投稿者が言ったように、これを行わないでください。 を使用してくださいcrontab -e。ファイルを直接編集すると機能する場合もありますが、堅牢な方法ではありません。関連するコンポーネントを更新すると、いつでもデータが壊れる可能性があります。また、移植性が低く、他のシステムではファイルが別の場所に保存される場合があります。これは、標準の iolib を使用する代わりに、自分で「printf」を実装するようなものです。

だから、このやり方はやらないでください。

編集: シェル スクリプトを使用して crontab を生成する必要がある場合は、パイプで内容を渡すだけですcrontab(疑似ファイル '-' も認識されます。マニュアル ページを参照してください)。

答え3

なぜコマンド を使用しないのですかcrontab -e、または root としてログインしている場合は ですかcrontab -e -u shantanu?

答え4

cron を再起動せずにジョブを一時停止したい場合 (たとえば 3 分ごとに実行されるジョブに影響する可能性があります)、スクリプトで簡単に作成または削除できるロック ファイルを使用できます。

*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job

したがって、ジョブを一時停止するには、次を使用します。

touch /tmp/job.lock

次の方法で、cron 内のスケジュールを再起動します。

rm /tmp/job.lock

この方法の利点は、crontab の編集ミス (スクリプトまたは手動) によってスケジュールが中断されたり cron が壊れたりすることを心配することなく、異なるジョブ (または、すべてが同じロック ファイルを使用する場合はジョブのグループ) に異なるロック ファイルを使用できることです。

関連情報