crontab提示错误:/bin/sh .backup.sh no such file or directory

crontab suggested error :/bin/sh .backup.sh no such file or directory

我使用命令 crontab -e 定期执行 shell 脚本。

但是有点不对劲。

shell脚本位于/opt/oneinstack/oneinstack,所以我的crontab是:

0 1 * * * cd /opt/oneinstack/oneinstack;./backup.sh >> /data/back.log 2>&1 &

backup.sh 文件的权限是 755。

使用crontab -e命令的用户是root

/data/back.log 中的消息/bin/sh no such file or directory .就像标题一样

手动执行backup.sh没问题

这是怎么回事?我该如何修复它?

期待有人帮助 me.Thanks 很多!

尝试在 crontab 列表之前设置以下内容。例如,如果此行位于顶部:

0 1 * * * cd /opt/oneinstack/oneinstack;./backup.sh >> /data/back.log 2>&1 &

然后看起来像这样:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 1 * * * cd /opt/oneinstack/oneinstack;./backup.sh >> /data/back.log 2>&1 &

此外: 就像@Ugur 提到的那样,如果您在 backup.sh 中正确处理路径,则无需 cd。例如:

ROOTPATH="/path/to/data"
TARTGETPATH="/path/to/target"
FileToBackup="${ROOTPATH}/myfile"

rsync $FileToBackup $TARGETPATH/