当 Cron 启动时我的备份不起作用

当 Cron 启动时我的备份不起作用

由于某种原因,当我的备份由 启动时,它不起作用cron

crontab 条目

0 10 * * * /home/yzT/BackupDaily.sh

每日备份.sh

#!/bin/bash

/home/yzT/Tools/FreeFileSync/FreeFileSync /home/yzT/Tools/FreeFileSync/BackupDaily.ffs_batch

我可以看到 cron 在 中启动我的备份脚本syslog

Oct 20 10:00:01 debian CRON[2589]: (yzT) CMD (/home/yzT/BackupDaily.sh)

当我手动运行它时,备份系统 ( FreeFileSystem) 在我的桌面上创建一个日志文件,我可以在备份目录中看到更新的文件。但通过cron我没有得到日志文件也没有看到任何更新。

我怎样才能找到/解决问题?

编辑

我找到了问题的根源。切换到 TTY 并运行脚本,我收到以下消息:Error: Unable to initialize GTK+, is DISPLAY set properly?。因此,尽管没有使用该脚本的 GUI,但该脚本似乎想要访问 GUI 应用程序。我怎样才能解决这个问题?

答案1

如果您是系统上的唯一用户,则只需编辑crontab(使用)并在文件顶部crontab -e添加即可。DISPLAY=:0.0

或者,您可以尝试像这样运行备份作业:

/home/yzT/Tools/FreeFileSync/FreeFileSync /home/yzT/Tools/FreeFileSync/BackupDaily.ffs_batch --display=:0.0

答案2

带有扩展名的文件.ffs_batch是与 FreeFileSync 应用程序关联的 xml 文本。因此,在 cron 中编程有两种正确的方法(crontab -e):

export DISPLAY=:0; /path_to/FreeFileSync /path_to/file.ffs_batch

或者

/path_to/FreeFileSync /path_to/file.ffs_batch --display=:0.0

错误“无法初始化 GTK +,DISPLAY 设置正确吗?”它是通过不定义谁执行任务来生成的,因此必须指定:

sudo crontab -e
# or
crontab -e

您还必须指定执行任务的小时/分钟/秒/日/周/月。例子:

0 10 * * * export DISPLAY=:0; /path_to/FreeFileSync /path_to/task.ffs_batch
# or
@weekly export DISPLAY=:0; /path_to/FreeFileSync /path_to/task.ffs_batch

来源:镜像同步

答案3

您需要在 cron 作业中使用 1-59 而不是 *

1 10 * * * /home/yzT/BackupDaily.sh

相关内容