用shell脚本,实现多台服务器代码同步更新的东东(rsync)
1 | # 同步多台服务器文件代码 |
rsync 是一个远程数据同步工具,可通过LAN,WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。rsync --help
查看帮助,其中常使用的参数如下,有两种实现方式:
- -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
- -v, –verbose 详细模式输出
- -P 等同于 –partial
- –progress 显示备份过程
- -z, –compress 对备份的文件在传输时进行压缩处理
- –exclude=PATTERN 指定排除不需要传输的文件模式
- –include=PATTERN 指定不排除而需要传输的文件模式
- –exclude-from=FILE 排除FILE中指定模式的文件,在一个文件中指定的目录或文件
- –include-from=FILE 不排除FILE指定模式匹配的文件 必须包含的,在一个文件中指定的目录或文件
- –delete 删除那些DST中SRC没有的文件
- –delete-excluded 同样删除接收端那些被该选项指定排除的文件
- –delete-after 传输结束以后再删除
SSH方式(:)
1 | service sshd start |
后台服务方式(::)
启动rsync服务
vim /etc/xinetd.d/rsync
, 将其中的disable=yes
改为disable=no
,并重启xinetd
服务
创建配置文件
vi /etc/rsyncd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15uid=root
gid=root
max connections=4
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.passwd
hosts deny=172.16.78.0/22
[www]
comment= backup web
path=/www
read only = no
exclude=test
auth users=work
创建密码文件
1 | echo "work:abc123" > /etc/rsyncd.passwd |
备份,恢复
1 | rsync -avz --progress --delete work@172.16.78.192::www /databack/experiment/rsync |
crontab 相关参数
1 | .---------------- minute (0 - 59) |
创建文件夹
1 |
|
shell 基础
1 | touch online.sh |