Как запустить скрипт вне домашнего каталога через cron

У меня есть сценарий, расположенный по адресу /home/user/backup.sh

Я пытаюсь выполнить этот скрипт через свой root crontab. Он не работает. Сценарий работает, если я создаю crontab под моей user записью user .

В любом случае, чтобы запустить этот скрипт в качестве корневого crontab? Вот строка, которую я использую.

25 20 * * * sh /home/user/backup.sh


Содержание скрипта:

 tar -czvf /home/user/backup/backup.tar.gz /var/www/ mysqldump -u root -p password --all-databases > /home/user/backup/backup.sql rsync -avz /home/user/backup user@myserver:/home/user/ 

root имеет полный доступ к вашей системе, но не обязательно имеет все ключи к другим системам, которые есть у вашей обычной учетной записи пользователя.

Так беда:

 rsync -avz /home/user/backup user@myserver:/home/user/ ^^^^ 

Если вы вызываете root для выполнения этой команды как вы , ваши ключи будут использоваться, и команда будет успешной:

 sudo -u user rsync -avz /home/user/backup user@myserver:/home/user/ 

Кроме того, вы можете установить открытый ключ root в качестве принятого SSH-ключа для user в системе myserver .