189 8069 5689

Linux命令中scp的简单介绍

linux命令中的cp和scp命令的区别?

一个是本地 , 一个是远程。

成都创新互联云计算的互联网服务提供商,拥有超过13年的服务器租用、成都服务器托管、云服务器、网页空间、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、网页空间、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

cp 是普通的文件复制scp 是通过ssh 本机和其他电脑上的复制。

scp是secure copy,也是一个复制命令,是与ssh有关的。

scp user@ip:/dir/file file

或者:scp file user@ip:/dir/file

要输入user在远端用户的密码。

cp ,使用权限:所有使用者

使用方式:

cp [options] source dest

cp [options] source... directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

关于CP的具体使用办法:

命令基本格式: 

cp [OPTIONS] SOURCE DEST --- 从源路径copy文件到目的路径 

cp [OPTIONS] SOURCE... DIRECTORY --- 将多个源文件copy到指定的目录(多个源文件用空格分隔)

OPTIONS:

-a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归copy; 

-r 表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地; 

-f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;

关于SCP的具体使用办法:

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

scp命令详解

转自:

先说下常用的情况:

两台机器IP分别为:A.104.238.161.75,B.43.224.34.73。

在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r root@43.224.34.73:/home/lk /root。

具体过程为:

[root@XX ~]#scp-r root@43.224.34.73:/home/lk /root

root@43.224.34.73's password: k2.sql100%00.0KB/s00:00   

k.zip100%1760.2KB/s00:00   

.bash_history                                              100%320.0KB/s00:00   

.bash_logout                                              100%180.0KB/s00:00   

.bashrc                                                    100%2310.2KB/s00:00   

k3.sql                                                    100%00.0KB/s00:00   

.bash_profile                                              100%1930.2KB/s00:00   

[root@XX ~]#ls

在A服务器上将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下,命令为:scp -r /root/lk root@43.224.34.73:/home/lk/cpfile。

具体过称为:

[root@XX lk]#scp-r /root/lk root@43.224.34.73:/home/lk/cpfile

root@43.224.34.73's password: k2.sql100%00.0KB/s00:00   

k3.sql                                                    100%00.0KB/s00:00   

.bash_profile                                              100%1930.2KB/s00:00   

.bash_logout                                              100%180.0KB/s00:00   

.bash_history                                              100%320.0KB/s00:00   

k.zip100%1760.2KB/s00:00   

.bashrc                                                    100%2310.2KB/s00:00   

[root@XX lk]#

scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了 ssh免密码登录 ,那在使用scp的时候密码都不用输入。

命令详解:

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

1.命令格式:

scp [参数] [原路径] [目标路径]

2.命令功能:

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:

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

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

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

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

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

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

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

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

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

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

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

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

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

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

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

4.使用实例:

scp命令的实际应用概述:  

从本地服务器复制到远程服务器: 

(1) 复制文件:  

命令格式:  

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个指定了文件名   

(2) 复制目录:  

命令格式:  

scp -r local_folder remote_username@remote_ip:remote_folder  

或者  

scp -r local_folder remote_ip:remote_folder  

第1个指定了用户名,命令执行后需要输入用户密码;  

第2个没有指定用户名,命令执行后需要输入用户名和密码;

linux服务器命令scp

题主你好,

从服务器上下载文件或向服务器上传文件最常用的命令当属scp了,使用方法也简单.

一.先说题主问题中的情况,即从服务器上往回拿文件(官话一点的表达:从服务器上将文件下载到本地):

scp 服务器用户名@服务器ip:文件的绝对路径 要将文件保存到本地哪

举例来说,我的服务器地址是1.1.1.1,用户名为hellofriend,并且在服务器上的/home/hellofriend/下有个名为ok的文件,则我想将服务器上的这个ok文件下载到本地的根目录,/,下用到的命令为:

scp hellofriend@1.1.1.1:/home/hellofriend/ok /

命令执行完成后,会提示你输入hellofriend这个用户的密码,密码输入完成后,回车,正常情况下,你在根目录下就能看到ok文件了.

*.新手注意事项:

a.ip地址和文件路径中间有个冒号;

b.文件路径一般用绝对路径,即从根开始找;

c.不要忘了写你要将文件保存在本地的哪里;

-----

二.再说如何将本地文件上传到服务器,这个不细说,命令和上面的差不多:

scp 本地的文件路径 服务器用户名@服务器ip:要保存在服务器的哪个位置

如我要将本地根目录下的ok文件上传到1.1.1.1这台服务器的/home/hellofriend目录下,则命令为:

scp /ok root@1.1.1.1:/home/hellofriend/

执行命令后,输入密码,回车,正常情况下文件就上传成功了.

-----

写在最后: 上面命令写的其实相对死板一些,其实还有一些小技巧,题主用的多了就能了解了,这里先不过多展开.

=====

希望可以帮到题主, 欢迎追问.

Linux下数据备份命令scp、rsync和后台运行

scp和rsync 均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速度较快。当小文件众多时,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。可根据需要这俩选其一实现文件复制。

scp 是secure copy的缩写,scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。

可以实现本地文件复制到远程服务器,也可以将远程文件复制到本地。

rsync 是remote sync的缩写。使用rsync备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已存在的数据和新数据的差异(默认规则是文件大小或修改时间有差异),只有数据不相同时才会把不相同的部分覆盖。在仅作增量数据的copy时比scp灵活。

一般CentOS默认安装rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安装。

单个冒号和双冒号的区别 :使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。

默认情况下,rsync只确保源文件的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持不同,并且不会删除文件。如果要使目标目录成为源目录的镜像副本,则使用--delete选项。可删除只存在目标目录,不存在于源目录的文件。

增量备份算是一个经常使用的场景了。两台服务器之间进行文件定期备份,无需所有文件都copy一遍,仅复制有变动的文件。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest 参数用来指定同步时的基准目录。

上面命令中, --link-dest 参数指定基准目录 /compare/path ,然后源目录 /source/path 跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录 /target/path 。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

一般服务器之间复制文件都比较大,为防止误操作,最好在后台运行。但因为需要和远程服务器之间的ssh通讯多是需要密码的,所以不能直接使用nohup 放置于后台。无论是scp还是rsync都可操作如下:

后台和前台任务的切换

scp不支持断点续传,挂起scp进程可能导致数据缺失。倾向于使用rsync。

如果有其他任务需要使用nohup后台运行,但执行时却忘记了使用nohup,也可参照此方法进行设置。

参考:1. Linux之scp命令及后台运行scp


网页标题:Linux命令中scp的简单介绍
网页地址:http://cdxtjz.cn/article/dsgihso.html

其他资讯