需求是这样的:将一个大概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. (一)es 概述与安装

    一.基本概念介绍 1. es 核心术语 核心概念 ES -> 数据库 索引index -> 表 文档 document -> 行(记录) 字段 fields -> 列 早期版本 ...

  2. 使用VisualStudioCode开发Vue

    前言 本文主要介绍在VisualStudioCode下开发Vue. Nodejs.Npm.Vue的项目搭建参考下面文章. 用后台开发的逻辑理念学习VUE 在Windows下学习Nodejs.Npm和V ...

  3. [洛谷日报#204] StackEdit——Markdown 编辑器的功能介绍

    本文同时发表于洛谷日报,您也可以通过洛谷博客进行查看. 1.介绍与开始使用 1.1 这是什么? StackEdit是基于PageDown.Stack Overflow和其他堆栈交换站点使用的Markd ...

  4. HTML常用的css属性(及其简写)

    这篇文章主要介绍几个常用css属性和简写 本文目录: 1.背景属性 2.边框属性 3.字体属性 4.外边距 5.填充 6.颜色 1.background[背景属性] background-color ...

  5. iOS能否自动扫描周边wifi信息并通过密码连接

    能否获取系统wifi列表信息 不能,只能获取用户当前连接的wifi信息 https://developer.apple.com/forums/thread/112177 https://develop ...

  6. python中的load、loads实现反序列化

    load与loads 简介: 在python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是string类型. 这样在我们传递参数的时候就会出现格式不 ...

  7. 《python编程:从入门到实践》课后习题及答案

    转载: <Python编程:从入门到实践>课后习题及答案-码农之家 (xz577.com) <Python编程:从入门到实践>课后习题及答案 - 信德维拉 - 博客园 (cnb ...

  8. 初学Python-day1 运算符和数据类型

  9. [no code][scrum meeting] Alpha 13

    项目 内容 会议时间 2020-04-21 会议主题 OCR技术对接会议 会议时长 45min 参会人员 全体成员 $( "#cnblogs_post_body" ).catalo ...

  10. 大闸蟹的 O O 战记

    一. 第四单元架构设计分析 第一次作业,UML类图 第一次作业的主要任务是完成对UML类图的解析并实现查询等操作,需要在课程组给定的框架中添加函数.对于UML类图,其存储是按照元素来存储的,其将所有的 ...