Linux用rsync命令秒删十万文件

迁移网站和rm删除大量文件卡住怎么办?

昨天在服务器网站搬家的时候遇到一个小问题,在linux端现在用宝塔面板管理非常方便,于是搬家也偷懒用一键迁移的功能,可以把数据库网站配置等一次性迁移到新服务器,用宝塔迁移网站的时候卡住不动,直接ssh到服务器用rm -rf删除网站缓存文件目录的时候,也卡住不动,因为缓存目录的文件太多了,导致这样删除效果差,非常慢。

上面两种方法都太费时间了,于是只能用rsync来操作了。

网站用的是帝国CMS程序,现在需要把缓存目录清空后再迁移到新服务器,目录为:/ecachefiles/empirecms/

rsync –delete-before具体操作方法:

1、在/ecachefiles/目录下新建一个临时的空目录/temp/

mkdir temp

2、然后通过rsync指令用空文件夹覆盖掉目标文件夹

rsync --delete-before -d /ecachefiles/temp/ /ecachefiles/empirecms/ --直接删除,不会列出详细信息;

当然也可以列出详细信息,但是文件多的话,没必要;列出详细信息的命令也写出来: 

rsync --delete-before -a -H -v /ecachefiles/temp/ /ecachefiles/empirecms/  --删除时会列出详细信息

网站缓存目录下面有多少个缓存文件具体也不知道,反正删除完成之后磁盘腾空出来几十G空间,怪不得用rm -rf卡着大半天没反应了。

rsync为什么比rm 删除速度快?主要还是工作原理不一样

1、rm命令删除内容时,会把目录的每个条目逐个删除,需要循环重复N多次,当文件特别多时硬件开销特别大,所以卡;

2、rsync删除内容时,是把建立好新的空目录来替换掉老目录,注意,是替换,基本没开销。 

posted @ 2022-07-29 14:45  神经蛙  阅读(1293)  评论(0编辑  收藏  举报