cronを介してホームディレクトリの外でスクリプトを実行する方法

cronを介してホームディレクトリの外でスクリプトを実行する方法

次の場所にスクリプトがあります。/home/user/backup.sh

私はroot crontabを介してこのスクリプトを実行しようとしています。実行されていません。アカウントにcrontabを作成すると、userスクリプトが機能します。

このスクリプトをroot 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/

答え1

rootフルアクセス権を持ちます。あなたのシステムですが、通常のユーザーアカウントが持つ他のシステムのすべてのキーを必ずしも持つ必要はありません。

質問は次のとおりです。

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

rootこのコマンドを次のように実行すると、あなた、キーが使用され、コマンドが成功します。

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

あるいは、root公開鍵をシステムuserに許可されているSSH鍵としてインストールすることもできますmyserver

関連情報