WVL脱机(无人值守)向ntfs usb移动硬盘拷入数据
背景:想从nas里导出一批200G下载完的文件到移动硬盘,可能你会说为什么不用千兆LAN呢?速度60M/s更快啊可是很不巧的是移动硬盘是usb2.0接口的。网线坏了,只有150M速率的802.11n wifi。眼看着7M/s的速度距离完成所有还有8个小时…各种蛋疼。更惨的是我用的是笔记本,没带电源。电力只能维持多3小时了….
整理搜索了一下资料,成功实现吧移动硬盘直接挂到nas上让它自己拷数据,我明天再去收割…
适用场合:
1. 没有千兆LAN
2. 不想长期开着电脑
*以下方案在1.64官方固件下测试通过
实现
1. 前提:wvl必须已root 而且能ssh连上, 已装 ipkg
2. ssh连上,执行以下命令 忽略提示报警
~#ipkg install ntfs-3g
3.接上移动硬盘,这时nas会自动加载,且function灯亮蓝色。(这里有个奇怪的现象,好像nas的系统在检测到usb磁盘的时候会重启很多服务,包括ssh也会断开)稍等约1分钟,重连ssh。
4.这时候可以执行 df -h 看到已经挂载了usb磁盘 /dev/usbdisk1_1 / 在 /mnt/usbdisk1/
5. 但是这个盘是只读的,如果你尝试在 /mnt/usbdisk1/ 里写入任何文件(cp)或创建文件夹(mkdir nastest),都会告诉你没有权限。没关系,我们把自动挂载的方式换成刚安装的ntfs-3g
~#umount /dev/usbdisk1_1 /mnt/usbdisk1
~#ntfs-3g /dev/usbdisk1_1 /mnt/usbdisk1
第一行是解除挂载,第二行是用ntfs-3g重新挂载。之后再试试 mkdir nastest,然后list –l。文件夹nastest创建成功了。
6. 接下来要怎样脱机拷贝文件呢,就是说电脑断开ssh连接后,nas依然会执行把内容复制到移动硬盘直到完成。
假定我们要把 /mnt/array1/download/done/ 这个文件夹的内容统统复制到刚才移动硬盘创建的 /mnt/usbdisk1/nastest/ 里?指令只有一条
~#nohup cp –R /mnt/array1/download/done/ /mnt/usbdisk1/nastest/ &
好像有点复杂,我们拆解出来理解就不难了
nohup 把后面的命令挂载去给nas自己运行,不依赖于ssh的连接
cp 复制文件,这个不用多解释了
-R cp的参数,复制目录用
& 命令行末尾的&很重要不要遗漏,表示提交后命令在后台执行,不会占用着前端进程。
运行后看到移动硬盘的数据灯开始一闪一闪写入数据,这个时候可以断开ssh关电脑静待nas把传输完成(断开ssh后硬盘灯还在闪,说明ok了,nas有在好好努力地工作着)。
回顾一下以后再需要脱机拷贝数据的话应该执行哪些命令(接上硬盘)
~#umount /dev/usbdisk1_1 /mnt/usbdisk1
~#ntfs-3g /dev/usbdisk1_1 /mnt/usbdisk1
~#nohup cp –R /mnt/array1/download/done/ /mnt/usbdisk1/ &
补充:
1. ntfs-3g 的传输效率其实也一般只有12M/s 左右,而且吃nas的cpu资源比较高。不过无所谓了,脱机无人值守时间耗得起。毕竟linux不擅长操控ntfs。
2. 如果移动硬盘不止分了一个区的,那么如上图例里,我的移动硬盘有三个分区,我就是挂载了第三个分区 /dev/usbdisk1_3 到 /mnt/usbhdd 。挂到不同的地方,更省事了不必umount 原来的第一分区
部分带贴图见我的博客
http://snmoney.blog.163.com/blog/static/440058201332113444453/ 好东西,不知道在WEB界面里面能不能识别到
补充,安全地卸载移动硬盘
建议先执行
killall ntfs-3g 这样用ntfs-3g挂载的分区就会关掉
如果用 umount 的话会提示磁盘busy的(就是给ntfs-3g占用着啊)
好东西顶一个 可以省掉开电脑了。但是小白一个再请问下:倒过来,从移动硬盘向WVL拷贝文件是否可以呢?谢谢。 tyoukou 发表于 2013-4-3 13:47 static/image/common/back.gif
可以省掉开电脑了。但是小白一个再请问下:倒过来,从移动硬盘向WVL拷贝文件是否可以呢?谢谢。 ...
从u盘拷入nas简单多了,直接运行cp就可以了。不用ntfs-3g 我觉得楼主在copy的时候可以试试用screen代替nohup.rsync代替cp. 好处是可以随时监控进度.
ipkg install screen.
先运行screen, 然后执行 "rsync -av --progress源目录 目标目录".然后直接断开。
随时登录用 screen -x 就能恢复运行的terminal.
感谢楼主分享!!! 不错不错,学习了 真的非常不错,非常感谢! 感谢楼主分享 感谢楼主分享 这个一定要顶好东西啊谢谢楼主 路过,学习了 学习、学习 真复杂@@@@@@@ 高手。学习了。好教程
页:
[1]