我尝试在 cron 中运行以下命令来每天早上 4 点备份服务器:
0 4 * * * dump -0uan -f - / | gzip -2 | ssh -c blowfish user@server dd of=/backups/`hostname`_`date '+%m-%d-%Y_%k%M%S'`.dump.gz
从 shell 单独运行该命令可以正常工作。通常,当发生这种情况时,问题是由于路径引起的,因此我尝试在 cron 中添加完整路径:
0 4 * * * /sbin/dump -0uan -f - / | /usr/bin/gzip -2 | /usr/bin/ssh -c blowfish user@server /bin/dd of=/backups/`hostname`_`date '+%m-%d-%Y_%k%M%S'`.dump.gz
但还是没成功。我检查了系统日志,发现:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
无论指定路径与否,都会发生相同的错误。这应该是一个非常简单的命令。cron 执行此命令的方式与所写的方式不同吗?
答案1
转义百分号,或将整行放入脚本中并触发该脚本。