linux命令scp命令

 scp即secure copy,安全拷贝的意思,使用方法与cp命令是差不多的,区别在于cp只能在本机上挪来挪去,而scp是用来跨机器拷贝的。

scp功能:跨机器拷贝文件或目录

延伸理解:既然说是跨机器拷贝文件或者目录,自然是可以上传也可以下载。

scp格式:上传:scp [参数]   被上传的文件或目录       远程机器的文件或目录(remote_username@remote_ip:remote_folder/remote_file)  

                下载:scp [参数]   远程机器的文件或目录(remote_username@remote_ip:remote_folder/remote_file)   被上传的文件或目录

为什么要使用scp命令,什么时候才会用到scp命令呢?

        有的朋友可能会有疑问,我不是已经与filezilla、winscp客户端软件吗,为什么还需要使用scp命令来在机器上拷贝文件呢?原因自然是有的,我的理解是这样的:

  1. 如果使用那些可视化的客户端软件在两台linux机器上进行文件的传输,必然还要经过windows的中转,过程相比直接使用命令的话还是相当繁琐。

  2. 如果我们需要在shell脚本中动态的从一个机器上拷贝或者上传文件,就必须使用scp或者其他命令来实现了

        好的,知道了为什么要使用,下面举例说明,为了方便,现在假使有两台机器,ip分别是10.139.57.168(以下简称168)、10.253.3.34(以下简称34),我们来看例子:

        例一:把168机器上的"/alidata1/admin/WebTest/zhao/db.tar.gz"文件上传到34的“/biproject/task_file/zhao”目录下,我们需要在168机器上执行scp上传命令:

-bash-4.2$ ls
db.tar.gz  testdir
-bash-4.2$ scp db.tar.gz data_webApp@10.253.3.34:/biproject/task_file/zhao
data_webApp@10.253.3.34's password: 
db.tar.gz                                                                                                                                                    100%   31     0.0KB/s   00:00    
-bash-4.2$

赶紧跑到34上看一下,是否上传成功了呢?

[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$ ls
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$ ls
db.tar.gz
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$

好,上传文件的功能完美解决。

        例二:把168机器上的"/alidata1/admin/WebTest/zhao/testdir"目录上传到34的“/biproject/task_file/zhao”目录下,我们需要在168机器上执行scp上传命令:

-bash-4.2$ ls
db.tar.gz  testdir
-bash-4.2$ scp -r testdir data_webApp@10.253.3.34:/biproject/task_file/zhao
data_webApp@10.253.3.34's password: 
redis.conf                                                                                                                                                   100%    0     0.0KB/s   00:00    
http.conf                                                                                                                                                    100%    0     0.0KB/s   00:00    
-bash-4.2$

再到目标机器34上去瞅瞅呗:

[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$ ls
db.tar.gz
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$ ls
db.tar.gz  testdir
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 zhao]$ cd testdir/
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 testdir]$ ls
http.conf  redis.conf
[data_webApp@GYB-T-XXX-ZATECH-DATABUSI-01 testdir]$

可以看到当在168上执行完了上传后再在34上ls的时候,testdir目录已经被上传过来了。

注意:scp的参数有很多,但是最常用的就是-r,-r参数是recursion(递归)的缩写,在scp操作对象时目录的时候,需要加上-r参数。

例三、通过-P指定远程机器端口

scp -r -P 9060 installs root@192.168.23.3:/root/

接下来就是如何使用scp命令来从远程机器上下载文件到本机了,我们看scp的命令格式:

scp格式:上传:scp [参数]   被上传的文件或目录       远程机器的文件或目录(remote_username@remote_ip:remote_folder/remote_file)  

                下载:scp [参数]   远程机器的文件或目录(remote_username@remote_ip:remote_folder/remote_file)   被上传的文件或目录

发现只是上次和下载的区别只是把后边两个参数的位置交换了一下,把远程机器写在后边就是上传,远程机器下载前边就是下载了,上边我举例说明了上传,下载和它仅仅这一点区别,我就不需要再演示一遍了吧,比着葫芦画瓢的事情,如果你连这也不会,还是找个没人的地方滴几滴痛泪吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值