rsync|同步or备份文件

rsync可以做到在本地和远程之间同步文件,而且第一次是全量备份,接下来则是增量备份,但是默认不会删除存在目标目录中,不存在源目录的文件

指令使用

同步文件

rsync source.txt /tmp/dest/

注意:使用指令同步目标文件路径不存在时会自动创建

递归同步目录

rsync -r /tmp/source /tmp/dest
rsync -a /tmp/source/ /tmp/dest

-r参数表示将源目录下的子文件夹和子文件一起同步
-a参数表示将文件属性也递归同步

注意:源目录末尾加了/表示仅同步该目录下的所有子文件夹或者子文件,即/tmp/dest/source.txt;末尾不加/则是将源目录也拷贝过去,即/tmp/dest/source/source.txt

压缩同步

rsync -az /tmp/source/ /tmp/dest

同步时删除源目录失效文件

rsync -a /tmp/source/ /tmp/dest --delete

同步指定文件(可用正则)

rsync -a --include="*.txt" /tmp/source/ /tmp/dest --delete

不同步指定文件(可用正则)

rsync -a --exclude="*.log" /tmp/source/ /tmp/dest --delete

显示同步传输统计数据

rsync -av /tmp/source/ /tmp/dest

显示同步传输进程详情

rsync -aP /tmp/source/ tmp/dest

远程同步

rsync -a -e ssh /tmp/source/ wakamizu@192.168.1.102:/tmp/dest
rsync -a -e ssh wakamizu@192.168.1.102:/tmp/source/ /tmp/dest

使用其他ssh端口

rsync -a -e 'ssh -p 2222' /tmp/source/ wakamizu@192.168.1.102:/tmp/dest

模拟同步,实际不执行

rsync -a /tmp/source /tmp/dest --dry-run

配置使用

目标主机

在目标主机上创建文件

vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log    
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建
log format = %t %a %m %f %b
#格式化日志
pidfile = /var/run/rsyncd.pid     
#pid文件的存放位置
lock file = /var/run/rsync.lock   
#支持max connections参数的锁文件
secrets file = /etc/rsync.pass    
#用户认证配置文件
uid = wakamizu       
#设置rsync运行权限
gid = wakamizu
#设置rsync运行权限
port = 873        
#默认端口
ignore errors     
#忽略错误
use chroot = true 
#默认为true,在chroot环境中运行rsync守护进程。
read only = no    
#设置rsync源服务器为读写权限
list = no     
#不显示rsync源服务器资源列表
max connections = 200     
#最大连接数
timeout = 600     
#设置超时时间
hosts allow = 192.168.1.105   
#允许访问来源地址
hosts deny = 0.0.0.0/24      
#禁止访问来源地址

[test]     
#自定义同步模块名称
path = /tmp/dest          
#目标主机数据存放路径
comment = test 
#模块描述
auth users = test        
#执行数据同步的用户名

创建目标文件夹

mkdir /tmp/dest

创建验证文件

echo "test:test">/etc/rsync.pass
chmod 600 /etc/rsync.pass

重新启动服务

systemctl restart rsync

源主机

显示目标主机模块详情

#显示模块列表,需要list=yes
rsync rsync://192.168.1.106/
#显示模块目录文件
rsync test@192.168.1.106::test

在源主机上执行同步指令

rsync -avzP /tmp/source/ test@192.168.1.106::test

或者

echo "test" > /etc/rsync.pass && chmod 600 /etc/rsync.pass
rsync --password-file=/etc/pass.txt -avzP /tmp/source/ test@192.168.1.106::test

定时备份

crontab -e
0 0 * * * * * /usr/bin/rsync -az /tmp/source/ /tmp/dest/
0 0 * * * * * /usr/bin/rsync --password-file=/etc/pass.txt -az /tmp/source/ test@192.168.1.106::test
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!