使用rsync删除海量数据

Posted 品鉴初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用rsync删除海量数据相关的知识,希望对你有一定的参考价值。

具体步骤如下:

最好不要在各环境的 jumper 机器上执行,因为 jumper 机器资源有限(CPU、MEM),进程会发生卡死或进度缓慢情况,可以将efs挂载到资源相对充足的其他节点上执行。

# 首先建立一个空白文件夹
mkdir -p /tmp/blank
# 创建 screen 窗口
screen -S delete-efs-25
# 查看创建的screen
screen -ls
# 进入上面创建的screen
screen -r delete-efs-25
# 执行 rsync 命令,不要忘记文件夹后的“/”
rsync --delete-before -a -H -v --progress --stats /tmp/blank/ 25/
# 或者
rsync --delete -a -H -v --progress --stats /tmp/blank/ 25/
# 如需计算删除耗时
time rsync --delete-before -a -H -v --progress --stats /tmp/blank/ 25/

关于screen使用,详见screen后台运行任务,选项说明:

选项 说明
--delete-before 接收者在传输之前进行删除操作
--progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态
/tmp/blank/ 创建临时空目录
25/ 需要删除的目录下内容,目录本身不会删除

这样我们要删除的 25 目录内容就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数数千个文件也是秒删。同时,我们使用screen后台运行方式,即使当前终端断开也不会影响rsync删除进程的。

以上是关于使用rsync删除海量数据的主要内容,如果未能解决你的问题,请参考以下文章

基于sersync海量文件实时同步

rsync

rsync+inotify实现数据同步

rsync+inotify实现实时同步

(网络)文件拷贝(Windows/Linux)

rsync错误代码的综合列表[关闭]