常熟建设局网站,西安seo排名公司,多用户建站平台,网站建设评语ubuntu 20.04 自带 rsync #xff0c;对于 WEB 服务器这种更新频率不高的情况#xff0c;直接使用定时同步复制远程服务器的方法#xff0c;比较直接和简单#xff01;
$ rsync --version rsync version 3.1.3 protocol version 31
参考#xff1a; Ubuntu20.04中的rsyn…ubuntu 20.04 自带 rsync 对于 WEB 服务器这种更新频率不高的情况直接使用定时同步复制远程服务器的方法比较直接和简单
$ rsync --version rsync version 3.1.3 protocol version 31
参考 Ubuntu20.04中的rsync命令
本次主要使用 SSH 方式来完成抄录一下参考文章
5.1 SSH 协议
rsync 除了支持本地两个目录之间的同步也支持远程同步。它可以将本地内容同步到远程服务器。rsync -av source/ usernameremote_host:destination
也可以将远程内容同步到本地。rsync -av usernameremote_host:source/ destination
rsync 默认使用 SSH 进行远程登录和数据传输。由于早期 rsync 不使用 SSH 协议需要用-e参数指定协议后来才改的。所以下面-e ssh可以省略。rsync -av -e ssh source/ userremote_host:/destination
但是如果 ssh 命令有附加的参数则必须使用-e参数指定所要执行的 SSH 命令。rsync -av -e ssh -p 2234 source/ userremote_host:/destination
上面命令中-e参数指定 SSH 使用2234端口。环境 远程 ubuntu 2004 server 192.168.0.196 nginx/1.18.0 (Ubuntu) 本地 ubuntu 2004 server 192.168.0.194 nginx/1.18.0 (Ubuntu)
既然作为同步备份建议本地和远程设置同样环境使用同样user
操作和测试 将远程192.168.0.196服务器上 /var/www 同步复制到本机~/bak-www-196 目录 注意 /var/www 和 /var/www/ 不一样 /var/www 会创建 www 目录并复制 www目录下的文件和下级子目录 /var/www/只复制 www 目录下的文件和目录不会创建 www 目录 为了简化远程和本地使用相同的用户如果用户名不一样需要加上远程用户名( 假设远程用户名是 user) 例如$ rsync -av user192.168.0.196:/var/www ~/bak-www-196 $ rsync -av 192.168.0.196:/var/www ~/bak-www-196同理同步备份网站配置目录 $ rsync -av 192.168.0.196:/etc/nginx/sites-available ~/bak-www-196$ rsync -av 192.168.0.196:/etc/nginx/sites-enabled ~/bak-www-196配置密钥方式 SSH 在本地192.168.1.194 ssh-keygen 简单起见一路回车passphrase 也是空着 上传本地192.168.1.194 自己的公钥到 远程192.168.1.196 ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.196 在远程192.168.1.196修改 sshd_config ,开启 PubkeyAuthentication
设置定时任务
假设每天晚上 23 点 10 分执行 rsync -av 192.168.0.196:/var/www ~/bak-www-196 …
如果愿意自行编写 shell 脚本 假设ssh 端口已经改变为 22222 写法要加上 -e ‘ssh -p 22222’
$ rsync -av -e ‘ssh -p 22222’ 192.168.0.196:/var/www ~/bak-www-196
$ crontab -e
...
# m h dom mon dow command
10 23 * * * rsync -av -e ssh -p 22222 192.168.0.196:/var/www ~/bak-www-196 /dev/null 21
...查看确认
$ crontab -l设置 log $ cd /etc/rsyslog.d/$ sudo vim 50-default.conf 解除注释 cron.* /var/log/cron.log$ sudo systemctl restart cron$ sudo systemctl status cron查看 log
$ less /var/log/cron.log rsync 和 scp 区别
rsync 可以完成增量备份 scp 每次都完全复制
实际操作一次会发现 scp 每次都全部 cp
$ scp -r 192.168.0.196:/var/www ~/bak-www-196
196-7 100% 7 10.4KB/s 00:00
194-3 100% 4 0.0KB/s 00:00
......
196-2 100% 7 11.7KB/s 00:00
1.txt 100% 4 6.7KB/s 00:00
index.nginx-debian.html 100% 612 2.9KB/s 00:00 第一次rsync 也会全部复制
$ rsync -av 192.168.0.196:/var/www ~/bak-www-196
receiving incremental file list
......
www/html/test/test1/test1.txt
www/html/test/test1/test2/test2sent 358 bytes received 1,032 bytes 556.00 bytes/sec
total size is 683 speedup is 0.49重复一次不会再次复制 $ rsync -av 192.168.0.196:/var/www ~/bak-www-196
receiving incremental file listsent 29 bytes received 473 bytes 334.67 bytes/sec
total size is 683 speedup is 1.36