小技チョコレート

ちょっとした小技を紹介するだけのブログです。

luckyBackupが意図しない時刻にも実行される場合の対処法

例えば、毎日の午前9:00に自動でバックアップをするようluckyBackupで設定してあるのに、その時刻以外にもluckyBackupが自動でバックアップを行う、という現象が起こることがあるようです。

それは、luckyBackupの"schedule"の画面で remove のボタンと cron IT!! のボタンを押して取り除いたはずのスケジュールが、crontabファイルからは正しく取り除かれずに残ってしまい、その残ったものが実行されているせいではないか、と思われます。

f:id:ichbin:20180513212413p:plain
(例えば、この画像に載っている15:00と21:00のスケジュールを remove ボタンで消してから cron IT!! を押しても、crontabファイルからはその2つのスケジュールが消えていない、というようなこと)

端末で

crontab -l

と入力すると、ログイン中のユーザーのcrontabファイルの内容が表示されます。その中で、

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0 9 * * *   /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
0 15 * * *  /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
0 21 * * *  /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ end of luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

というように、"luckybackup entries"と"end of luckybackup entries"で挟まれた領域(行)が、luckyBackupのスケジュールを示しています。行頭が"0 9 * * *"などとなっているのが、個々のスケジュールに相当します。上述の例では3つのスケジュールが存在しています。

luckyBackupの画面で消したはずのスケジュールが、この挟まれた領域の中で消えずに残っていれば、それを消すことで、luckyBackupの不要な実行を止めることができます。*1

その手順を紹介します。

まず、crontabファイルを編集するエディタを指定します。ここでは例としてgeditを指定することにします。

端末を起動し、

$ EDITOR=gedit
$ export EDITOR

と入力。

次に、同じく端末で

crontab -e

と入力。

すると、geditが起動し、下記のようなテキストが表示されます。

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0 9 * * *    /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
0 15 * * *    /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
0 21 * * *    /usr/bin/luckybackup -c --no-questions --skip-critical /home/〈ユーザー名〉/.luckyBackup/profiles/default.profile > /home/〈ユーザー名〉/.luckyBackup/logs/default-LastCronLog.log 2>&1
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ end of luckybackup entries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

消したい行があれば削除します。"luckybackup entries"と"end of luckybackup entries"で挟まれた領域以外は、編集しません。

編集し終わったら、geditで「保存」を実行。そしてgeditを閉じます。その時点で、端末にcrontab: installing new crontabというメッセージが表示されれば、これで完了です。*2

関連記事

*1:この挟まれた領域が、crontabファイルの中に、同一の内容で複数存在していることもあるかもしれません。その場合も、1つだけ残して他は消せます。

*2:その時点で端末に"crontab: no changes made to crontab"というメッセージが出ていたら、何らかの理由でcrontabファイルの変更ができていません。使用するエディタをviに変えるなどして再度実行するとよいかもしれません。