LoginSignup
16
13

More than 5 years have passed since last update.

Cronをファイル単位で一時的に無効にする

Last updated at Posted at 2016-01-23

inb4 tl;dr

/etc/cron.d に置いてあるタスクを無効にする方法です。
ファイルの内容をコメントアウトしたり、別のディレクトリにファイルを移動させるといった方法があるのかなと思うのですが、ファイル単位で無効にする場合であれば、ファイル名を変更するだけでも可能です。

環境はCentOS6及び7で確認しています。
他のディストリビューションでも同様の動きをするかは不明ですので自己責任ということでお願い致します。

隠しファイルに変更する

ぶっちゃけこれをするだけです。
こうするだけで、 /etc/cron.d に置いてあるファイルは crond から認識されなくなり、処理がされなくなります。

実際に試してみる

実際に試してみる事にします。
/etc/cron.d ディレクトリに以下のようなファイルを作成します。

test
*/1 * * * * root date >> /root/date

1分毎に date コマンドを実行し、それをrootディレクトリにあるdateファイルに書き込んでいくだけのcronです。

数分経過したら /root/date ファイルを見てみます。

/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

ログも確認してみましょう。

/var/log/cron
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 ファイルを見てみます。

/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

無効にしてから一切の更新がありません。

ログも確認してみます。

/var/log/cron
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 の処理が動作していないことが確認できます。


以上です。

16
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
13