当我运行时,我收到一堆错误消息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/