我想将rsync任务自动化为cron作业。由于它需要密码,我无法做cronjob。我需要指定密码和rsync命令,否则我会将密码存储在一个文件中,我会从中读取。我的命令看起来像这样:
rsync -aPe "ssh -i ' . $server->{'ssh_key'} . '" ' . $server_lock_dir;
那我在哪里输入密码?
答案 0 :(得分:15)
您不需要这样做 - 只需要设置一对ssh密钥并将公钥放在远程系统的.ssh目录中。
然后你就这样做了:
rsync -a -e ssh /local/path/ server:/remote/path/
(请注意,-e ssh
已成为默认值,因此您可以省略它,除非您使用的是旧版本。)
有关设置按键here的“操作方法”指南。
答案 1 :(得分:5)
如果你想让它在cron中运行,你有几种可能性:
答案 2 :(得分:4)
如果您想远程复制文件:
注意:
我的命令如下所示:
rsync -avz --progress -e“ssh -i /home/myaccount/.ssh/id_rsa” /家/我的帐户/ mysourcefolder remoteaccount @ REMOTESERVER: “/家/ remoteaccount / mydestinationfolder /”