如何通过 cron 在主目录之外运行脚本

如何通过 cron 在主目录之外运行脚本

我有一个脚本位于/home/user/backup.sh

我正在尝试通过我的根 crontab 执行此脚本。它没有运行。如果我在我的user帐户下创建 crontab,该脚本就会起作用。

有没有办法以 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

相关内容