Linux scp命令用法及实例分享

 更新时间:2017年03月10日 08:45:56   投稿:hebedich  
Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。下面我们来详细看下scp命令的用法以及实例

Linux下scp的用法

scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。

有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。

不同的Linux之间copy文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。

第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

    scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。

    如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。

scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

一、将本机文件复制到远程服务器上

#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid

/home/administrator/ 本地文件的绝对路径

news.txt 要复制到服务器上的本地文件

root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)

192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)

/etc/squid 将本地文件复制到位于远程服务器上的路径

如图通过root用户登录远程服务器,输入yes表示同意建立ssh连接

按提示输入root用户的密码

如图所示建立连接后开始传输文件,显示百分比、实际时间和传送速度等信息

二、将远程服务器上的文件复制到本机

#scp remote@www.abc.com:/usr/local/sin.sh /home/administrator

remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)

www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)

/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件

/home/administrator 将远程文件复制到本地的绝对路径

注意两点:

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

下面我们来看几个实例的用法

scp 命令

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
       scp [可选参数] file_source file_target

从 本地 复制到 远程

* 复制文件:
        * 命令格式:
                scp local_file remote_username@remote_ip:remote_folder
                或者
                scp local_file remote_username@remote_ip:remote_file
                或者
                scp local_file remote_ip:remote_folder
                或者
                scp local_file remote_ip:remote_file

                第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
                第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
        * 例子: 

        scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music 
        scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3 
        scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music 
        scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:
        * 命令格式:
                scp -r local_folder remote_username@remote_ip:remote_folder
                或者
                scp -r local_folder remote_ip:remote_folder

                第1个指定了用户名,命令执行后需要再输入密码;
                第2个没有指定用户名,命令执行后需要输入用户名和密码;
        * 例子: 

        scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 
        scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

                上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

从 远程 复制到 本地

从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如: 

    scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3 
    scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

 注意两点:

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

相关文章

  • linux vi命令知识点用法总结

    linux vi命令知识点用法总结

    在本篇文章里小编给大家整理的是关于linux vi命令的相关知识点内容,有需要的朋友们参考学习下。
    2019-10-10
  • Ubuntu18 给terminal改个漂亮的命令行提示符的方法

    Ubuntu18 给terminal改个漂亮的命令行提示符的方法

    这篇文章主要介绍了Ubuntu18 给terminal改个漂亮的命令行提示符的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • centos7 mariadb主从复制配置搭建详解步骤

    centos7 mariadb主从复制配置搭建详解步骤

    本篇文章主要介绍了centos7 mariadb主从复制配置搭建详解步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 在Centos部署nodejs的步骤

    在Centos部署nodejs的步骤

    本篇文章主要介绍了在Centos部署nodejs的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Linux目录与文件操作方式

    Linux目录与文件操作方式

    本文详细介绍了Linux系统的目录结构、常用的文件操作命令、文本编辑器vi的使用技巧以及文件压缩和解压缩命令。内容涵盖了如cat、grep、vi、gzip等命令的具体用法,适合Linux用户和开发者参考学习
    2024-09-09
  • linux系统sudo命令详解

    linux系统sudo命令详解

    Sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务
    2014-03-03
  • Linux实现限制远程登录尝试密码次数及锁定时间

    Linux实现限制远程登录尝试密码次数及锁定时间

    在CentOS中,pam_tally2.so模块可以用来限制用户登录失败的次数,并在达到设定的阈值时锁定用户账户,配置文件需正确修改,包括在/etc/pam.d/login和/etc/pam.d/sshd中增加相应配置,此设置可以有效防止未授权的登录尝试
    2024-10-10
  • CentOS 6.5 环境实现本地局域网搭建YUM的方法【基于FTP】

    CentOS 6.5 环境实现本地局域网搭建YUM的方法【基于FTP】

    这篇文章主要介绍了CentOS 6.5 环境实现本地局域网搭建YUM的方法,结合实例形式分析了CentOS基于FTP本地局域网搭建YUM的具体步骤、相关命令与操作技巧,需要的朋友可以参考下
    2018-04-04
  • linux zip/unzip命令详解

    linux zip/unzip命令详解

    本篇文章主要介绍了linux zip/unzip命令详解,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Windows和Linux实现远程桌面连接

    Windows和Linux实现远程桌面连接

    这篇文章主要介绍了Windows和Linux实现远程桌面连接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论