![rsync ssh sshpass 服务器1 服务器2](https://linux22.com/image/1137802/rsync%20ssh%20sshpass%20%E6%9C%8D%E5%8A%A1%E5%99%A81%20%E6%9C%8D%E5%8A%A1%E5%99%A82.png)
我已经创建了 2 个服务器,新到 ssh sshpass s1 ip 192.168.1.245 s2 ip 192.168.1.76 想要将 s1>>/opt/files 中的文件复制到 s2>>/home/s2/backup
目的:在 cron 中放入 1 句话来执行自动 rsync
我有这些方法
1)使用 ssh rsa 密钥方法,genkey 并复制密钥,它可用于直接访问。不能满足我对 rsync 文件的需求,也许我做错了或遗漏了步骤,或者发出了错误的命令
2)尝试使用 SSHPASS 来存储密码,但仍然不起作用
3)SSH + SSHPASS 出现各种错误
以上3种方法是google使用SSH无密码和SSHPASS无密码
有哪位专家能给我提供一行命令或建议吗?
答案1
生成私钥时您可以将密码留空,如果这样做,稍后建立连接时将不会要求输入密码。
如果您可以建立无需密码的“直接访问”连接,只要您使用相同的用户(crontab -e),rsync 应该可以正常工作。如果您从 root crontab(/etc/crontab 或 /etc/cron.*)运行此命令,那么您还需要让 rsync/ssh 使用正确的身份,您可以使用以下命令执行此操作:
rsync -av -e "ssh -i /home/username/.ssh/id_rsa" /source/folder/ username@server:/destination/folder/