RSync shell 脚本无法作为 CRON 运行,手动运行良好

RSync shell 脚本无法作为 CRON 运行,手动运行良好

我有一个简单的 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 脚本内部进入正确的目录。

相关内容