需求是这样的:将一个大概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入门介绍
进阶篇:tmux技巧和调整

呼~学到不少东西,尤其是tmux,现在觉得这个好爽。快来试试吧。

split,cdn,shell脚本,tmux,记一次往国外服务器传大文件的经历的更多相关文章

  1. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  2. Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

    本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...

  3. 将shell脚本的执行过程和执行结果导入到log文件中

    [root@localhost scripts]# vim ping.sh #!/bin/bash set -x ##分步执行 exec &> /tmp/log.txt ##脚本执行的过 ...

  4. Shell脚本逐行读取文本内容并拆分,根据条件筛选文件

    时间:2018-11-13 整理:byzqy 需求: 最近帮朋友写了一段脚本,他的需求是根据一份产品清单,去服务器上捞取对应产品编号的测试Log,数量大概有9000~10000条左右.文本内容大致如下 ...

  5. shell脚本选择LOG里面特定的行,生成新文件并rsync上传

    rsync.sh #!/bin/bash tool_path=$(cd `dirname $`; pwd) eval `cat ${tool_path}/conf.properties` rsync_ ...

  6. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  7. 常用shell脚本

    [脚本1]打印形状打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n ...

  8. 【转】干货分享-100个shell脚本

    本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please i ...

  9. shell脚本一

    在一些复杂的Linux维护工作中,大量重复的输入和交互操作不但费时费力,容易出错.这时候就需要用到脚本. 编写脚本的好处:  批量的处理,自动化的完成维护,减轻管理员的负担. linux的shell脚 ...

随机推荐

  1. Shell系列(39) - dirname

    dirname作用 dirname实际工作中常常是跟$0一起使用 用于获取当前运行脚本的绝对路径 这个命令要放在shell脚本中使用,在命令行使用意义不大 [yutao@master01 ~]$ di ...

  2. Hadoop的高可用搭建

    在已经安装完hadoop单机和zookeeper前提下 1.免密钥 ssh-keygen -t rsa 分发秘钥 ssh-copy-id -i master ssh-copy-id -i node1 ...

  3. axios的简单的使用

    Axios 是什么? Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中. 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中).在服务端 ...

  4. HttpRunner3.X - 全面讲解如何落地项目实战

    一.前言 接触httprunner框架有一段时间了,也一直探索如何更好的落地到项目上,本篇主要讲述如何应用到实际的项目中,达到提升测试效率的目的. 1.项目难题 这个月开始忙起来了,接了个大项目,苦不 ...

  5. 关于zimbra的复现以及突破

    Zimbra未登录RCE漏洞利用 首先我是根据这个PDF进行复现的,但是复现过程出现很多问题 首先使用这个XXE读取文件 <!DOCTYPE xxe [ <!ELEMENT name AN ...

  6. Django整理(一) - 项目和应用创建及运行

    一.项目组织结构     · 一个Project包含有多个App     · 一个App就是一个Python包,就代表一个功能模块,比如: 用户模块,商品模块等 .各个功能模块间可以保持相对的独立 . ...

  7. transformers---BERT

    transformers---BERT BERT模型主要包括两个部分,encoder和decoder,encoder可以理解为一个加强版的word2vec模型,以下是对于encoder部分的内容 预训 ...

  8. Java语言程序设计与数据结构(基础篇)第七章答案

    答案为本人求解,如有错误,还望海涵.如有雷同,纯属巧合. 7.1 import java.util.Scanner; public class Main { public static void ma ...

  9. YouTube爬虫下载

    最近在想用爬虫写youtube网站下载学习视频,找了好多资料也没有有个有用的. 真不容易找到几行代码,代码实现很简单,基于youtube_dl 来之不易,仅参考 from __future__ imp ...

  10. Windows用cmd编译运行C程序

    在Windows环境下用命令行编译运行程序 浙江大学-C语言程序设计进阶 配置gcc 准备一个Dev-cpp 找到gcc.exe所在目录 Dev-Cpp\MinGW64\bin 地址栏右键将地址复制为 ...