Linux rsync远程同步

本文详细介绍了rsync命令的常用选项,包括归档模式、压缩、硬连接保持、ACL属性保留、文件删除等。还展示了如何启动和结束rsync服务,配置rsyncd.conf文件,以及设定权限和用户。此外,讲解了下行和上行同步的实现,包括密码文件的创建、内核参数调整和自动同步脚本的编写。内容涵盖了rsync的配置、使用和自动化同步方案。
摘要由CSDN通过智能技术生成

rsync命令常用选项
  -a:归档模式,递归并保留对象属性,等同于 -rlptgoD
  -v:显示同步过程的详细(verbose)信息
  -z:在传输文件时进行压缩(compress)
  -H:保留硬连接文件
  -A:保留ACL属性信息
  --delete:删除目标位置有而原始位置没有的文件
  --checksum:根据对象的校验和来决定是否跳过文件

启动服务
  rsync  --daemon
结束服务
  kill  $(cat  /var/run/rsyncd.pid) && rm -f /var/run/rsyncd.pid

配置文件vim  /etc/rsyncd.conf
uid = nobody
gid = nobody               指定管理程序的程序用户
use chroot = yes           禁锢主目录(只能备份指定目录的内容)
address = 192.168.4.200    指定同步源的IP
port 873                   设置rsync端口号
log file = /var/log/rsyncd.log    指定日志文件位置
pid file = /var/run/rsyncd.pid    指定进程号文件位置
hosts allow = 192.168.4.0/24      允许来备份的IP地址
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z  不需要压缩的文件
[wwwroot]                          别名,相当于共享名
    path = /var/www/html          指定共享目录(需要创建)
    comment = Document Root of www1.benet.com   说明
    read only = yes                  只读
    auth users = backuper          授权用户(允许来备份的用户身份)
    secrets file = /etc/rsyncd_users.db   指定授权用户配置文件

用户配置文件/etc/rsyncd_users.db(权限必须是600,否则客户端验证通不过)
文件格式
用户名:密码  (backuper:123.com)

下行同步:
在客户端执行
rsync -avz 用户名@同步源IP::别名  本地目录
rsync -avz backuper@192.168.1.2::wwwroot  /var/www/html

在客户端设置密码文件
echo "123.com" >> /etc/server.pass
chmod 600 /etc/server.pass(权限必须600,否则不允许使用)

rsync -avz --password-file=密码文件路径 用户名@同步源IP::别名  本地目录

上行同步
主配置文件
修改为
read only = no
修改根目录权限,允许其他用户写入
chmod  757 /var/www/html

rsync  -avz   本地目录  用户名@同步源IP::别名  

自动上行同步(客户端操作)
1、修改内核参数
vim  /etc/sysctl.conf

fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

sysctl  -p  (让配置的内核参数生效)

2、安装inotify
解压、配置、编译、安装
3、制作脚本,自行上传
vim  rsync.sh

#!/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.1.2::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

监控本地目录,当目录内容有修改、创建、 、移动、删除的时候触发
inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值