【远程】rsync远程同步文件、快速清空大文件

简介: 文章目录前言一、概念/应用环境二、搭建/操作实例

一、概念/应用环境

  • 开源的备份工具,能够同步整个目录树
  • 支持增量备份,传输前会进行压缩
  • 适用于异地备份、镜像服务器备份
  • 定期同步/检测同步(通过脚本达到目的)

二、搭建/操作实例

2.1 下行同步

#配置源端(开启下行同步)
systemctl stop firewalld
setenforce 0
rpm -q rsync
#查看rsync是否安装,默认安装,未安装则yum install -y rsync.x86_64安装
vim /etc/rsyncd.conf
  uid = root
  gid = root
  use chroot = yes
  address = 192.168.13.10
  port = 873
  log file = /var/log/rsyncd.log
  pid file = /var/run/rsyncd.pid
  hosts allow = 192.168.13.0/24
  dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
  [wwwroot]
  #这个模块名需要记住,命令中定义路径的参数就是模块名
  path = /var/www/html
  #同步的路径指向
  comment = Document Root of www.han.comread
  read only = yes
  auth users = backuper
  secrets file = /etc/rsyncd_users.db
#配置以上配置文件
vim /etc/rsyncd_users.db
  backuper:abc123
#创建保存rsync远程连接密码的文件(与rsync.conf中secrets file对应)
chmod 600 /etc/rsyncd_users.db
#远程同步rsync已配置完毕(此时只是开启了下行同步)
#创建目录分享文件测试
mkdir -p /var/www/html
touch /var/www/html/test.txt
chmod +r /var/www/html/
ls -ld /var/www/html/
rsync --daemon
#启动rsync服务
#在另外一台主机上执行同步(密码为/etc/rsyncd_users.db中的配置的密码)
rsync -avz backuper@192.168.13.10::wwwroot /test/

2.2 上行同步

#在开启下行同步的情况基础上,开启上行同步(rsync+inotify)
vim /etc/rsyncd.conf
  read only = no
  #关闭只读
kill $(cat /var/run/rsyncd.pid)
rm -rf /var/run/rsyncd.pid
rsync --daemon  
netstat -anpt | grep rsync
#重启服务以重新加载配置
vim /etc/sysctl.conf
  fs.inotify.max_queued_events = 16384
  fs.inotify.max_user_instances = 1024
  fs.inotify.max_user_watches = 1048576
sysctl -p
tar zxvf inotify-tools-3.14.tar.gz -C /opt/
cd /opt/inotify-tools-3.14
./configure
make && make install
#此时可用命令进行指定目录指定状态监控:inotifywait -mrq -e modify,create,move,delete /var/www/html
#此时上行同步已经配置完毕

2.3 测试/删除

cd /mnt
touch {1..100}.sh
ls
#此时/mnt目录下有100个文件
rsync --delete-before -a -H -v --progress --stats /var/www/html/ /mnt
#将/var/www/html/目录的内容同步到/mnt/目录中,并且因为添加了--delete-before选项,所以会先删除/var/www/html/没有的文件
#测试2(在源主机:192.168.13.20操作)
cd /mnt
touch {1..100}.sh
ls
#此时/mnt目录下有100个文件
rsync --delete-before -a -H -v --progress --stats backuper@192.168.13.10::wwwroot/ /mnt
#将主机1的/var/www/html/目录的内容同步到/mnt/目录中,并且因为添加了--delete-before选项,所以会先删除主机1的/var/www/html/没有的文件

三、监控脚本

#可以编写一个脚本,使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录
#如果监控到变化,则启动脚本进行同步
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.13.10::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
  #如果rsync未在执行,则立即启动
        $RSYNC_CMD
    fi
done
chmod +x /opt/inotify.sh
chmod 777 /var/www/html/
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify.sh' >> /etc/rc.d/rc.local
#加入开机自动执行

三、结语

  • 不难,主要是自己操作一遍,才有印象
相关文章
|
监控 算法 Unix
rsync远程同步
rsync远程同步
145 0
Ansible 文件从远程取文件fetch和传文件到远程copy(学习笔记四)
fetch模块: copy模块: 1、从远程主机获取文件:ansible all -m fetch -a "src=/root/test.sh dest=/root/test" image.
5067 0
|
监控 Linux 网络安全
|
6月前
|
存储 监控 网络安全
rsync 远程同步 基础介绍
rsync 远程同步 基础介绍
|
算法 安全 Unix
|
监控 安全 关系型数据库
rsync—远程同步(二)
rsync—远程同步(二)
rsync—远程同步(二)
|
监控 算法 安全
rsync远程同步(上)
一、rsync介绍 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
344 0
|
消息中间件 缓存 监控
rsync远程同步(下)
一、rsync介绍 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
155 0
|
安全
Rsync远程同步配置
# rsync服务端配置 # 安装rsync软件包 yum -y install rsync # 生成rsyncd.
890 0
|
Web App开发 前端开发 JavaScript