我有一个在backup.sh文件(chmod 775)中的脚本:
rsync -e 'ssh -p 31234' -avlz --delete --stats --progress --copy-links [email protected]:/home/admin/rsync /home/myname/rsync/foo/
当我手动调用它时,一切正常(我不必input密码)。 但是当我从cron调用它时,它不起作用 。
我在同事的计算机上使用了相同的设置(与我有同样的访问权限),它运行良好。
怎么了?
我有我的passpharseless SSHlogin设置。 我使用如下命令: rsync --delete -auve 'ssh -i /home/red/.ssh/cron_jobs_key' red@othermachine:/source/dir1 /dest/dir2
这里的关键是“ -i /home/red/.ssh/cron_jobs_key ”,我已经设置了一个没有密码的sshlogin。 否则,我将不得不input我的SSH密钥,当我login到我的本地机器。 我为cron作业生成了这个ssh密钥。
一些提示:
PATH = / sbin目录:/ bin中:/ usr / sbin目录:在/ usr / bin中
通过提到你不必进入通行证,我会假设你使用ssh-agent每个会话进入一次。
这不会从cron工作,因为cron无法访问您的SSH_AUTH_SOCKvariables,因为它已经在机器启动时启动,而不是在您当前的会话中。
如果你想这个工作,你将不得不使用密码短语,这可能是你的同事正在使用。