我有一个简单的 shell 脚本来运行 Rsync。如果我从命令行手动调用它,它会运行良好,但是当我将其设置为 CRON 作业时,我收到以下错误:
rsync: failed to open exclude file exclude.txt: No such file or directory (2)
rsync error: error in file IO (code 11) at exclude.c(1000) [client=2.6.8]
我在 shell 脚本中使用了以下内容:
--exclude-from 'exclude.txt'
该文件存在,并且手动运行时脚本运行良好(遵守排除规则)。CRON 作业调用的 shell 脚本和 exclude.txt 位于同一目录中。
我尝试运行的整个脚本如下所示:
rsync -avrhgo --exclude-from 'exclude.txt' --progress --stats --delete-excluded -e "ssh -p XXXXX" / XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
答案1
您需要指定排除文件的完整路径,因为脚本的工作目录不会自动成为您启动脚本的目录,而是 cron 作业所有者的主目录。
或者,您可以cd
从 shell 脚本内部进入正确的目录。