为了可以将macOS系统自带的低版本rsync升级到最新的3.1.2版,运行下面的命令来下载编译和安装:
cd ~/Desktop
curl -O https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
curl -O https://download.samba.org/pub/rsync/src/rsync-patches-3.1.2.tar.gz
tar -xvf rsync-3.1.2.tar.gz
tar -xvf rsync-patches-3.1.2.tar.gz
cd rsync-3.1.2
patch -p1 < patches/fileflags.diff
patch -p1 < patches/crtimes.diff
patch -p1 < patches/hfs-compression.diff
./configure
make
sudo make install
最后一句用于安装到/usr/local/bin中
那三个patch专门用于针对Mac的更新。
其中:
fileflags - 用于处理保留mac文件的st_flags stat标识 (参见sys/stat.h),以及-force选项的增强。
crtimes - 用于保留文件的–crtimes (-N)
hfs-compression - 支持HFS+的压缩功能
在当前用户用户目录下创建rsyncd.conf文件(最好使用root)
vim rsyncd.conf
uid = shouyouzu
gid = wheel
use chroot = yes
ports = 873
log file = /Users/shouyouzu/rsync_log
[test]
path = /Users/shouyouzu/test
hosts allow = 10.10.24.48/255.255.255.255
read only = false
rsync --daemon --config=/Users/shouyouzu/rsyncd.conf -v --log-file=log.txt
查看进程:
ps -ef | grep rsync
–daemon:守护进程
–config :配置文件位置
–log-file:日志存放位置
下图说明了上面三个的增强功能:
检测rsync用于备份的有效性的脚本可以参考:Backup-Bouncer。它可以检测下面的osx分区文件的特性,如:permissions, timestamps, symlinks, symlink ownership, hardlinks, resource forks, finder flags, finder locks, create dates, BSD flags, extended attributes, HFS compression, and ACLs。具体使用是,先创建原和目标,在原上创建具有上述特性的文件,备份后再校验。比如:
./bbouncer create-vol _src
./bbouncer create-vol _dst
./bbouncer create /Volumes/_src/
rysnc --your-options /Volumes/_src/ /Volumes/_dst/
./bbouncer verify -d /Volumes/_src/ /Volumes/_dst/
我们这里可以选择的参数( --your-options ):
-aNHAxX --hfs-compression --force-change --delete --fileflags
其中:
-a : 存档模式,等同于-rlptgoD
-N:保留创建时间 (–crtimes)
-H:保留硬链接 (–hard-links)
-A:保留ACLs (–acls)
-x:不夸文件系统(–one-file-system)
-X:保留文件的扩展属性(–xattrs)
–hfs-compression:如果支持复制压缩文件的原文件
–force-change:如果在目标文件的更新和删除操作中,先禁止用户和系统的immutable标识,以防失败
–delete:删除目标上无关的文件
–fileflags:保留文件的标识,参见chflags命令
其他可以参考的参数:
-E:复制文件的扩展属性和resource forks。
–progress:显示进程
最后使用下面的命令清除:
./bbouncer clean /Volumes/_dst