10.28 rsync工具介绍
10.29/10.30 rsync常用选项
10.31 rsync通过ssh同步
10.32/10.33 rsync通过服务同步
10.34 linux系统日志
10.35 screen工具
1.rsync工具介绍
做为linux管理员,数据备份是非常重要的。rsync不仅可以远程同步数据,也可以本地同步数据,它不会覆盖以前的数据,而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的数据覆盖!
rsync可以执行完整备份或增量备份。它的主要特点有:
1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;
3.可以增量同步数据,文件传输效率高,因而同步时间短;
4.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
5.支持匿名传输,以方便进行网站镜象等;
6.加密传输数据,保证了数据的安全性;
2.rsync常用选项
2.1 对应于以上六种命令格式,rsync有六种不同的工作模式:
- 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
- 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
- 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
- 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
- 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
- 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
2.2 rsync 详细参数:
2.3 rsync 应用实例 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
[root@knightlai /]# rsync -a /tmp/rsync/ /123/ //全部同步
[root@knightlai /]# ls
123 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys testdir tmp usr var xaa xab xac xad xae
[root@knightlai rsync]# ll //看一下现在目录文件
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
lrwxrwxrwx 1 root root 11 Aug 24 06:01 123.txt -> /tmp/11.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
[root@knightlai rsync]# cd /123 //看一下原来的目录里面的文件,发现和同步来的是一模一样的
[root@knightlai 123]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
lrwxrwxrwx 1 root root 11 Aug 24 06:01 123.txt -> /tmp/11.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
2.3.1 -L, --copy-links 想对待常规文件一样处理软链接
[root@knightlai 123]# rsync -avL /tmp/rsync/ /123/
sending incremental file list
123.txt
sent 170 bytes received 35 bytes 410.00 bytes/sec
total size is 0 speedup is 0.00
[root@knightlai 123]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
-rw-r--r-- 1 root root 0 Aug 24 06:02 123.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
[root@knightlai 123]# cd /tmp/rsync
[root@knightlai rsync]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
lrwxrwxrwx 1 root root 11 Aug 24 06:01 123.txt -> /tmp/11.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
2.3.2 --delete 删除那些DST中SRC没有的文件
//首先我们在目标文件目录下创建一个new.txt,然后用--delete参数同步一下,发现目标文件目录
下的new.txt被删除了,因为我们源目录下面没有这个文件
[root@knightlai rsync]# rsync -av --delete /tmp/rsync/ /123/
sending incremental file list
deleting new.txt
./
sent 150 bytes received 30 bytes 360.00 bytes/sec
total size is 11 speedup is 0.06
[root@knightlai rsync]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
lrwxrwxrwx 1 root root 11 Aug 24 06:01 123.txt -> /tmp/11.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
[root@knightlai rsync]# cd /123/
[root@knightlai 123]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 05:59 1
-rw-r--r-- 1 root root 0 Aug 24 06:00 11.txt
lrwxrwxrwx 1 root root 11 Aug 24 06:01 123.txt -> /tmp/11.txt
-rw-r--r-- 1 root root 0 Aug 24 05:59 2
-rw-r--r-- 1 root root 0 Aug 24 05:59 3
2.3.3 --exclude 指定排除不需要传输的文件