Linux下远程cp命令scp


2014-2.19 PS1.在用此命令cpLinux与Linux之间的数据时发现有些服务器上默认没有安装scp但用yum -y install scp提示么有这样的包

后来发现原来scp工具的安装包名字是openssh-clients

yum -y install openssh-clients

用-v检查是否安装成:scp -v 会提示帮助参数OK成功

首先我们在日常维护Linux之间会互相传一些数据,本人菜鸟期间认为这个是一件很困难的事情,想到一些很繁琐的方法

1.搭建ftp samba 或者用windows下的工具。

来介绍下这些方法的缺点,1.ftp 和samba是很强大但需要安装和配置繁琐,影响我的工作目的更影响时间和经历。

2.是windows下的工具这个是方便了些,操作也很简单,但一般工具的工作原理是将cp的数据先提取到你的windows主机内存里然后再进行一次复制,而且当CP大数据的时候效率很不理想。

难道就没有一个简单而且效率的方法吗?答案是有的。因为小编一直相信Linux下的文本界面是无比强大的

那就是scp

首先我们大家可以在Linux下运行scp --help 或者man scp去查看下详细的命令格式和一些参数的应用,

但一般接触Linux一段时间的人会自动 参数就不用记的与cp的参数基本一致。与大多数命令的参数也是基本一致

比如 -r选项 就是cp这个目录下的所有文件

-f就是强制的意思

等等

比如我现在登陆到PC1的终端想将PC1的/opt 目录下所有文件目录CP到PC2下的/opt下我只要执行

scp -r /opt/ root@PC2:/opt/ ##回车后输入PC2的root密码就可以了

但随着而来的又一个问题 但我在cp数据较大的文件需要24个小时以上 我不得不让我的笔记本烧24小时?不

所以接着往下看

nohup命令。

nohup命令时一个可以在后台保持进程不被杀死的工具

命令格式是nohup Command &

比如 nohup cp -r /opt/a /home/ & ##&符号是后台运行的意思 nohup是保持进程不被杀死 两个结合起来可以实现后台运行 这时候你就可以exit

退出终端了。等明儿看的时候数据已经cp完了

但这个命令在于scp结合的时候有一个问题 那就是当scp运行后需要输入密码 但后面加&后就无法正确的执行了。

解决方法是让两台Linux服务器建立信任关系这样就不需要输入密码了 当然问题就迎刃而解了 但这样未必是一个麻烦的事情。要知道我们的目的是cp数据不是在做实验或者测试学习

来自:http://extjs2.iteye.com/blog/1852367

我们经常会从服务器A传文件到服务器B,  但有时候用PUTTY执行命令的时候, 文件传了一部分, PUTTY终端就关闭了, 这时候文件也没传完整。
 
这里有一个解决把办法,让SCP命令在后台执行。
用nohup命令
 
Shell代码  收藏代码
$nohup scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1  
 
这时候还不是在后台运行,你需要输入密码, 
接着按ctr+z去暂停命令,
然后用bg命令
 
Shell代码  收藏代码
bg  
 这个时候, 即使你关闭PUTTY, SCP还是在后台运行, 直到完成。

  

本人亲测实验

[root@180caldomain ~]# nohup scp -r /a/index.htm\?mirrors.163.com%2F.help%2FCentOS6-Base-163.repo root@192.168.64.30:/opt/ >nohup.out 2>&1
root@192.168.64.30's password: 
[root@180caldomain ~]# ssh 192.168.64.30
root@192.168.64.30's password: 
Last login: Tue Nov 19 03:25:02 2013 from 192.168.64.200
[root@AO180 ~]# cd /opt/
[root@AO180 opt]# ls
index.htm?mirrors.163.com%2F.help%2FCentOS6-Base-163.repo  rh    xwo
lost+found                                                 soft
[root@AO180 opt]# 

  

那还有没有跟好的办法可以替代呢?答案是Linux的文本界面是很强大的 那就是

screen 工具

但这个也有一个短板就是centos 系统默认是没有安装的不过可以使用yum来安装。

当然你也可以去安装盘或者网上下载到他的rpm包进行安装,本人yum安装的时候没发现需要安装其他依赖包所以还算是方便

优质内容筛选与推荐>>
1、div嵌套margin-top失效的解决方法
2、Python3 之 MySQL操作模块:pymsql和sqlachemy
3、自定义事件、属性、方法
4、秀一秀我们的招聘创意...
5、Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn