rsync 取代 cp , 有进度状态也保存权限

0x00 常用示例

rsync -av 本地路径 远程路径 例如:

rsync -av /home/ivo/xxx.txt ibo@192.168.1.1:/backup/

这是把本地的xxx.txt这个文档,复制到使用rsync最快速删除海量文件的方法主机ivbo的/backup/路径下面。

1、先安装rsync:

yum install rsync

2、建立一个空的文件夹:

mkdir /tmp/test

3、技巧用rsync删除目标目录:

rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/

这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。 选项说明:

  • --delete-before 接收者在传输之前进行删除操作
  • -progress 在传输时显示传输过程
  • -a 归档模式,表示以递归方式传输文件,并保持所有文件属性
  • -H 保持硬连接的文件
  • -v 详细输出模式
  • --stats 给出某些文件的传输状态

0x01 替代 cp

正常状态下的 cp 是没有进度条的,这在一定程度上会比较不方便,尤其是文件多的时候不知道什么的时候完成要等多久。为了解决这个问题找到了 rsync,rsync 是可以实现这个功能的。

示例

rsync -avP /源地址 /目标地址/

说明

rsync -avP /source/data /destination/

文件夹 data 复制到 /destination/data 下。

如果是:

rsync -avP /source/data/ /destination/

就会将 data/目录下的所有内容, 复制到 /destination/下! 和上面的区别仅仅是data后面的有没有/。

也就是用rsync -avP代替cp即可。

.bashrc 中添加别名,写在最后一行:

alias cpa="rsync -avP"

我这个是用cpa来代替的,你也可以写成任意的,之所以没替换cp,我是考虑到经常远程用惯了一个普通的就用不惯了,特意更改了一点点。

上一篇
下一篇