我已将 Back In Time 和 MySQL Administrator 配置为每天 15:00 进行备份。为了确保我已经安装了 Gnome Scheduler,看看这两个应用程序是否在那里注册。它们在 gnome 调度程序中注册,但不执行备份操作。
这是 Gnome 调度程序的屏幕截图。
我怎么解决这个问题?
更新
命令的输出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 Scheduler 只是一个漂亮的前端
at
和crontab
. 在默认的 Ubuntu 中,cron
大部分运行anacron
负责在应该触发任务时可能未打开的机器上运行定期任务。要检查的事项是:
ps -C cron
cat /etc/crontab
ls /usr/sbin/anacron
grep CRON /var/log/syslog
对于最后一步,
logrotate
可能已归档较旧的系统日志,因此如果 grep 没有给出结果,请尝试我的猜测是 gnome-scheduler 正在设置具有错误权限的作业(可能是您而不是超级用户),因此投诉将出现在系统日志中。
对更新的回应
鉴于您
crontab -l
示例中的 shell 提示符,您几乎可以肯定列出了 bakhtiyor 的每个用户 crontab,它可能没有运行您的(有些不透明的)作业的权限。系统日志条目将显示作业是否正在运行,如果是,则作业是否抱怨。
根据您的日志条目,您的作业似乎最近没有运行。
您还应该检查存档的 cron 日志,因为它可能自上次运行以来已经翻转。
为了进一步调试这个我会添加这个工作,使用
crontab -e
看看它是否会向您发送邮件,以及它是否出现在日志文件中。
更新:如果它出现在日志文件中但没有向您发送邮件,那么您可能需要安装邮件代理以查看备份作业的输出,或者运行它们并将输出重定向到日志文件中。例如,您可以使用
crontab -e
将一行更改为您将需要创建
~/log
目录。这个解决方案对我有用: https ://answers.launchpad.net/backintime/+question/90513
我的作业配置保存在我的用户而不是 root 下,因为我正在使用
sudo backintime-gnome
而不是gksu backintime-gnome
.sudo 不会更改导致问题的 HOME 环境:
我有同样的问题,并通过将我的用户名添加到 crontab 组来解决它。
/etc/group
我有一个类似的问题,这给了我很大的麻烦。假设 cron、crontab 和 anacron 是健康的,关键症状是如果使用 gnome-schedule 的“立即运行”按钮调用该任务可以正常运行,但一旦不理会就不会按计划运行。
事实证明,这主要是图形环境问题。我的建议是为任务脚本创建一个包装器,例如“task-wrapper”:
确保 task-wrapper 文件是可执行的,并在 gnome-schedule 中将任务创建为 X 应用程序。或者,这样写:
/home/username/task 脚本现在将在控制台窗口中运行,该窗口将在完成后关闭。我的脚本通常需要 sudo 身份验证,所以我像这样启动“任务”脚本:
cd 命令是无关紧要的,MESSAGE 解释了脚本请求授权的内容,并且“set -e”确保脚本在用户点击“取消”时中止。脚本的其余部分可以使用简单的“sudo”调用,除非命令之间经过很长时间,否则它将成功。
在 Ubuntu 12.04 下,似乎不需要 crontab 组成员身份。