inb4 tl;dr
/etc/cron.d
に置いてあるタスクを無効にする方法です。
ファイルの内容をコメントアウトしたり、別のディレクトリにファイルを移動させるといった方法があるのかなと思うのですが、ファイル単位で無効にする場合であれば、ファイル名を変更するだけでも可能です。
環境はCentOS6及び7で確認しています。
他のディストリビューションでも同様の動きをするかは不明ですので自己責任ということでお願い致します。
隠しファイルに変更する
ぶっちゃけこれをするだけです。
こうするだけで、 /etc/cron.d
に置いてあるファイルは crond
から認識されなくなり、処理がされなくなります。
実際に試してみる
実際に試してみる事にします。
/etc/cron.d
ディレクトリに以下のようなファイルを作成します。
*/1 * * * * root date >> /root/date
1分毎に date
コマンドを実行し、それをrootディレクトリにあるdateファイルに書き込んでいくだけのcronです。
数分経過したら /root/date
ファイルを見てみます。
2016年 1月 23日 土曜日 23:35:01 JST
2016年 1月 23日 土曜日 23:36:01 JST
2016年 1月 23日 土曜日 23:37:01 JST
2016年 1月 23日 土曜日 23:38:01 JST
2016年 1月 23日 土曜日 23:39:01 JST
ログも確認してみましょう。
Jan 23 23:35:01 example CROND[16724]: (root) CMD (date >> /root/date)
Jan 23 23:36:01 example CROND[16746]: (root) CMD (date >> /root/date)
Jan 23 23:37:01 example CROND[16760]: (root) CMD (date >> /root/date)
Jan 23 23:38:01 example CROND[16782]: (root) CMD (date >> /root/date)
Jan 23 23:39:01 example CROND[16798]: (root) CMD (date >> /root/date)
ちゃんと1分毎にcronが動いていることが確認できます。
では、 mv
コマンドを使い、 test
ファイルを .test
の隠しファイルに変更してみましょう。
$ sudo mv -i /etc/cron.d/{,.}test
すると、 /etc/cron.d
はこんな感じになります。
$ sudo ls -la /etc/cron.d/
合計 32
drwxr-xr-x. 2 root root 63 1月 23 23:39 .
drwxr-xr-x. 147 root root 12288 12月 26 20:51 ..
-rw-r--r--. 1 root root 36 1月 23 23:34 .test
-rw-r--r--. 1 root root 128 7月 27 19:57 0hourly
-rw-r--r--. 1 root root 108 9月 19 00:07 raid-check
-rw-------. 1 root root 235 3月 6 2015 sysstat
test
が隠しファイルになっている事が確認できます。
数分経過したら、確認のために再度 /root/date
ファイルを見てみます。
2016年 1月 23日 土曜日 23:35:01 JST
2016年 1月 23日 土曜日 23:36:01 JST
2016年 1月 23日 土曜日 23:37:01 JST
2016年 1月 23日 土曜日 23:38:01 JST
2016年 1月 23日 土曜日 23:39:01 JST
無効にしてから一切の更新がありません。
ログも確認してみます。
Jan 23 23:35:01 example CROND[16724]: (root) CMD (date >> /root/date)
Jan 23 23:36:01 example CROND[16746]: (root) CMD (date >> /root/date)
Jan 23 23:37:01 example CROND[16760]: (root) CMD (date >> /root/date)
Jan 23 23:38:01 example CROND[16782]: (root) CMD (date >> /root/date)
Jan 23 23:39:01 example CROND[16798]: (root) CMD (date >> /root/date)
Jan 23 23:40:02 example CROND[16816]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jan 23 23:50:01 example CROND[16917]: (root) CMD (/usr/lib64/sa/sa1 1 1)
23:39:01 を最後に、それ以降 test の処理が動作していないことが確認できます。
以上です。