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安装的时候没发现需要安装其他依赖包所以还算是方便