Crontab -e 给我错误消息

Crontab -e 给我错误消息

当我运行时,我收到一堆错误消息crontab -e

这里是错误信息。

这是我的 crontab 文件在 `/usr/bin/' 下:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
30 *    * * *   root    rsync /home/dnaneet/Downloads/*.pdf /home/dnaneet/Downloads/pdfs/
#

我注意到最后一个任务('rsync')从未运​​行过!为什么会发生这种情况?我做错了什么?

运行 Ubuntu 11.10/Bash。我已阅读... 我是不是漏掉了什么?我不知道我的 anacron 任务是否运行。

编辑1

根据 Masi 的评论,我用 注释掉了 crontab 文件的第 17 至 25 行#

现在当我运行时sudo crontab -e,我得到的是:

/usr/bin/crontab: 11: 17: not found
/usr/bin/crontab: 12: 25: not found

(gedit:4301): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel', but failed: Failed to create

文件‘/root/.local/share/recently-used.xbel.GOHVBW’:没有该文件或目录

(gedit:4301): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel', but failed: No such file or

目录

到底发生了什么?

答案1

/usr/bin/crontab是用于编辑用户 crontab 的命令。看起来您已经crontab用 crontab 配置文件覆盖了该命令。您应该更改的文件是/etc/crontab,而不是/usr/bin/crontab

$ file /usr/bin/crontab
/usr/bin/crontab: setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
$ file /etc/crontab
/etc/crontab: ASCII English text

要修复此问题,请重新安装 cron 包(sudo apt-get --reinstall install cron),然后在中进行更改/etc/crontab

虽然您的 crontab 条目看上去非常正确,但只是在错误的文件中。

编辑鉴于您的 cronjob 仅复制您自己的主目录中的文件,您不妨以您的用户身份运行它。如果您想使用系统范围的 crontab,请将以下行放入/etc/crontab

30 *    * * *   dnaneet    rsync /home/dnaneet/Downloads/*.pdf /home/dnaneet/Downloads/pdfs/

虽然我只会使用个人 crontab,您可以使用命令编辑它crontab。在这种情况下,该行应该是:

30 * * * * rsync "$HOME/Downloads"/*.pdf "$HOME/Downloads/pdfs/"

完成任一更改后,rsync 命令应每小时运行一次,时间为 00:30、01:30、02:30、03:30 等...

答案2

您的 crontab 文件的格式似乎不正确。您在那里使用了空格而不是制表符。请参阅

请运行简单的示例 crontab 文件并查看会发生什么。然后将有关格式的类似更改逐一应用于您的文件。

命令是什么测试你的 PATH 中有它吗?

答案3

不确定这是否是问题所在,但也许您想尝试在 rsync 的引号中加上 *:

rsync /home/dnaneet/Downloads/'*.pdf' /home/dnaneet/Downloads/pdfs/

相关内容