通过 crontab 运行 rsync 时出现权限问题

通过 crontab 运行 rsync 时出现权限问题

我正在使用 rsync 将本地计算机上的目录备份到远程服务器。我已为我的用户设置并启用了基于 SSH 密钥的访问权限,因此当我运行以下命令时:

rsync --update -razvP --progress ~/Projects/ ~/Documents/ [email protected]:backup/

一切都按预期进行。所以现在我想每天运行它,所以我将它放入 Bash 脚本中,通过 crontab 运行:

〜/备份1.sh

#!/usr/bin/env bash
rsync --update -razvP --progress ~/Projects/ ~/Documents/ [email protected]:backup/


$ ll ~/backup1.sh 
-rwxr-xr-x  1 my-user  admin   112B Nov 29 20:00 backup1.sh

$ crontab -e
30 15 * * * sh ~/backup1.sh

不幸的是,当 cron 作业运行时,它会产生以下错误:

Permission denied, please try again.
[email protected]: Permission denied (publickey,password).

我猜 crontab 以自己的用户身份运行,因此找不到我的公钥。有没有办法告诉 crontab 或 rsync 以我的用户身份运行,以便发送我的公钥并成功进行身份验证?

相关内容