如何把文件复制在linux服务器上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把文件复制在linux服务器上?相关的知识,希望对你有一定的参考价值。

参考技术A 不同的linux之间copy文件常用有3种方法,具体如下:
第一种是在其中一台linux安装ftp
server,这样可以在另外一台使用ftp的client程序来进行copy。
第二种方法就是采用samba服务,类似windows文件copy的方式来操作,比较简洁方便
第三种就是利用scp命令来进行文件复制。
scp是有security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
scp
/home/1.gif
root@172.19.2.75:/home/root
然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始cp和ungzip了
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单:
scp
root@172.19.2.75:/home/abc.gif
/home/root
复制文件夹的格式是
scp
-r
root@192.168.1.1:/home/
/本地目录

我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压

这100台服务器ip1~100,文件包都是tar,用shell脚本实现

设置无密码传输:

1.在你这台主机上生成公钥

ssh-keygen -t rsa

一直回车

2.复制生成的公钥到所有服务器

即文件~/.ssh/id_rsa.pub

3.传输:

#!/bin/sh
for((i=1;i<101;i++))
do
scp file.tar root@$ip$i:/tmp
echo file.tar " is copied"
done

追问

复制生成的公钥到所有服务器时也要输入密码,那就要输入100次啊,有没有不用输密码,一个脚本就可以完成向这100台服务器发送文件包,还有怎么把复制过去的文件包解压

追答

第一次近建立连接恐怕就是如此麻烦,也许你可以试试命令
echo passwd | scp -r user@ip:/path
把复制过去的文件解压没搞过,远程解压不知道怎么搞

参考技术A

先设置ssh无密码登陆,然后:

#!/bin/sh
for i in `seq 1 100`
do
scp file.tar uaer@ip$i:/path/to/save
done

追问

你这个脚本我也知道,关键是scp怎么无密码传输,还有后面解压文件包,你只写了一部分

追答

配置ssh信任,像楼上说的那样。至于将公钥拷贝到这么多台主机上面,貌似有一个叫expect的软件可以,你百度一下。

 

解压就简单了,脚本中scp命令后面加一条:

ssh host tar xf /path/to/file.tar

追问

看来只能这样了,你的答案还可以

本回答被提问者采纳

以上是关于如何把文件复制在linux服务器上?的主要内容,如果未能解决你的问题,请参考以下文章

linux如何将文件上传到多台服务器上

我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压

如何把文件传到linux服务器上

linux如何把上一次命令输出的结果复制下来??因为一屏显示不完,有些都看不见了

如何把一个服务器上的文件,拷贝到另一个服务器上

如何远程复制另一台Linux服务器