split,cdn,shell脚本,tmux,记一次往国外服务器传大文件的经历
需求是这样的:将一个大概680M的Matlab数据文件传到国外某所大学的服务器上,服务器需要连接VPN才能访问,由于数据文件太大,而且如果我直接
ssh
连过去或者用ftp
传输,那么中间很可能中断。
ps:原来的时间大概17个小时左右!天哪,不要太惊讶,这是真的!
我当然没有直接的解决方法啊…请教王博学长,经过王博学长的指点迷津,一个基本可行的方案就这么出来了:
文件 -> CDN ->国外服务器
用cdn 的话,我只需要将文件先上传到CDN,然后只要节点同步之后,文件很有可能在国外的服务器上,这时候国外的大学访问国外的服务器速度当然是可观的了,好,这就开始干。
中国CDN技术哪家强。只要有“云”的好像都提供。我直接用了王博学长的七牛云,然后开心的准备上传文件,可是,谁知:
这就比较尴尬了,那我能不能将文件分割开来上传呢?
一 : split
对,没错,Linux下的split命令就能解决这个问题:
split 详细用法 : http://snailwarrior.blog.51cto.com/680306/140531
我将文件分成了50M为一份,然后扔到了七牛云上。
二:cdn
内容分发网络,我主要说说我目前觉得它技术上的难点:
1:如何同步节点的数据,也就是数据的一致性。
2:如何判断数据的改变和更新的策略。
三:shell 脚本
在下载文件的时候,我需要将分割的文件一个个下载下来,好麻烦,但是split分割之后的文件是有后缀规律的,最后简单的shell脚本解决了这个问题:
#!/bin/bash
for num in a b c d e f g h i j k l m n
do
wget http://xxx.xxx.cn/dat_a$num
done
四:tmux
虽然现在下载任务有脚本执行了,但是我还是无法保证网络的稳定(即putty
不会退出),如果putty被退出,那下载任务也退出了,因为它是putty
这个进程fork
出来的子进程在执行,其实tumx
或者screen
完美的解决了这个问题,我这里只说tmux
,网上资料已经非常多了,我把自己找的好的两篇分享出来。
呼~学到不少东西,尤其是tmux,现在觉得这个好爽。快来试试吧。
split,cdn,shell脚本,tmux,记一次往国外服务器传大文件的经历的更多相关文章
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...
- 将shell脚本的执行过程和执行结果导入到log文件中
[root@localhost scripts]# vim ping.sh #!/bin/bash set -x ##分步执行 exec &> /tmp/log.txt ##脚本执行的过 ...
- Shell脚本逐行读取文本内容并拆分,根据条件筛选文件
时间:2018-11-13 整理:byzqy 需求: 最近帮朋友写了一段脚本,他的需求是根据一份产品清单,去服务器上捞取对应产品编号的测试Log,数量大概有9000~10000条左右.文本内容大致如下 ...
- shell脚本选择LOG里面特定的行,生成新文件并rsync上传
rsync.sh #!/bin/bash tool_path=$(cd `dirname $`; pwd) eval `cat ${tool_path}/conf.properties` rsync_ ...
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- 常用shell脚本
[脚本1]打印形状打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n ...
- 【转】干货分享-100个shell脚本
本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please i ...
- shell脚本一
在一些复杂的Linux维护工作中,大量重复的输入和交互操作不但费时费力,容易出错.这时候就需要用到脚本. 编写脚本的好处: 批量的处理,自动化的完成维护,减轻管理员的负担. linux的shell脚 ...
随机推荐
- Java基础系列(20)- while循环
循环结构 while循环 do-循环 for循环 在java5中引入了一种主要用于数组的增强型for循环 while循环 while是最基本的循环,它的结构为 while(布尔表达式){ //循环内容 ...
- javascript 享元模式 flyweight
* 适应条件 ** 一个程序中使用了大量的相似对象 造成大的内存开销 ** 对象的大多数状态都可以变为外部状态 ** 剥离出对象的外部状态之后, 可以使用相对较少的共享对象取代大量对象 * 上传文件的 ...
- 接口管理工具swagger
swagger,一款致力于解决接口规范化.标准化.文档化的开源库,一款真正的开发神器. swagger三大部分 Editor https://swagger.io/tools/swagger-edit ...
- P5404-[CTS2019]重复【KMP,dp】
正题 题目链接:https://www.luogu.com.cn/problem/P5404 题目大意 给出一个字符串\(S\),然后求有多少个长度为\(m\)的串\(T\)满足.无限多个串\(T\) ...
- Loj#6053-简单的函数【Min25筛】
正题 题目链接:https://loj.ac/p/6053 题目大意 定义一个积性函数\(f(p^c)=p\ xor\ c\),求\(\sum_{i=1}^nf(i)\) 解题思路 异或这个东西不太好 ...
- Python下载课件
from urllib.request import urlretrieve # #下载网络文件到本地 import os os.chdir("C:/Users/RankFan/Deskto ...
- AOJ/树与二叉搜索树习题集
ALDS1_7_A-RootedTree. Description: A graph G = (V, E) is a data structure where V is a finite set of ...
- amber模拟kcl水溶液
最近刚开始学习amber软件,看网上的教程勉强知道怎么操作这个amber了.就暂时跑了个分子动力学,其他的啥也没处理.先把我的操作过程记录下来吧,免得日后忘记. 一.构建kcl.pdb结构 利用Gau ...
- iOS实现XMPP通讯(二)XMPP编程
项目概述 这是一个可以登录jabber账号,获取好友列表,并且能与好友进行聊天的项目. 使用的是第三方库XMPPFramework框架来实现XMPP通讯. 项目地址:XMPP-Project 项目准备 ...
- Android系统编程入门系列之应用间数据共享ContentProvider
内容提供者ContentProvider与前文的界面Activity.服务Service.广播接收者BroadcastReveiver,并列称为Android的四大组件,均是需要自定义子类继承上述组件 ...