需求是这样的:将一个大概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. PHP 流行的框架

    Aura Laravel Symphony Yii Zend php components Packagist 最好的组件: Awesome PHP https://www.yiiframework. ...

  2. python学习笔记(十三)-python对Excel进行读写修改操作

    日常工作中会遇到Excel的读写问题.我们可以使用xlwt 模块将数据写入Excel表格,使用xlrd 模块从Excel读取数据,使用xlutils模块和xlrd模块结合对Excel数据进行修改.下面 ...

  3. Centos7 安装 .Net Core2.2

    添加 rpm 源 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm 开始 ...

  4. 腾讯首个CNCF沙箱开源项目

    作者 SuperEdge开发者.腾讯云容器产品中心边缘计算团队.腾讯开源生态管理协会 SuperEdge 进入 CNCF 沙箱 2021 年 9 月 14 日,云原生分布式边缘容器系统 SuperEd ...

  5. TWAIN-v2.4-说明文档翻译(2)技术概览

    技术概览 Technical Overview TWAIN架构(TWAIN Architecture) 数据交互的实现在TWAIN中由三类软件元素共同工作完成:应用程序(the application ...

  6. python3 拼接字符串方法

    python3.x拼接字符串一般有以下几种方法: 1. 直接通过(+)操作符拼接 1 2 s = 'Hello'+' '+'World'+'!' print(s) 输出结果:Hello World! ...

  7. Linux系统安装MySql5.7并通过sql脚本导入数据

    为了下载到的MySQL版本和目标系统相互兼容,在开启之前,最好了解目标系统的相关信息. 查询系统版本: cat /etc/issue 查看系统位数 getconf LONG_BIT 选择MySQL 根 ...

  8. 从0到1使用Kubernetes系列(二):安装工具介绍

    该系列第一篇为:<从0到1使用Kubernetes系列--Kubernetes入门>.本文是Kubernetes系列的第二篇,将介绍使用Kubeadm+Ansible搭建Kubernete ...

  9. Get Mingw-w64 via MSYS2

    Get Mingw-w64 via MSYS2 Get the latest version of Mingw-w64 via MSYS2, which provides up-to-date nat ...

  10. XSS_Labs靶场通关

    XSS-labs靶场(1-20) 开始通关!   0x01 (直接漏洞注入) 反射型xss注入 1.遇到?name=text,尝试参数注入 注入语句: <script>alert('xss ...