我正在尝试压缩一个目录并将其复制作为备份。我是 Linux 新手,所以我尽可能地遵循指南,但是当尝试时
systemctl status cron
我收到以下错误:
Apr 27 13:34:01 mc-server cron[950]: Error: bad username; while reading /etc/crontab
独立运行该命令可以按预期工作(3 分钟计时器仅用于测试目的)。
这是完整的 crontab:
# /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
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
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 )
*/3 * * * * root zip -r -q /mnt/truenas/Ozone/Backup_$(TZ="Europe/Berlin" date "+%A_%d.%m.%y_%H;%M").zip /home/rexor/mcserver
#
答案1
从man 5 crontab
:
“第六”字段(该行的其余部分)指定要运行的命令。该行的整个命令部分(直到换行符或 % 字符)将由 /bin/sh 或 crontab 文件的 SHELL 变量中指定的 shell 执行。命令中的百分号 (%),除非用反斜杠 (\) 转义,否则将更改为换行符,并且第一个 % 之后的所有数据都将作为标准输入发送到命令。无法将单个命令行拆分为多行,例如 shell 的尾部“\”。
我不确定为什么这会导致上述错误,但请尝试转义命令中的“%”,看看是否有帮助:
*/3 * * * * root zip -r -q /mnt/truenas/Ozone/Backup_$(TZ="Europe/Berlin" date "+\%A_\%d.\%m.\%y_\%H;\%M").zip /home/rexor/mcserver