Github 使用 rsync 同步网站到个人服务器
1. rsync 优缺点
1.1 优点
- 增量备份
- 可以镜像保存整个目录树和文件系统。
- 可以很容易做到保持原来文件的权限、时间、软硬连接等。
- 拥有优化的流程和比较高的文件传输效率。
1.2 缺点
大量小文件的时候,比对时间较长,有时候,同步过程中,rsync进程可能会停止或者僵死,如果小文件非常多就直接使用压缩包进行传输即可.
同步大文件的时候会出现中断的,未完成同步前是隐藏文件,可以通过续传(–partail)等参数进行实现续传.
2. 个人服务器端设置
2.1 安装 rsync
要使用 rsync 同步,第一步当然是要安装 rsync 了,键入以下命令来完成 rsync 的安装:
|
|
安装成功会显示git的版本号
|
|
显示
|
|
2.2 新建 rsync 用户
出于安全的原因考虑,我们一般不会使用root来运行同步功能,因此,需要创建一个 rsync 用户来执行同步。
键入以下命令来完成同步用户的创建:
|
|
创建用户的途中会要求输入用户密码,这个密码请务必记住,切换到这个用户时需要,其它配置使用默认值直接回车就行。
2.3 生成 SSH key
有很多方法生成 SSH key:
在服务器运行 ssh-keygen
在git客户端生成,如 SourceTree 、Gitkranken 中都可以生成
生成一个 Key 对,其中一个扩展名是.pub,是公匙。假设分别命名为:id_rsa
和 id_rsa.pub
2.4 把 SSH public Key 加入个人服务器
|
|
注意:.ssh的权限必须是700,authorized_keys的权限必须是600
2.5 修改 SSH 默认配置
以下内容一般不用修改,如果同步有问题再来修改。
|
|
打开一下三项配置前的注释,若没有则在最后添加
|
|
修改保存后重启sshd服务
|
|
3. github仓库设置
3.1. 设置Git仓库
打开仓库设置,按下图把相关设置加入 secrets,
其中“私匙”是上面那个id_rsa
文件,用文本编辑器打开复制所有内容。
3.2 修改自动化 Actions 脚本
把以下内容加入脚本:
|
|
特别注意:ssh -o StrictHostKeyChecking=no
不能少,否则连不上个人服务器,当时就是被这个折腾了好久 :(: ,具体解释在这:SSH 协议的 ssh StrictHostKeyChecking。