type
status
date
slug
summary
tags
category
icon
password
目标: 将一台服务器A上面的某个文件每天晚上定时备份到另一台服务器B(ip:116.198.xxx.xx)上的某个路径下
1.配置ssh免密登录
1.1 在源服务器上生成 SSH 密钥对
在服务器 A 上,打开终端并运行以下命令生成 SSH 密钥对。如果已经有密钥对可以跳过这一步。
执行该命令后,你会看到如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
按 Enter 键使用默认路径。
提示输入一个密码短语(passphrase),可以直接按 Enter 键留空。
1.2 将公钥复制到目标服务器
将生成的公钥(默认情况下位于 /home/user/.ssh/id_rsa.pub)复制到服务器 B 上的 ~/.ssh/authorized_keys 文件中。
- 可以使用 ssh-copy-id 命令来完成这一任务。
例如: ssh-copyid [email protected].xxx.xx
- 如果 ssh-copy-id 命令不可用,也可以手动完成这一步:
使用 scp 将公钥复制到服务器 B 上的临时位置:
登录到服务器 B, 在A服务器上执行下面命令
将公钥追加到 ~/.ssh/authorized_keys 文件中:
确保 ~/.ssh/authorized_keys 文件的权限正确:
1.3 测试 SSH 免密码登录
在服务器 A 上运行以下命令,测试是否可以无密码登录到服务器 B:
ssh user@serverB
如果配置成功,你应该能够直接登录,而不会被要求输入密码。
注意事项
- 确保 .ssh 目录和 authorized_keys 文件的权限设置正确,避免不必要的权限问题:
- 如果你的目标服务器使用非标准端口,可以在 ssh-copy-id 或 scp 命令中指定端口,例如:
完成以上步骤后,你的源服务器 A 应该能够无密码地登录到目标服务器 B,从而方便后续的自动化任务(如备份文件)。
2.创建备份脚本
在 /home/admin 目录下面创建 backup.sh,将x-ui.db备份到目标服务器的指定位置
给脚本赋予可执行权限:
3.设置cron定时任务
使用 crontab 编辑定时任务:
然后,在 crontab 文件中添加以下行,这将每小时执行一次脚本:
保存 crontab 文件并退出编辑器。这将立即生效,并且 backup.sh 脚本将每小时执行一次。
验证定时任务:
检查 cron 日志来验证你的脚本是否每分钟被执行。cron 日志通常位于 /var/log/cron 或 /var/log/syslog(具体位置取决于你的操作系统配置)。
使用以下命令查看日志:
- 作者:vikingar
- 链接:https://blog.vikingsword.top/article/a10
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章