crontab предложил ошибку: /bin/sh .backup.sh нет такого файла или каталога

Я использую команду crontab -e выполнять сценарий оболочки через равные промежутки времени.

Но что-то не так с этим.

Сценарий оболочки находится в /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 не проблема

Что с этим не так? И как я могу это исправить?

Ожидайте, что кто-то поможет мне. Большое спасибо!

1 ответ

Решение

Попробуйте установить следующее перед списком 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, cd не нужен, если вы правильно позаботились о путях в backup.sh, Например:

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

rsync $FileToBackup $TARGETPATH/ 
Другие вопросы по тегам