Linux rsync命令

[root@xuexi ~]# rsync /etc/fstab /tmp                # 在本地同步
[root@xuexi ~]# rsync -r /etc 172.16.10.5:/tmp       # 将本地/etc目录拷贝到远程主机的/tmp下,以保证远程/tmp目录和本地/etc保持同步
[root@xuexi ~]# rsync -r 172.16.10.5:/etc /tmp       # 将远程主机的/etc目录拷贝到本地/tmp下,以保证本地/tmp目录和远程/etc保持同步
[root@xuexi ~]# rsync /etc/                          # 列出本地/etc/目录下的文件列表
[root@xuexi ~]# rsync 172.16.10.5:/tmp/              # 列出远程主机上/tmp/目录下的文件列表

另外,使用rsync一定要注意的一点是,源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身。例如:

[root@xuexi ~]# rsync /etc /tmp
[root@xuexi ~]# rsync /etc/ /tmp

第一个命令会在/tmp目录下创建etc目录,而第二个命令不会在/tmp目录下创建etc目录,源路径/etc/中的所有文件都直接放在/tmp目录下。

将/etc/fstab拷贝到/tmp目录下。

[root@xuexi ~]# rsync /etc/fstab /tmp

(2).将/etc/cron.d目录拷贝到/tmp下。

[root@xuexi ~]# rsync -r /etc/cron.d /tmp

该命令会在目标主机上创建/tmp/cron.d目录,并将/etc/cron.d/中的文件放入到/tmp/cron.d/目录中,也就是说默认情况下,是不会在目录路径下创建上层目录/etc的。

(3).将/etc/cron.d目录拷贝到/tmp下,但要求在/tmp下也生成etc子目录。

[root@xuexi ~]# rsync -R -r /etc/cron.d /tmp

其中”-R”选项表示使用相对路径,此相对路径是以目标目录为根的。对于上面的示例,表示在目标上的/tmp下创建etc/cron.d目录,即/tmp/etc/cron.d,etc/cron.d的根”/”代表的就是目标/tmp。

如果要拷贝的源路径较长,但只想在目标主机上保留一部分目录结构,例如要拷贝/var/log/anaconda/*到/tmp下,但只想在/tmp下保留从log开始的目录,如何操作?使用一个点代表相对路径的起始位置即可,也就是将长目录进行划分。

[root@xuexi ~]# rsync -R -r /var/./log/anaconda /tmp

这样,从点开始的目录都是相对路径,其相对根目录为目标路径。所以对于上面的示例,将在目标上创建/tmp/log/anaconda/*。

(4).对远程目录下已存在文件做一个备份。

[root@xuexi ~]# rsync -R -r –backup /var/./log/anaconda /tmp

这样在目标目录下,已存在的文件就被做一个备份,备份文件默认使用”~”做后缀,可以使用”–suffix”指定备份后缀。

[root@xuexi tmp]# ll log/anaconda/ total 3112
-rw——- 1 root root 6668 Jul 14 12:45 anaconda.log
-rw——- 1 root root 6668 Jul 14 11:44 anaconda.log~
-rw——- 1 root root 3826 Jul 14 12:45 ifcfg.log
-rw——- 1 root root 3826 Jul 14 11:44 ifcfg.log~
-rw——- 1 root root 1102699 Jul 14 12:45 journal.log
-rw——- 1 root root 1102699 Jul 14 11:44 journal.log~
-rw——- 1 root root 0 Jul 14 12:45 ks-script-1uLekR.log
-rw——- 1 root root 0 Jul 14 11:44 ks-script-1uLekR.log~
-rw——- 1 root root 0 Jul 14 12:45 ks-script-iGpl4q.log
-rw——- 1 root root 0 Jul 14 11:44 ks-script-iGpl4q.log~
-rw——- 1 root root 160420 Jul 14 12:45 packaging.log
-rw——- 1 root root 160420 Jul 14 11:44 packaging.log~
-rw——- 1 root root 27906 Jul 14 12:45 program.log
-rw——- 1 root root 27906 Jul 14 11:44 program.log~
-rw——- 1 root root 78001 Jul 14 12:45 storage.log
-rw——- 1 root root 78001 Jul 14 11:44 storage.log~
-rw——- 1 root root 197961 Jul 14 12:45 syslog
-rw——- 1 root root 197961 Jul 14 11:44 syslog~

可以使用”–backup-dir”指定备份文件保存路径,但要求保存路径必须存在。

[root@xuexi ~]# mkdir /tmp/log_back

[root@xuexi ~]# rsync -R -r –backup –backup-dir=/tmp/log_back /var/./log/anaconda /tmp

指定备份路径后,默认将不会加备份后缀,除非使用”–suffix”显式指定后缀,如”–suffix=~”。

[root@xuexi tmp]# tree /tmp/log_back/
/tmp/log_back/
└── log
    └── anaconda
        ├── anaconda.log
        ├── ifcfg.log
        ├── journal.log
        ├── ks-script-1uLekR.log
        ├── ks-script-iGpl4q.log
        ├── packaging.log
        ├── program.log
        ├── storage.log
        └── syslog
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄宝康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值