Crontab 命令无法正常运行

Crontab 命令无法正常运行

我有以下 crontab 条目来自动将我的文件复制到网络中的单独 W/S。但是,它不会复制文件,而是生成日志文件。以下是文件内容

#! /bin/bash
echo "Rsync - MA Inbound Files"
rsync -rvu /media/hdd2/MA-Inbound /media/miracle/
echo "Completed MA Inbound Files Sync, Starting Tally.ERP 9 Data File Sync"

rsync -rvu /media/hdd2/Tally.ERP9 /media/miracle/
echo "Completd Tally.ERP9 Data File Sync, Starting 2011 Accounts Files Sync"

rsync -rvu /media/hdd2/"2011 Accounts" /media/miracle/
echo "Completd 2011 Accounts Files Sync, Starting 2012 Accounts Files Sync"

rsync -rvu /media/hdd2/"2012 Accounts" /media/miracle/
echo "Completd 2012 Accounts Files Sync, Starting 2012 Files Sync"

rsync -rvu /media/hdd2/"2012 Files" /media/miracle/
echo "Completd 2012 Files Sync, Starting 2013 Accounts Files Sync"

rsync -rvu /media/hdd2/"2013 Accounts" /media/miracle/
echo "Completd 2013 Accounts, Starting Admin Files Sync"

rsync -rvu /media/hdd2/"Admin" /media/miracle/
echo "Completd Admin Files Sync, Starting MA_Staff Data File Sync"

rsync -rvu /media/hdd2/MA_Staff /media/miracle/
echo "Completd MA_Staff Data File Sync, Starting MA-Outbound Data File Sync"

rsync -rvu /media/hdd2/MA_Outbound /media/miracle/
echo "Completd MA-Outbound Data File Sync, Starting Staff Pic Data File Sync"

rsync -rvu /media/hdd2/"Staff Pic" /media/miracle/
echo "Completd Staff Pic Data File Sync, End OF Syn"

这是我在 crontab 文件中输入的命令

30 22 * * * /Desktop/marsync.sh >AutoRsyncLogfile.txt

当我单独复制这些命令时,它运行完美

希望有人能帮助我解决这个问题......

谢谢

答案1

您没有说明日志文件包含什么;我认为它是空的。

如果是这种情况,那么您的问题似乎是由于 crontab 文件中使用的路径造成的:

30 22 * * * /Desktop/marsync.sh >AutoRsyncLogfile.txt

/Desktop部分可能不正确;该Desktop目录通常位于您的主目录中(即/home/<username>),并且可以由环境变量引用$HOME。如果将其更改为类似以下内容:

30 22 * * * $HOME/Desktop/marsync.sh >AutoRsyncLogfile.txt

- 那么这应该可以工作。您还需要确保该marsync.sh文件是可执行的:

chmod a+x $HOME/Desktop/marsync.sh

此外,您可能希望将标准错误(除了标准输出)捕获到日志文件中。使用&>以下命令执行此操作:

30 22 * * * $HOME/Desktop/marsync.sh &>AutoRsyncLogfile.txt

答案2

您必须调用包括路径:/usr/bin/rsync 的所有命令,或者在脚本中指定路径: 看这里

相关内容