需求:  

  公司有3.4T多的小文件需要copy到公司内部的nas存储中,由于小文件太多,数据量太大,整盘copy时速度极慢;只能人工对3.4T多的数据分批次的导入,这对于搞计算机的来说是不能忍受的,于是产生了一个想法,把公司的nas存储和原始文件主机的盘都挂载到linux服务器上,系统为CentOS7,通过for循环遍历文件夹实现copy,理论存在,开始实施;

环境:

1、windows10电脑,上面有3.4T多的原始数据
2、公司内部的一套阿里nas存储
3、公司内部的CentOS系统的服务器

实施:

1、将存有原始数据的windows10文件夹共享,权限为完全控制

2、将windows10共享的文件夹挂载到CentOS主机上

vim /etc/fstab
//192.168.12.171/f /move-source cifs defaults,username=web1,password=123!@ 0 0

再执行mount -a命令,将其挂载
[root@movtile_com ~]# mount -a
[root@movtile_com ~]# df -h # 通过命令可以看出共享文件夹已经挂载
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 326M 7.5G 5% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 472G 20G 428G 5% /
/dev/sda1 5.0G 168M 4.9G 4% /boot
/dev/sr0 4.4G 4.4G 0 100% /run/media/k8s/CentOS 7 x86_64
//192.168.12.171/f 11T 3.4T 7.6T 31% /move-source

3、将公司的nas存储目标文件夹挂载到CentOS主机上

vim /etc/fstab
//192.168.8.10/elements /move cifs defaults,username=server1,password=123!@ 0 0
再执行mount -a命令,将其挂载
[root@movtile_com ~]# mount -a
[root@movtile_com ~]# df -h # 通过命令可以看出共享文件夹已经挂载
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 326M 7.5G 5% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 472G 20G 428G 5% /
/dev/sda1 5.0G 168M 4.9G 4% /boot
/dev/sr0 4.4G 4.4G 0 100% /run/media/k8s/CentOS 7 x86_64
//192.168.12.171/f 11T 3.4T 7.6T 31% /move-source # windows10 原始数据
//192.168.8.10/elements 240T 16T 225T 7% /move # 公司nas文件夹

现在可以看到windows10的3.4T多的共享文件夹和nas存储都挂载到了CentOS主机上;

4、开始copy  

  具体是这么做的,统计了下需要上传nas系统的文件夹共有300个之多;找了三台CentOS主机,通过上述方式将盘都挂载上;每台设备分配100个文件夹,再将每台设备的100个文件夹分成3份,这样每台设备上可以跑3个copy程序,3台设备9个copy程序同时开始工作;

CentOS服务器1执行的for循序
for i in `cat 42-1.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 42-2.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 42-3.txt`;do rsync -av $i /move/Work/010/;done
CentOS服务器2执行的for循环
for i in `cat 43-1.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 43-2.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 43-3.txt`;do rsync -av $i /move/Work/010/;done
CentOS服务器3执行的for循环
for i in `cat 44-1.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 44-2.txt`;do rsync -av $i /move/Work/010/;done
for i in `cat 44-3.txt`;do rsync -av $i /move/Work/010/;done 上面循环的txt文件里面存放的是分配好的需要copy的目标文件夹的名称;

  然后将循环挂后台就开始copy了;

  copy升级版本:可以先用split -l  20   A.txt  将目录平均分割通过多进程一块跑,速度更快了;每个分割的目录数量可以根据CPU的核心数确定,否则过多会导致服务器负载巨高;

#!/bin/bash

src_route=/move-source/data/A_ShotWork
dest_route=/move/A_ShotWork for i in `cat xaa`
do
(
rsync -av -P $src_route/$i $dest_route/ &>> $i.log;
if [ $? -eq 0 ];then
echo $i is copy Complete!!!
fi
) &
done
wait for i in `cat xab`
do
(
rsync -av -P $src_route/$i $dest_route/ &>> $i.log;
if [ $? -eq 0 ];then
echo $i is copy Complete!!!
fi
) &
done wait

Linux服务器挂载windows共享文件夹和nas存储的更多相关文章

  1. Linux 挂载Windows共享文件夹和NAS存储

    summary: [Linux 挂载共享存储] 概述 将Windows共享文件夹和NAS存储挂载至Linux. Linux系统环境:CentOS 挂载共享存储 查看外部主机共享了哪些目录 smbcli ...

  2. linux上挂载windows共享文件夹

    linux上挂载windows共享文件夹 1.共享windows目录 挂载之前得创建一个有password的用户(当前用户也能够),并将你要挂载的目录进行共享,并赋予读写权限 如图. watermar ...

  3. VMware,win7与linux centos6.4文件互传,linux下挂载windows共享文件夹,vmware tools安装方法

    本方法是以win7,VMware9.0.1 ,centos6.4为基础实验的. 对于linux的初级使用阶段,都会Windows中使用linux虚拟机VMWare或者其它的.在Windows与linu ...

  4. Linux开机挂载windows共享文件夹

    https://blog.csdn.net/zhaogang1993/article/details/79573271  (可行) 命令: mount -t cifs -o username=&quo ...

  5. 在Linux上挂载Windows共享文件夹,如何开机自动挂载(mount)?

    按照一般的思路,我们先将文件夹挂载上去,命令如下: mkdir /mnt/share_software mount //192.9.206.43/share_software /mnt/share_s ...

  6. Linux 挂载windows共享文件夹

    Linux 挂载windows共享文件夹 准备工具: 1.windows 共享出来文件夹. 2.Linux 安装cifs文件挂载属性 3.其他 windows ip: 192.168.27.99 Li ...

  7. Linux使用mount挂载Windows共享文件夹

    https://blog.csdn.net/tojohnonly/article/details/71374984 https://github.com/tojohnonly 现实中会有这样的场景 , ...

  8. samba 挂载windows共享文件夹

    先转载一片文章     centOS下yum安装配置samba 地址 http://blog.csdn.net/linglongwunv/article/details/5212875 遇到问题1 # ...

  9. 烂泥:CentOS6.5挂载windows共享文件夹

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 由于工作需要,需要把本机的文件夹共享出去,然后让CentOS服务器临时使用下. 服务器使用的是CentOS系统,而本机使用的win7系统.考虑到是临时使 ...

随机推荐

  1. 华为OPS,自定义命令,动态执行命令

     OPS     开放可编程系统OPS(Open Programmability System)是指设备通过提供统一的应用程序接口API(Application Programming Interfa ...

  2. MinIO学习

    1.Minio及背景 Minio是一个开源的分布式文件存储系统,它基于 Golang 编写,虽然轻量,却拥有着不错的高性能,可以将图片.视频.音乐.pdf这些文件存储到多个主机,可以存储到多个Linu ...

  3. 『忘了再学』Shell基础 — 16、位置参数变量

    目录 1.位置参数变量$n 2.位置参数变量$*和$@ 3.位置参数变量$# 位置參数变量的作用主要用于脚本的传参. 位置參数变量的名称和作用都是确定不能改变的,但是该变量的内容是可以更改的,也就是变 ...

  4. ES6 Promise 的链式调用

    1.什么是Promise Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息. 2.对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种状态: pending: 初始 ...

  5. 《Effective C++》阅读总结(二):类的构造、析构和赋值

    今天是周六早上,但很不幸待会儿还是要去公司,本月kpi还剩一些工作要做,这个月计划的Effective C++学习,也基本完成了,最后一章节模板相关那部分还看不太懂,就大概过了一遍.现在是收尾总结阶段 ...

  6. thusc2022游记

    DAY -1: 刷往年相关的题 DAY 0: 刷会儿题了,搞电脑,下obs.不过,发现电脑出了很多问题. obs没有录频效果,因为卡,杀毒软件把vc++全都删了.因此无dll文件错误,搞了一晚上都没搞 ...

  7. 论文阅读 Dynamic Network Embedding by Modeling Triadic Closure Process

    3 Dynamic Network Embedding by Modeling Triadic Closure Process link:https://scholar.google.com.sg/s ...

  8. 深度学习与CV教程(6) | 神经网络训练技巧 (上)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  9. opencv c++安装踩坑记录 file cannot create directory: /usr/local/include/opencv2. Maybe need administrative privileges

    前言 最近深度学习Ultra-Fast-Lane-Detection/INSTALL.md at master · cfzd/Ultra-Fast-Lane-Detection (github.com ...

  10. ROS基本程序实现

    0.前言 现在介绍ROS基本程序实现的教程有很多,步骤无非就是建工作空间,编译,创建功能包,创建文件和修改CMakeList,之后再编译.运行程序这几步.但是这些教程中很多在文件夹切换的很混乱,导致会 ...