我有一个脚本位于/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
。