两台服务器间文件如何传输?对于小文件,可以先从Linux服务器传到window,再传到另一台服务器。对于大的文件,如测序数据、比对文件等。这样的方法显然太笨。

scp一个命令就能解决。

一、上传

常规操作

从当前服务器上传到另一个服务器。

# 文件
$ scp file yourname@192.168.0.101:your/path
# 目录
$ scp -r dir yourname@192.168.0.101:your/path

以上端口默认是22的,能满足我们大部分需求。然,当你在服务器上做过端口映射(或者外网连接地址),端口就不是22的情况时,需要指定目标端口号。

$ scp -P 10001 file  yourname@192.168.0.101:your/path

以上,回车后会提示你输入目标服务器的密码。如果没反应,八成是连接有问题。可先ping下两台服务器的网络,是否正常。

建议

虽然可传输文件夹(目录),但对于大文件建议还是压缩后再传,提高传送速度。大文件压缩工具推荐pigz(搭配tar使用),压缩速度很快,且压缩率不输于其他软件。

$ tar -cvf - test |pigz -k >test.tar.gz

另外,涉及到任何文件传送,注意有md5相匹配,养成良好习惯。

$ md5sum test.tar.gz >md5

后台运行

Linux间传输的另一个最大优点,就是可以将任务放后台运行,无需等待。

但是你如果直接在上面scp加上nohup scp... &是不起作用的。这里需要一点Linux的基础。

首先运行scp:

$ nohup scp file  yourname@192.168.0.101:your/path
# nohup可省略

输入密码后,输入ctrl+z挂起。

再输入bg使进程在后台运行。

$ bg
#或 %1,表示后台第一个工作号, %可忽略
$ bg %1

注意在这里虽然任务已在后台运行,但如果你此时关闭当前会话窗口或客户端,任务是不会继续执行的。这显然不是我们真正想要的,我有过教训。

如何让任务真正在后台运行,即关闭窗口后还能继续?

只需在上面一步基础上再加上disown -h将作业忽略HUP信号(从当前的shell中移除作业)。

# 查看任务
$ jobs
$ disown -h
#或
$ disown -h %1
# 若有多个任务,可选择
$ disown -h %2 # 查看任务运行状态和父进程号
$ ps -ef|grep scp
# 退出
$ exit

这时,即使你断开会话任务,任务仍然可在后台运行。

disown参数解析:

-h    标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号。
-a 移除所有的作业。
-r 移除运行的作业。

二、下载

从目标服务器下载文件到当前服务器。

$ scp yourname@192.168.0.101:/home/test.txt /your/path

和上传文件很相似,不赘述。

https://www.cnblogs.com/no7dw/archive/2012/07/07/2580307.html

https://www.cnblogs.com/jyzhao/p/6253728.html

https://www.jianshu.com/p/76221b8b1af8

https://blog.csdn.net/qq_29307291/article/details/72819802

http://c.biancheng.net/view/1079.html

如何使用scp在Linux服务器的后台传输文件?的更多相关文章

  1. SCP,scp linux2台机器之间如何传输文件

    关键词:scp 转自: http://blog.csdn.net/gatieme https://blog.csdn.net/gatieme/article/details/51673229 scp传 ...

  2. 在linux下一般用scp这个命令来通过ssh传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...

  3. 向linux服务器上传下载文件方式收集

    向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ...

  4. Linux下不借助工具实现远程linux服务器上传下载文件

    # Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...

  5. 使用scp命令,不同服务器之间拷备文件

    使用scp命令,不同服务器之间拷备文件 先将源服务器,目标服务器安装scp服务 yum -y install openssh-clients 命令格式 scp source dist usage: s ...

  6. SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件

    // SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = Resou ...

  7. 用scp这个命令来通过ssh传输文件

    小结: 1. upload files 到 ssh 服务器 localhost $ scp localfile root@172.20.34.**:~/remotepath 2. 从 ssh 服务器d ...

  8. 转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本

    试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的g ...

  9. 从Linux服务器下载上传文件

    首先要确定好哪两种的连接:Linux常用的有centors和unbantu两种版本,PC端Mac和Windows 如果在两个Linux之间传输,或Linux和Mac之间传输可以使用scp命令,类似于s ...

随机推荐

  1. CQL和SQL的CRUD操作比较

    数据进行CRUD操作时,CQL语句和SQL语句的异同之处. 1.建表 2.CRUD语句比较 3.总结 1.建表 在此之前先分别创建两张表,插入数据,用来测试然后进行比较 在SQL数据库里面创建表 在C ...

  2. LCP 07.传递消息

    题目 小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下: 有 n 名玩家,所有玩家编号分别为 0 - n-1,其中小朋友 A 的编号为 0 每个玩家都有固定的若干个可传信息的其他玩家(也可 ...

  3. beta事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 软件要解决的问题是是开发一个简易方便,为用户带来便捷且功能齐全的表情包管理小程序: 预期的典型用户 ...

  4. 21.6.21 test

    \(NOI\) 模拟赛 字符串滚出 \(OI\) 看到题目名称,\(T1\) 串,\(T2\) 两个串,\(T3\) K个串,我 \(\cdots\),血压已经上来了. \(T1\) 写了 \(O(n ...

  5. Netty:Netty的介绍以及它的核心组件(一)—— Channel

    1. Netty 介绍 Netty 是一个无阻塞的输入/输出(NIO)框架,它使开发低级网络服务器和客户端变得相对简单.Netty为需要在套接字级别上工作的开发人员提供了令人难以置信的强大功能,例如, ...

  6. RGB-YUV

    1,RGB 1.1 RGB说明 RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通 ...

  7. 第01课 OpenGL窗口(1)

    教程的这一节在2000年一月彻底重写了一遍.将会教您如何设置一个 OpenGL窗口.它可以只是一个窗口或是全屏幕的.可以任意 大小.任意色彩深度.此处的代码很稳定且很强大,您可以在您所有的OpenGL ...

  8. google-chrome 启动报错 nss_util.cc(627)] NSS_VersionCheck("3.26") failed. NSS >= 3.26 is required

    一.错误情况 报错如下: [0807/144244.712736:FATAL:nss_util.cc(627)] NSS_VersionCheck("3.26") failed. ...

  9. 简单理解函数声明(以signal函数为例)

    这两天遇到一些声明比较复杂的函数,比如signal函数,那我们先简单说说signal函数的用法:(参考<c陷阱与缺陷>) [signal:几乎所有c语言程序的实现过程中都要用到signal ...

  10. springcloud优雅停止上下线与熔断

    SpringCloud 服务优雅上下线 Spring Boot 框架使用"约定大于配置"的特性,优雅流畅的开发过程,应用部署启动方式也很优雅.但是我们通常使用的停止应用的方式是 k ...