昨天在服务器网站搬家的时候遇到一个小问题,在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 删除速度快?主要还是工作原理不一样
[successbox]1、rm命令删除内容时,会把目录的每个条目逐个删除,需要循环重复N多次,当文件特别多时硬件开销特别大,所以卡;
2、rsync删除内容时,是把建立好新的空目录来替换掉老目录,注意,是替换,基本没开销。[/successbox]
发表评论
还没有评论,快来抢沙发吧!