rsync快速删除大文件

说明:
通过rm来删除大文件或很多小文件里,需要时间些比较多。rsync来删除大文件,处理速度那是相当的快,处理几个G的文件也就是秒级的事、比rm要快很多倍。就是对磁盘io的占用较高、要尽量避免在业务高峰操作

说法:

rsync --delete-before -avH --progress --stats SRC DEST
--delete-before      接收者在传输之前进行删除操作
-progress            在传输时显示传输过程
-a                   归档模式 表示以递归方式传输文件,并保持所有文件属性
-r                   对子目录以递归方式处理
-H                   保持硬连接的文件
-v                   详细输出模式
--stats              显示文件传输的过程
SRC                  这边是指新建的空文件或目录
DEST                 这边是指需要清除的文件或目录

 
解释:
通过delete-before参数,把SRC(为新建的空文件或空目录)里的内容rsync到DEST去:
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录

测试:
1. 查看当前目录及要删除的文件

# pwd  
/tmp/test/log 
# ls -h
-rw-r--r--. 1 nobody nobody 4.4G Jan 16 02:45 rhel-server-5.8-i386-dvd.iso   
也可以通过dd bs=1M count=1000 if=/dev/zero of=lala生成个1G的lala文件用作测试

 
2. 新建空目录、通过rsync秒删大文件

# mkdir empty  
# rsync --delete-before -avH --progress --stats /root/empty/ /tmp/test/log/  
building file list ...   
1 file to consider  
deleting rhel-server-5.8-i386-dvd.iso  
./  
  
Number of files: 1  
Number of files transferred: 0  
Total file size: 0 bytes  
Total transferred file size: 0 bytes  
Literal data: 0 bytes  
Matched data: 0 bytes  
File list size: 19  
File list generation time: 0.001 seconds  
File list transfer time: 0.000 seconds  
Total bytes sent: 29  
Total bytes received: 15  
  
sent 29 bytes  received 15 bytes  6.77 bytes/sec  
total size is 0  speedup is 0.00 

可以看到,处理个几G的文件简直就是秒删!!

“rsync快速删除大文件”的2个回复

发表评论

邮箱地址不会被公开。 必填项已用*标注