海运的博客

rsync/rclone对比目录及同步

发布时间:March 19, 2022 // 分类: // No Comments

rsync使用参数:

-v #详细输出
-i #显示差异
-n/--dry-run #仅测试,配合-i对比目录差异
-a #相当于-rlptgoD,-D相当于--devices和--specials
-r #递归目录
-l #链接文件
-p #同步文件权限
-t #同步修改时间
-g #同步所有者
-o #同步用户组
--devices #同步设备文件
--specials #同步特殊文件,如socket
--delete #删除目标目录在源目录不存在的文件,相当于mirror。
--progress #显示进度和速度
--ignore-existing #不同步目标已存在的文件
--preallocate #预先分配空间,减少碎片
-c #通过文件校验判断差异,默认使用文件大小和修改时间判断差异

对比目录差异:

rsync -n -a -i -v src/ dst/

仅使用文件大小对比差异:

rsync -n -r -i -v --size-only src/ dst/

rsync显示差异格式解读:
https://stackoverflow.com/questions/4493525/what-does-f-mean-in-rsync-logs
https://stackoverflow.com/questions/1113948/rsync-output
https://download.samba.org/pub/rsync/rsync.1

使用rclone同步及比较目录差异:

#默认使用时间和大小对比
rclone sync --dry-run src/ dst/ 
--checksum #使用文件hash对比
#默认使用文件大小和hash对比
rclone check src/ dst/
--size-only #仅使用文件大小对比

https://forum.rclone.org/t/how-to-utilize-mod-time-and-size-instead-checksums-during-sync-and-check/14020/10

inotify配合rsync实时同步备份服务器数据

发布时间:May 21, 2012 // 分类:备份存储 // No Comments

主服务器需安装配置inotify-tools,用于实时监控服务器文件变化。
inotify-tool实时监控并发送文件到rsync从服务器脚本:

#/bin/bash
host=https://www.haiyun.me
src=/var/www/html
dst=www
user=back
passwd=passwd
echo "$passwd" > /etc/rsync.pass
chmod 600 /etc/rsync.pass
inotifywait -mrq -e close_write,create,delete,attrib --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' $src\
|while read files 
do
    file=`echo $files|awk '{print $3}'`
    rsync -vzrtopg --delete --progress $file $user@$host::$dst --password-file=/etc/rsync.pass
    echo "$files was rsynced" >> /var/log/rsync.log
done

从服务器配置rsync:

uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock

[www]
path = /home/wwwroot
comment = www file
ignore errors
hosts allow = *
list = false
auth users = onovps
secrets file = /etc/server.pass
read only = no
write only = no
uid = root
gid = root

建立验证文件,root权限可查看:

echo "onovps:passwd" > /etc/server.pass 
chmod 600 /etc/server.pass

启动rsync进程:

rsync --daemon
echo "rsync --daemon" >> /etc/rc.local
分类
最新文章
最近回复
  • jiangker: good, very helpful to me
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...
  • 海运: 关闭服务器
  • 海风: override.battery.charge.low以及override.battery.r...
  • koldjf: 不能过滤
  • 杰迪武士: 此文甚好甚强巨,依照此文在树莓派2 + Rasbian上部署成功 感谢博主美文共赏
  • 海运: ups不知有没选项可设置此参数,不过你可以在另外一台电脑上安装nut客户端自动关机。
  • kgami: 想请教一下,设置了的电脑自动关机之后,几秒后UPS怎么也跟着关机了,导致另外一台电脑没关机就断...
  • 海运: 写的很详细了啊,/etc/nut/hosts.conf用以nut-cgi连接nut服务器参数,...