- --append:文件传输时中断,可以接着中断的位置进行续传。
- --append-verify:和 append 效果相似,但会对已完成的文件进行校验,如果检验失败会重新传输。
- 4-10.13 内容:
通过 rsync -av --append 和 --append-verify 学习文件续传。 -
操作步骤:
1、通过 raync 对大文件进行传输,Ctrl + c 中断传输,再用 --append 和 --append-verify 模拟文件中断后续传。
2、用 CentOS 7 光盘内的大文件进行传输。
首先,选择虚拟机的系统鼠标右键----> 菜单栏选择 ‘ 设置 ’,设置 CD / DVD 选项。
- 3、系统输入 df -h 查看设备。/dev/sr0 就是加载的 CentOS 7 ISO。
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 900M 0 900M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.5M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda3 37G 2.3G 35G 7% /
/dev/sr0 4.3G 4.3G 0 100% /media/local ## CentOS 7 ISO
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 182M 0 182M 0% /run/user/0
[root@localhost ~]#
- 4、把 CentOS 7 ISO 挂载到 /mnt/cdrom/ 目录下。等于通过 /mnt/cdrom/ 可以访问 CentOS 7 ISO 的内容。如 mnt 目录下没有 cdrom 目录,可以新建一个。
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
- 5、查看 /mnt/cdrom/ 目录下 CentOS 7 ISO 的内容。测试用例是 Packages 目录作为传输。Packages 目录下有很多 rpm 包,用多文件的目录进行传输测试,方便中断,也方便观察续传情况。
[root@localhost ~]#
[root@localhost ~]# ll /mnt/cdrom/
total 664
-rw-rw-r--. 3 root root 14 Sep 5 2017 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 Sep 5 2017 EFI
-rw-rw-r--. 3 root root 227 Aug 30 2017 EULA
-rw-rw-r--. 3 root root 18009 Dec 10 2015 GPL
drwxr-xr-x. 3 root root 2048 Sep 5 2017 images
drwxr-xr-x. 2 root root 2048 Sep 5 2017 isolinux
drwxr-xr-x. 2 root root 2048 Sep 5 2017 LiveOS
drwxrwxr-x. 2 root root 641024 Sep 5 2017 Packages ## < ------ 测试用例目录
drwxr-xr-x. 2 root root 4096 Sep 5 2017 repodata
-rw-rw-r--. 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 Sep 6 2017 TRANS.TBL
[root@localhost ~]#
- 6、新建接收数据的目录 backups_append。
[root@localhost ~]# mkdir test/backups_append
[root@localhost ~]#
[root@localhost ~]# ls test
backups_append ##新建的目录
- 7、执行 rsync -av /mnt/cdrom/Packages/ test/backups_append/ 。传输 /mnt/cdrom/Packages/ 目录下的文件到 test/backups_append/ 目录下。传输过程中 Ctrl + c 中断传输。
## 执行 rsync 语句同步传输文件。
[root@localhost ~]# rsync -av /mnt/cdrom/Packages/ test/backups_append/
sending incremental file list
./
389-ds-base-1.3.6.1-16.el7.x86_64.rpm
389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm
ElectricFence-2.2.2-39.el7.x86_64.rpm
GConf2-3.2.6-8.el7.x86_64.rpm
GeoIP-1.5.0-11.el7.x86_64.rpm
## {
## ...
## 省略中间传输文件的内容
## ...
## }
bridge-utils-1.5-9.el7.x86_64.rpm
brlapi-0.6.0-15.el7.x86_64.rpm
brltty-4.5-15.el7.x86_64.rpm ## < -------- 此处 Ctrl +c 中断传输。
## 最后的文件是 brltty-4.5-15.el7.x86_64.rpm
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(638) [sender=3.1.2]
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.2]
[root@localhost ~]#
- 8、使用 --append 参数进行续传。续传位置从中断位置的倒数第二个文件 brlapi-0.6.0-15.el7.x86_64.rpm 继续传输。
[root@localhost ~]#
[root@localhost ~]# rsync -av --append /mnt/cdrom/Packages/ test/backups_append/
sending incremental file list
./
brlapi-0.6.0-15.el7.x86_64.rpm ## <------ 上图的倒数第二个文件开始续传
brltty-4.5-15.el7.x86_64.rpm
btrfs-progs-4.9.1-1.el7.x86_64.rpm
byacc-1.9.20130304-3.el7.x86_64.rpm
## {
## ...
## 省略中间传输文件的内容
## ...
## }
compat-glibc-2.12-4.el7.centos.x86_64.rpm
compat-glibc-headers-2.12-4.el7.centos.x86_64.rpm
compat-gnome-desktop314-3.14.2-1.el7.x86_64.rpm ## < -------- 此处 Ctrl +c 中断传输。
## 最后的文件是 compat-gnome-desktop314-3.14.2-1.el7.x86_64.rpm
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(638) [sender=3.1.2]
[root@localhost ~]#
- 9、使用 --append-verify 参数进行续传。续传位置从中断位置的倒数第二个文件 compat-glibc-headers-2.12-4.el7.centos.x86_64.rpm 继续传输。
[root@localhost ~]#
[root@localhost ~]# rsync -av --append-verify /mnt/cdrom/Packages/ test/backups_append/
sending incremental file list
./
compat-glibc-headers-2.12-4.el7.centos.x86_64.rpm ## <------ 上图的倒数第二个文件开始续传
compat-gnome-desktop314-3.14.2-1.el7.x86_64.rpm
compat-libcap1-1.10-7.el7.x86_64.rpm
compat-libcogl-pango12-1.14.0-3.el7.x86_64.rpm
## {
## ...
## 省略中间传输文件的内容
## ...
## }
diffutils-3.3-4.el7.x86_64.rpm
dleyna-connector-dbus-0.2.0-2.el7.x86_64.rpm
dleyna-core-0.5.0-1.el7.x86_64.rpm
dleyna-server-0.5.0-1.el7.x86_64.rpm ## < -------- 此处 Ctrl +c 中断传输。
## 最后的文件是 dleyna-server-0.5.0-1.el7.x86_64.rpm
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(638) [sender=3.1.2]
[root@localhost ~]#
- 10、再用 --append 参数进行续传。续传位置从中断位置的倒数第四个文件 diffutils-3.3-4.el7.x86_64.rpm 继续传输。
[root@localhost ~]#
[root@localhost ~]# rsync -av --append /mnt/cdrom/Packages/ test/backups_append/
sending incremental file list
./
diffutils-3.3-4.el7.x86_64.rpm ## <------ 上图的倒数第四个文件开始续传
dleyna-connector-dbus-0.2.0-2.el7.x86_64.rpm
dleyna-core-0.5.0-1.el7.x86_64.rpm
dleyna-server-0.5.0-1.el7.x86_64.rpm
dlm-4.0.7-1.el7.x86_64.rpm
dlm-lib-4.0.7-1.el7.x86_64.rpm
## {
## ...
## 省略中间传输文件的内容
## ...
## }
edac-utils-0.16-15.el7.x86_64.rpm
efax-0.9a-15.el7.x86_64.rpm
efibootmgr-15-2.el7.x86_64.rpm
efivar-libs-31-4.el7.x86_64.rpm
ekiga-4.0.1-7.el7.x86_64.rpm ## < -------- 此处 Ctrl +c 中断传输。
## 最后的文件是 ekiga-4.0.1-7.el7.x86_64.rpm
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(638) [sender=3.1.2]
[root@localhost ~]#
- 11、再用 --append-verify 参数进行续传。续传位置从中断位置的倒数第一个文件 ekiga-4.0.1-7.el7.x86_64.rpm 继续传输,直至完毕。
[root@localhost ~]# rsync -av --append-verify /mnt/cdrom/Packages/ test/backups_append/
sending incremental file list
./
ekiga-4.0.1-7.el7.x86_64.rpm ## <------ 上图的倒数第一个文件开始续传
elfutils-0.168-8.el7.x86_64.rpm
elfutils-default-yama-scope-0.168-8.el7.noarch.rpm
elfutils-devel-0.168-8.el7.x86_64.rpm
elfutils-libelf-0.168-8.el7.x86_64.rpm
elfutils-libelf-devel-0.168-8.el7.x86_64.rpm
elfutils-libs-0.168-8.el7.x86_64.rpm
## {
## ...
## 省略中间传输文件的内容
## ...
## }
yum-plugin-tmprepo-1.1.31-42.el7.noarch.rpm
yum-plugin-verify-1.1.31-42.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-42.el7.noarch.rpm
yum-utils-1.1.31-42.el7.noarch.rpm
zenity-3.22.0-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
sent 3,657,994,117 bytes received 63,918 bytes 23,225,765.30 bytes/sec
total size is 4,005,119,343 speedup is 1.09
[root@localhost ~]#
综上测试,append 和 append-verify 都能完成续传的任务。