rsync的用法,太多。
现在说的是一个奇淫技巧,让同步的文件自带后缀,
[root@iZ25skf6ae2Z tmp]# tree a
a
└── 1
[root@iZ25skf6ae2Z tmp]# tree b
b
└── a
├── 1
├── 1~
├── 1_20160822103208
├── 1_20160822103315
└── 1_20160822103407
用到的参数:
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为filename~。可以使用-- suffix选项来指定不同的备份文件前缀。
-suffix=SUFFIX 定义备份文件前缀
--backup-dir 将备份文件(如filename~)存放在在目录下。
如果这样:
rsync -avzP -b a b
修改下a/1.txt 执行上面命令,得到的
[root@iZ25skf6ae2Z tmp]# tree b
b
└── a
├── 1
├── 1~
如果这样:
修改下a/1.txt 随便加入点什么
然后
t=`date +%Y%m%d%H%M%S`
rsync -avzP -b --suffix="_$t" a b
得到
[root@iZ25skf6ae2Z tmp]# tree b
b
└── a
├── 1
├── 1~
├── 1_20160822103208
1_20160822103208里面的内容事上一次的内容,本次的修改内容在1和a/1 一致
--backup-dir 将备份文件(如filename~)存放在在目录下
他的用途是把这些带后缀的文件放在一个指定的目录下面。
测试下:
修改下a/1,加入一些内容
然后
[root@iZ25skf6ae2Z tmp]# t=`date +%Y%m%d%H%M%S`
[root@iZ25skf6ae2Z tmp]# rsync -avzP -b --suffix="_$t" --backup-dir='b/bak' a b
sending incremental file list
a/
a/1
180 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2)
sent 117 bytes received 35 bytes 304.00 bytes/sec
total size is 180 speedup is 1.18
[root@iZ25skf6ae2Z tmp]# tree b
b
├── a
│ ├── 1
│ ├── 1~
│ └── 1_20160822103407
└── b
└── bak
└── a
└── 1_20160822105149
会发现b/ 多了bak 然后bak下面多了一些咱们想要的bak目录。
rsync大法好。