Linux两台服务器之间如何复制文件及免密码登录
有时候搭建集群机器是,需要在多台机器中间相互拷贝文件,一种方式是同事sftp拷贝到本机,再分别拷贝到其他服务器上。这里介绍一种直接在两台服务器之间拷贝文件且去掉繁琐的登陆操作的方法。
两台服务器之间拷贝文件
采用linux命令scp可以在两台电脑之间复制文件,如有两台服务器192168129100/101,现在需要拷贝100 /etc/passwd文件到101服务器的/etc目录下,登陆100服务器,知道101的用户root的密码为123456
scp /etc/passwd root@192168129101:/etc/
第一次会提示授权操作,输入yes后再输入root用户的密码,拷贝完成。
服务器之间免密码登陆
现在每次拷贝文件的时候都需要输入密码非常麻烦,现在介绍一种采用公钥/私钥认证的方式去掉密码登陆
在100服务器上进入ssh目录,
cd ~/ssh
ssh-keygen -t rsa
scp id_rsapub root@192168129101:~/ssh
进入101服务器,将公钥导入到~/ssh/authorized_keys,
cd ~/ssh
cat ~/ssh/id_rsapub ~/ssh/authorized_keys
~/ssh权限设置为700
~/ssh/authorized_keys的权限设置为600
这是Linux的安全要求,如果权限不对,自动登录将不会生效
完毕之后,退出服务器的登录,再使用ssh登录,你就会发现服务器不会再向你询问密码了
用copy命令,
将远程主机的文件复制到自己的电脑:copy
\\ip地址\c$\文件名\c:\
当然也可以把本地文件复制到远程主机:
copy
c:\文件名\\ip地址\c$
如果是ftp主机比如5944,可以在网页上直接登陆,打开ie输入
ftp://ftp分配给你的ip地址
回车后要在对话框里输入ftp分配的用户和密码
如果登陆成功,可以把浏览器的页面框缩小后以拖拽的方式把ftp上的文件拖到本地桌面。
具体在cmd命令下的ftp命令实在太多,这里就不用说了。
scp从linux服务器拷贝文件到windows的机子上方法:
1首先,下载putty软件,并可以在目录中,找到pscpexe文件,我们可以通过这个软件实现Windows和linux之间拷贝文件。
2首先,将pscpexe的路径加入到系统环境变量Path中,这样我们就可以在Windows的命令行下使用pscp命令了。
3按下Windows键+R,输入cmd然后回车,既可进入命令行模式。
4此时使用pscp命令既可以拷贝文件到远端的Linux系统中,或者从远端的Linux系统中拷贝文件到当前路径,该命令使用方法类似于Linux下的scp命令。
5输入正确的密码,就可以完成拷贝了。
Linux下scp命令使用教程:
1
首先我们启动两台ubuntu系统的设备,并且确保两台设备都开启了ssh远程登录,且两台设备能互相通信。然后我们介绍第一条命令将本地的目录上传的远程服务器目录上。执行命令"scp -r /opt/test root@1921682105:/opt"。本条命令意思为将本地的目录/opt/test上传到远程1921682105的opt目录下。然后根据提示输入root的密码,等待即可上传完毕。
2接下来我们登录远程服务器进行查看验证,可以看到目录内的文件已经全部拷贝过来。
3下面我们介绍将本地的文件上传到远程服务器上。执行命令"scp /root/node-v421-linux-x64targz root@1921682105:/opt/test"。意思为将本地文件node-v421-linux-x64targz上传到服务器/opt/test目录下。
4下面我们再次验证是否真正的上传成功。登录远程服务器进行查看,可以看到已经拷贝成功。
5下面我们介绍如何将远程服务器的目录,拷贝到本地。执行命令"scp -r root@1921682105:/root/rules /opt"。意思为将远程服务器上/root/rules目录内的内容拷贝到本地的opt目录下。
6接下来还是对拷贝结果的验证,我们进入/opt目录下,可以看到rules目录以及目录下的文件都拷贝过来了。
7下面我们介绍如何将远程服务器上的文件拷贝的本地。我们执行命令"scp -P 22 root@1921682105:/root/filtersbpf /opt/"。意思为将远程服务器上/root目录下的filtersbpf文件拷贝到本地的opt目录下。
8下面还是验证是否拷贝过来,我们进入opt目录,可以查看到filtersbpf已经拷贝过来。
1从服务器复制文件到本地:(Linux服务器—> mac)
另起终端在本地上操作:
scp root@1921681100:/data/testtxt /home/myfile/
补充:多文件拷贝
scp root@1921681100:/data/\{test1txt,test2cpp,test3bin,test\} /home/myfile/
root@1921681100 root是目标服务器(有你需要拷贝文件的服务器)的用户名,1921681100是IP地址,后面紧跟的 “:” 不要忘记,/data/testtxt(多文件还有test1txt,test2cpp,test3bin,testa,testc等) 是目标服务器中你要拷贝文件的地址,接一个空格,后面的 /home/myfile/ 是本地接收文件的地址。
2从服务器复制文件夹到本地:
另起终端在本地上操作:
scp -r root@1921681100:/data/ /home/myfile/
只需在前面加 -r 即可,就可以拷贝整个文件夹。
3从本地复制文件到服务器:
scp /home/myfile/testtxt root@1921681100:/data/
补充:多文件拷贝
scp /home/myfile/test1txt test2cpp test3bin test root@1921681100:/data/
4从本地复制文件夹到服务器:
scp -r /home/myfile/ root@1921681100:/data/
0条评论