linux 同步备份文件

日常开发使用的笔记本键盘又一次坏了,需要送修几天,需要将这台电脑上所有资料代码备份到家里台式机,因为这已经不是第一次这么干了,前几次都是拿移动硬盘转移数据,很是麻烦并且还不一定什么数据都能简单打包,而且特慢,终于在这次忍不住想到了有没有什么办法做到自动备份同步,找了一下还真有,而且人家是用在数据运维过程中的数据备份,实时性很高,以下花了一晚上时间做了一些尝试,虽然最后没有用到实时备份同步的功能但是也进行了尝试,留作他日使用。

本地文件简单测试

luoyang@pavilion:~$ mkdir testdir
luoyang@pavilion:~$ rsync -av NewQotus testdir #会在testdir目录下新建一个NewQotus目录并备份
luoyang@pavilion:~$ rsync -av NewQotus/ testdir/ #不会建立NewQotus目录

使用实时同步测试

编译安装完 inotify/home/luoyang/App/shell/rsync.sh 文件如下:

#!/bin/bash
host=192.168.1.119
src=/home/luoyang/test
des=test
user=qotone

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files
do
    /usr/bin/rsync -vzrtopg --progress --delete --password-file=/home/luoyang/rsync.pw $src $user@$host::$des
    echo "${files} was rsynced" >>/home/luoyang/rsync.log 2>&1
done

服务器端配置文件(/etc/rsyncd.conf):

uid = root

gid = root

user chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/run/rsyncd.log

[Workspace]

path = /home/luoyang/Workspace

ignore errors

read only = no

list = no

hosts allow = 192.168.1.5/255.255.255.0

auth users = qotone

secrets file = /etc/rsyncd.password

[DATA]

path = /home/luoyang/Documents/DATA

ignore errors

read only = no

list = no

hosts allow = 192.168.1.5/255.255.255.0

auth users = qotone

--exclude = Virtual_Machines BaiduNetdisk

secrets file = /etc/rsyncd.password

[nfsroot]

path = /home/luoyang/nfsroot

ignore errors

read only = no

list = no

hosts allow = 192.168.1.5/255.255.255.0

auth users = qotone

secrets file = /etc/rsyncd.password

[notes]

path = /home/luoyang/Documents/notes

ignore errors

read only = no

list = no

hosts allow = 192.168.1.5/255.255.255.0

auth users = qotone

secrets file = /etc/rsyncd.password

[Sources]

path = /home/luoyang/Source

ignore errors

read only = no

list = no

hosts allow = 192.168.1.5/255.255.255.0

auth users = qotone

secrets file = /etc/rsyncd.password

密码文件:

touch /etc/rsyncd.password
echo "qotone:qotone" > /etc/rsyncd.password

往服务器上传文档:

rsync -avz --delete --progress ./test/ qotone@192.168.1.119::test

从服务器下载文档:

rsync -avz --delete qotone@192.168.1.119::test ./test --password-file=/home/luoyang/rsync.pw

rsync 命令参数详解

rsync 常用参数:

-a, --archive 归档模式,等于-rlptgoD; #最常用的 一般直接 -avzP

-r, --recursive 递归模式;

-l 保持符号连接;

-p 保持文件原有权限;

-t 保持文件原有修改时间;

-g 保持文件原有用户组;

-o 保持文件原有属主;

-D -devices -specials,保持块设备文件和特殊文件;

-I 强制扫描,放弃“quick check”策略(quick check策略,通过查看文件的时间戳和文件大小,先排除一批认为相同的文件[rsync不会对文件夹本身做“quick check”]);

-z, --compress 压缩,默认的压缩算法和gzip一样;

-v, --verbose 显示进度详细信息;

-q, --quiet 精简输出模式;

-R, --relative 保持全路径;

–progress 显示传输进度(百分百); 等同于 -P

–delete 本地删除某一文件,远程也同步的删除该文件,保持严格的一致(不加该参数,则表示只增不减);

–exclude="*.tmp" 排除某些文件;

–exclude-from=FILE 排除FILE中指定模式的文件;

–port=PORT 指定其他的rsync服务端口;

实际操作

rsync -avz --progress /home/luoyang/notes/ qotone@192.168.1.119::notes
rsync -avz --progress /home/luoyang/Source qotone@192.168.1.119::Sources
rsync -avz --progress /home/luoyang/nfsroot/ qotone@192.168.1.119::nfsroot
rsync -avz --progress /media/luoyang/DATA/ qotone@192.168.1.119::DATA
rsync -avz --progress /media/luoyang/Workspace/ qotone@192.168.1.119::Workspace
rsync -avz --delete --progress /media/luoyang/Workspace/stm32/ qotone@192.168.1.119::stm32 # --delete 会删除掉服务器上不同的文件

参考文档

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值