不能复制到Linux中_linux服务器之间复制文件

f9bfa179a830f823c4de919e3d1f10c6.png

前几天在linux服务器上部署项目时需要把程序从测试服务器上拷贝过来,以前处理类似问题的逻辑都是先从源服务器上把文件下载到我的电脑里,然后再从我的电脑里上传到目标服务器。由于这次的程序比较大(1G左右),按照之前的操作会比较耗时,有没有一个从A服务器直接复制文件到B服务器的方法?

我从网上零零散散找了一些资料,用linux的scp命令可以解决以上问题,这里做一个汇总。还是老规矩,本文先讲怎么操作,然后讲各项参数的意义,最后讲注意事项。总之,跟着做就对了,有疑问就带着问题往下做,如果看完后还有问题可以在留言区提问

开始操作之前你首先得有两台linux服务器,并且保证两台服务器之间网络互通,可以使用ping测试一下网络互通情况。如果网络互通,那么就可以愉快的开始了,先登录到一台服务器上,我们称之为本地服务器,另一台服务器称之为远程服务器(假设远程服务器ip为192.168.1.1,用户名为root)

在本地服务器的/home目录下创建local.txt文件,然后把local.txt复制到远程服务器的根目录下,依次执行下面3个命令

cd /hometouch local.txtscp /home/local.txt root@192.158.1.1:/local.txt

执行完后会提示你输入远程服务器的密码,如下,输入完后就复制成功了,快到远程服务器上的根目录下看一下是否有local.txt文件吧

17f44921c7d77733eb0c394e7164b160.png

现在我们要把刚才复制到远程服务器上的local.txt在复制回来,并重命名为local_copy.txt,执行如下命令

scp root@192.168.1.1:/local.txt /home/local_copy.txt

执行该命令后同样会提示你输入远程服务器的密码,输入完成后查看一下本地服务器的/home目录下是不是有一个local_copy.txt

命令详解

linux远程复制命令为scp,语法如下

// 从本地复制到远程scp [可选参数] local_file [remote_username@]remote_ip:remote_file// 从远程复制到本地scp [可选参数] [remote_username@]remote_ip:remote_file local_file

local_file表示本机文件,remote_file表示远程服务器文件

remote_username和remote_ip分别表示远程服务器ip和用户名

可选参数

-1:强制scp命令使用ssh1协议

-2:强制scp命令使用ssh2协议

-4:强制scp命令只使用IPv4寻址

-6:强制scp命令只使用IPv6寻址

-B:使用批处理模式(传输过程中不询问传输口令或短语)

-C:允许压缩(将-C标志传递给ssh,从而打开压缩功能)

-p:保留原文件的修改时间,访问时间和访问权限。

-q:静默模式,不显示传输进度条。

-r:递归复制整个目录,复制文件夹时必须带上此参数

-v:详细方式显示输出。

-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit:限定用户所能使用的带宽,以kb/s为单位。

-P port:大写的P, port是指定数据传输用到的端口号

-S program:指定加密传输时所使用的程序,此程序必须能够理解ssh1的选项。

注意事项

1. 两台服务器之间必须可以网络通信,否则不能完成复制。使用 ping 命令可以测试两台服务器是否互通

2. remote_username参数可选,不加这个参数默认使用的是root用户

3. 复制到目的地的同时可以重命名文件,如:scp /home/local.txt root@192.168.1.1:/home/remote.txt,将本地的local.txt文件复制到远程机并重命名为remote.txt

4. 复制文件夹时需要加上 -r 参数,否则会报错。如:scp -r /home/logs root@192.168.1.1:/home/logs

5. 指定的目的地的目录必须存在,否则会报错。如:scp -r /home/logs/catalina.out root@192.168.1.1:/usr/logs/catalina.out,如果/usr/logs目录不存在就会报错


微信搜索赫连小伍关注我的公众号,文章不定期推送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值