以下步骤的操作环境 linux+centos8+lnmp2.0
先通过设置SSH密钥对来实现远程免密登录
https://blog.csdn.net/weixin_51237709/article/details/134293858
在root目录下,vi 创建自定义脚本 myrsync.sh
然后使用命令 chmod +x myrsync.sh 赋予可执行权限,脚本内容如下:
#!/bin/bash
rsync -avu --progress --delete /home/wwwroot/vpser.net/ username@remote_server:/home/wwwroot/vpser.net/
- /home/wwwroot/vpser.net/ 代表源目录(备份目录下,不带/带目录备份)
- username@remote_server:/home/wwwroot/vpser.net/ 代表通过远程访问的目标目录
- 如果改了SSH端口,需要加-e “ssh -p 你的SSH端口”,如果不想显示具体传输过程可以去掉P参数,如果需要压缩传输可以加z参数。
- –delete 参数,这样当本地删除的文件,远程端也会删除,保持完整的一致。
重启sshd服务
systemctl restart sshd
每次执行,需要输入密码才能执行备份才做,可以通过设置SSH秘钥对来实现远程免密登陆备份
Linux VPS/服务器上用Crontab来定时执行实现VPS自动化https://www.vpser.net/manage/crontab.html
0 8 */3 * * /root/lnmp2.0/tools/backup.sh
0 9 */3 * * /root/myrsync.sh
如果您已生成SSH密钥对,但在运行ssh username@remote_server时仍然提示输入密码,有几个可能的原因和解决方法:
1.检查SSH密钥文件: 首先确保您的SSH密钥文件存在于~/.ssh目录中。通常,私钥文件是id_rsa,而公钥文件是id_rsa.pub。如果文件不存在,请重新生成SSH密钥对。
2.检查密钥文件权限: 请确保您的SSH私钥文件(通常是~/.ssh/id_rsa)的权限设置正确。私钥文件应该具有非常限制的权限,只有所有者才能读取和写入。您可以使用以下命令来设置正确的权限:
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
3.确认公钥是否添加到目标服务器: 确保您的公钥已添加到远程服务器的~/.ssh/authorized_keys文件中。您可以手动复制公钥到远程服务器,或者使用ssh-copy-id命令来添加:
如果您手动添加公钥,请确保它被正确添加到~/.ssh/authorized_keys文件中,且每个公钥在单独的一行上。
4.检查SSH服务器配置: 检查目标服务器上的SSH服务器配置以确保它允许密钥身份验证。您可以登录到远程服务器,并编辑SSH服务器配置文件(通常是/etc/ssh/sshd_config)来确保以下选项被启用:
5.确保您使用正确的私钥: 当运行ssh命令时,如果您有多个SSH密钥对,确保您指定了正确的私钥文件,例如:
参考资料
https://www.vpser.net/manage/rsync.html
https://blog.csdn.net/m0_46897923/article/details/128306658
https://blog.csdn.net/bigbaojian/article/details/130255339