业务需求:需要把一个目录下的1000多万个文件迁移到远程机器
思路:用wget来把文件一个一个的迁移过去,因为文件数量比较大,如果一下在循环操作,会非常慢。所以分批操作,采用化整为零的方法。

#! /bin/sh
home=/usr/local/www/skate/p_w_picpath63delback
cd $homeif [ `pwd` == $home ];then
a="1 1000000 2000000 3000000 4000000 5000000 6000000 7000000 8000000 9000000"for b in $ado
c=`expr $b + 100000`for loop in `sed -n "$b,$c"p $1`do
path=`echo $loop | awk -F "/" '{print $1"/"$2"/"$3"/"$4}'`mkdir -p $path/usr/bin/wget http://172.16.111.163/$loop -P $pathecho $loop >> $1.logdone
done
fi

需求2:需要把A目录下的1000多万个小文件分批迁移到B目录,每次1000个,30分钟一次,mv之前需确认B目录为空。

思路:使用python的shutil模块,也用shell,大概思路与上文一般。

# -*- coding: utf-8 -*-
import os
import shutil
def Test1(rootDir): list_dirs = os.walk(rootDir) count=0for root, dirs, files in list_dirs: for d in dirs: print os.path.join(root, d)      if os.listdir("/data/file/S10032666/"):print "目录非空,请清空文件。"return 0else:for f in files: if count < 1000:count=count +1f = os.path.join(root, f)shutil.move(f,"/data/file/S10032666/")print os.path.join(root, f) else:return 0Test1("/data/S10032666_bak/")

我们也可以使用linux系统命令rsync来巧妙的处理。rsync实际上用的是替换原理,处理数十万个文件也是秒删。

1、先建立一个空目录
mkdir /data/blank 2、用rsync删除目标目录
rsync --delete-before -d -a -H -v --progress --stats /data/blank/ /var/edatacache/
或者
rsync --delete-before -d /data/blank/ /var/edatacache/这样/var/edatacache目录就被快速的清空了。选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress          在传输时显示传输过程
-a                       归档模式,表示以递归方式传输文件,并保持所有文件属性
-H                      保持硬连接的文件
-v                       详细输出模式
–stats                给出某些文件的传输状态
-d                      transfer directories without recursing3、也可以用来删除大文件假如我们在/root/下有一个几十G甚至上百G的文件data,现在我们要删除它
一、创建一个空文件    touch /root/empty
二、用rsync清空/root/data文件    rsync --delete-before -d --progess --stats /root/empty /root/data

转载于:https://blog.51cto.com/strongit/1812396

shell快速迁移海量文件相关推荐

  1. Linux下快速迁移海量文件的操作记录

    有这么一种迁移海量文件的运维场景:由于现有网站服务器配置不够,需要做网站迁移(就是迁移到另一台高配置服务器上跑着),站点目录下有海量的小文件,大概100G左右,图片文件居多.目测直接拷贝过去的话,要好 ...

  2. Linux下使用rsync最快速删除海量文件的方法

    遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用.这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长.所以必 ...

  3. Linux下使用rsync最快速删除海量文件的方法分享

    点评:昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用 这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太 ...

  4. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...

    假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大 硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未 ...

  5. linux快速删除海量文件

    首先创建一个临时目录: /rubbish rsync --delete-before -a -H -v --progress --stats /rubbish /111 /111为目的目录 选项说明: ...

  6. 更换电脑,文件数据如何快速迁移?

    最近小编收到很多私信,都想知道换新电脑了,怎么转移旧电脑上的文件数据?确实,现在很多人都依赖电脑,公司家里都要用,甚至家里还不止一台电脑,为了自己的需求也会更换主机或者更换电脑. 但是在更换电脑的时候 ...

  7. 基于sersync海量文件实时同步

    今天我们主要讲解海量文件实时同步,最近涉及到数百万图片数据迁移,为了使图片数据快速迁移,并保证数据数据的一致性,无缝切换.尝试了多种方案. 方案1:rsync+inotify同步,最先想到的是此方案, ...

  8. 关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究...

    背景介绍 随着业务的发展.需求的变化,促使我们追求使用不同类型的数据库,充分发挥其各自特性.如果决定采用新类型的数据库,就需要将既有的数据迁移到新的数据库中.在这类需求中,将SQL Server中的数 ...

  9. linux dd 截文件,Linux使用dd命令快速生成大文件(转)

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...

最新文章

  1. WEP保护帧移除工具airdecloak-ng
  2. 【机器视觉】 dev_disp_text算子
  3. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
  4. mysql 备份html数据_MySQL自动化生成HTML页面(导出数据)极限SQL编程-sql文件怎么打开...
  5. 连续反应matlab,MATLAB和Monte Carlo法在连续反应动力学中的应用.pdf
  6. oracle sql 查询优化器,基于ORACLE成本优化器的SQL查询优化分析与应用
  7. 真的没办法一心一意麽? php 文件操作
  8. 从资源管理器中,获取被选择的文件的路径(及文件夹)的API
  9. python数字图像处理(6):图像的批量处理
  10. 处理App状态改变的策略
  11. 提高上网速度的六种方法
  12. 罗马数字转换python_罗马数字转整数 python
  13. python 爬取网上数据Crawler data(1.漫画)
  14. 计算机cpu型号在哪看,cpu型号,教您电脑cpu型号怎么看
  15. 将计算机放置桌面右上角,如何给电脑桌面上添加我的电脑快捷方式
  16. 安卓ROOT全教程(测试机 红米Note7Pro)
  17. win10网上邻居无法显示计算机,win10网上邻居看不到别的共享电脑怎么办
  18. IPTV的开展在广电企业、电信运营商角度上的异同
  19. C# WinForm中Form的load和Shown事件
  20. libxml2对XML文件的创建、解析、查找、修改

热门文章

  1. Java使用RSA加密解密及签名校验
  2. Linux文件系统的目录结构详解
  3. Linux内核分析-week 1
  4. 文件目录在Visual C++ 2005中使用 GNU Scientific Library
  5. 解决windows 2003打了系统补丁后远程桌面不能用
  6. PhoneGap对比html5写android应用程序【android进化三十八】
  7. Java web(2012/2/23)
  8. android Launcher——ui框架
  9. docker之快速部署gogs git
  10. 2.python数据结构的性能分析