Back In TimeとMySQL Administratorを構成して、毎日15:00にバックアップを作成しました。 Gnome Schedulerをインストールして、これらの2つのアプリケーションがそこに登録されているかどうかを確認するために。それらはgnomeスケジューラーに登録されていますが、バックアップ操作は実行しません。
Gnome Schedulerのスクリーンショットを次に示します。
この問題を解決するにはどうすればよいですか?
UPDATE
crontab -l
コマンドの出力は次のとおりです。
bakhtiyor@ubuntu-vm:~$ crontab -l
0 15 * * * /usr/bin/mabackup -d /home/bakhtiyor/backup/MySQL -x my-backup profile # JOB_ID_3
0 15 * * * Nice -n 19 /usr/bin/backintime --backup-job # JOB_ID_2
更新2
grep CRON /var/log/syslog
コマンドの出力は次のとおりです。
Nov 30 11:39:01 ubuntu-vm CRON[7663]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm)
Nov 30 11:39:02 ubuntu-vm CRON[7661]: (CRON) info (No MTA installed, discarding output)
Gnomeスケジューラは、at
およびcrontab
の単なるフロントエンドです。また、デフォルトのUbuntuでは、cron
はほとんどがanacron
を実行します。これは、タスクの起動時にオンになっていない可能性のあるマシンで定期的なタスクを実行します。
確認することは次のとおりです。
ps -C cron
cat /etc/crontab
ls /usr/sbin/anacron
grep CRON /var/log/syslog
最後のステップでは、logrotate
が古いsyslogをアーカイブしている可能性があるため、grepで結果が得られない場合は試してください
(cat /var/log/syslog.[0-9] ; zcat /var/log/syslog.*.gz) | grep CRON
私の推測では、gnome-schedulerは間違ったパーミッション(おそらくはスーパーユーザーではなくあなた)でジョブを設定しているため、苦情はsyslogに表示されます。
crontab -l
の例のシェルプロンプトを考えると、(ある程度不透明な)ジョブを実行するためのアクセス許可がない可能性があるユーザーごとのcrontabをほぼ確実にリストしました。
Syslogエントリには、ジョブが実行されているかどうかが表示され、実行されている場合は、ジョブに問題があるかどうかが表示されます。
ログエントリに基づいて、ジョブが最近実行されなかったようです。
また、アーカイブされたcronログも確認する必要があります。これは、最後に実行されてから反転した可能性があるためです。
これをさらにデバッグするには、crontab -e
を使用してこのジョブを追加します
*/5 * * * * echo hello
メールが送信されるかどうか、ログファイルに表示されるかどうかを確認します。
更新:ログファイルに表示されるがメールを送信しない場合は、メールエージェントをインストールしてバックアップジョブからの出力を確認するか、ログにリダイレクトされた出力で実行する必要があります。ファイル。たとえば、crontab -e
を使用して、1行を
0 15 * * * Nice -n 19 /usr/bin/backintime --backup-job >> ~/log/backup.log 2>&1
~/log
ディレクトリを作成する必要があります。
このソリューションは私のために働いた: https://answers.launchpad.net/backintime/+question/9051
Sudo backintime-gnome
ではなくgksu backintime-gnome
を使用していたため、ジョブ構成はrootではなくユーザーの下に保存されました。
Sudoは問題を引き起こすHOME環境を変更しません:
$ Sudo env | grep ^HOME
HOME=/home/user
$ gksu env | grep ^HOME
HOME=/root
同じ問題があり、crontabグループにユーザー名を追加して解決しました。
/etc/group
同様の問題が発生したため、かなりの時間がかかりました。 cron、crontab、anacronが正常であると仮定すると、主要な症状は、gnome-scheduleの「今すぐ実行」ボタンを使用して起動した場合にタスクが正しく実行されますが、一度放置するとスケジュールどおりに実行されないことです。
これは主にグラフィカル環境の問題であることが判明しました。私の推奨事項は、タスクスクリプトのラッパーを作成することです。 「タスクラッパー」:
#!/bin/sh
gnome-terminal -x /home/username/task
Task-wrapperファイルが実行可能であることを確認し、Xアプリケーションとしてgnome-scheduleにタスクを作成します。または、次のように記述します。
#!/bin/sh
export DISPLAY=:0
gnome-terminal -x /home/username/task
/ home/username/taskスクリプトは、完了時に閉じるコンソールウィンドウで実行されます。私のスクリプトは通常Sudo認証を必要とするため、次のように「タスク」スクリプトを開始します。
#!/bin/sh
set -e
MESSAGE="The task script wants to ..."
gksudo --message "$MESSAGE" cd /whatever
Cdコマンドは無害で、MESSAGEはスクリプトが許可を要求していることを説明し、「set -e」はユーザーが「Cancel」を押すとスクリプトが確実に中止されるようにします。スクリプトの残りの部分では、コマンド間に多くの時間が経過しない限り成功する単純な「Sudo」呼び出しを使用できます。
Ubuntu 12.04では、crontabグループメンバーシップは必要ないようです。