我有一个位于 backup.sh 文件(chmod 775)中的脚本:
rsync -e 'ssh -p 31234' -avlz --delete --stats --progress --copy-links admin@foo.xen.prgmr.com:/home/admin/rsync /home/myname/rsync/foo/
Run Code Online (Sandbox Code Playgroud)
当我手动调用它时,一切正常(并且我不必输入密码)。但是当我从 cron 调用它时,它就不起作用了。
我在同事的计算机上使用了相同的设置(与我具有相同的访问权限),并且效果很好。
怎么了?
小智 6
我有无密码 ssh 登录设置。我使用如下命令:
rsync --delete -auve 'ssh -i /home/red/.ssh/cron_jobs_key' red@othermachine:/source/dir1 /dest/dir2
这里的关键是“ -i /home/red/.ssh/cron_jobs_key”,我在其中设置了无密码的 ssh 登录。否则,当我登录本地计算机时,我必须输入 ssh 密钥。我专门为 cron 作业生成了这个 ssh 密钥。