具体步骤如下:
最好不要在各环境的 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
使用,
选项 | 说明 |
---|---|
--delete-before | 接收者在传输之前进行删除操作 |
--progress | 在传输时显示传输过程 |
-a | 归档模式,表示以递归方式传输文件,并保持所有文件属性 |
-H | 保持硬连接的文件 |
-v | 详细输出模式 |
–stats | 给出某些文件的传输状态 |
/tmp/blank/ | 创建临时空目录 |
25/ | 需要删除的目录下内容,目录本身不会删除 |
这样我们要删除的 25 目录内容就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数数千个文件也是秒删。同时,我们使用 screen
后台运行方式,即使当前终端断开也不会影响 rsync
删除进程的。