一、rsync
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的。事实上,rsync有一套自己的算法,其算法原理以及rsync对算法实现的机制可能比想象中要复杂一些。
1.
rsync [OPTION]... SRC DEST 拷贝本地文件
[root@localhost awk]#
rsync -av /etc/passwd /tmp/22.txt
#备份passwd到/tmp/下的22.txt
sending incremental file list
passwd
sent 1252 bytes received 31 bytes 2566.00 bytes/sec
total size is 1178 speedup is 0.92
2. rsync [OPTION]... SRC [USER@]HOST:DEST
本地机器的内容拷贝到远程机器
[root@localhost awk]# rsync -av /etc/passwd root@192.168.177.8:/tmp/22.txt 将本地机器上的/etc/passwd文件拷贝到远程192.168.177.8的/tmp/22.txt
sending incremental file list
passwd
sent 1252 bytes received 31 bytes 855.33 bytes/sec
total size is 1178 speedup is 0.92
3.rsync [OPTION]... [USER@]HOST:SRC DEST 将远程机器的内容拷贝到本地机器。
[root@localhost ~]#
rsync -av root@192.168.177.8:/etc/cron.d/ /tmp/ss
receiving incremental file list
created directory /tmp/ss
./
0hourly
sent 33 bytes received 225 bytes 172.00 bytes/sec
total size is 128 speedup is 0.50
4. -e 指定端口进行传输
[root@localhost ~]#
rsync -avP -e "ssh -p 22"root@192.168.177.8:/etc/cron.d/ /tmp/ss
sending incremental file list
drwxr-xr-x 21 2017/11/09 14:13:19 ss
-rw-r--r-- 128 2017/08/03 23:33:54 ss/0hourly
sent 57 bytes received 13 bytes 140.00 bytes/sec
total size is 128 speedup is 1.83
rsync -a -a包含的选项 -rtplgoD
-r 同步目录的时候要加上,类似cp的-r
-v 可视化,同步时显示一些信息,可以看到同步的过程
-l 保留软链接
-L 将软链接指向的原文件拷贝过去
-p 保留文件的权限shux
-o 保持文件的属主
-g 保持文件的属组
-D 保持文件设备信息
-t 保持文件的时间属性
-P --progress 显示备份过程,比-v更加详细,比如显示速率
--delete 删除目标目录中没有的文件或目录
--exclude 过滤指定文件
-u --update 仅仅进行更新,也就是跳过所有已经存在于DEST,并且文件时间晚于要备份的文件,不覆盖更新的文件。
-z 传输时压缩