linux两台服务器同步文件
rsync同步文件的使用方法,可实现实时同步,一般情况下centos7.9是带有rsync功能的。直接输入rsync可以查看。为了好理解 这里分为主从,主机和从机,这里是把主机的文件同步到从机上,即主机上的文件如果有变化 , 从机会跟着变化。
主机端设置
cd /etc
vi rsyncd.conf
编辑文件
# /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: # uid = nobody # gid = nobody # use chroot = yes max connections = 200 # pid file = /var/run/rsyncd.pid # exclude = lost+found/ # transfer logging = yes timeout = 900 read only=yes host_allow=192.168.7.5 #指定允许的IP,即从机的IP # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp] # path = /home/ftp # comment = ftp export area
从机的设置
先进行免密码设置
ssh-keygen
把生成的key文件发送到服务器端
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.11.24(主机的IP) 这里先把主机的22端口打开,不然发送不过去,输入主机端的密码,这个操作是在从机上。
主要是用python来执行脚本的作用
该文件同目录建立一个脚本文件hao366.net.sh
#rsync -avz --delete root@服务器IP:服务器上要同步的文件夹 客户端要同步的文件夹地址 rsync -avz --delete root@192.168.11.24(这个是主机的IP):/home/myfile/(这是主机上要同步的文件夹路径) /home/myfile(从机上要存放的文件的路径)
补充:
如何取消rsync进程 直接在 终端执行即可,也可写入文件执行
#!/bin/bash # Propram: # Kill the redundant Rsync process for i in `ps -ef |grep rsync |grep -v grep |awk {'print $2'}` do kill -9 $i echo "Kill Si successed." done
保存一个 kill.sh脚本 , 然后执行 sh kill.sh 即可
查看 rsync进程
for i in `ps -ef |grep rsync |grep -v grep |awk {'print $2'}` do echo $i echo "Kill Si successed." done