Linux and Unix users
To copy a directory with all subdirectories and files use the Linux and Unix cp command. Below is an example command of how you would use the cp command to copy files. Additional information about this command and other examples can also be found in the above cp link.
cp -r /home/hope/files/* /home/hope/backup
In the above example the cp command would copy all files, directories, and subdirectories in the /home/hope/files directory to the /home/hope/backup directory.
不同的Linux之间copy文件常用有3种方法,第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。第二种方法就是采用samba服务,类似Windows文件copy的方式来操作,比较简洁方便,第三种就是利用scp命令来进行文件复制。
scp是有Security的文件copy,基于ssh登录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录.scp命令跟cp命令类似,只不过cp命令是在同一台机器上用的,scp是在两台机器上复制传输数据的命令。scp实质相当于利用SSH协议来传输数据的cp命令。
scp命令的用处:
scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。
scp命令基本格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
scp命令的参数说明:
-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)的选项。
scp命令的实际应用
比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。
scp root@172.19.2.75:/home/root /home/daisy/full.tar.gz
1>从本地服务器复制到远程服务器
(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个指定了文件名
实例:
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft/scp2.zip
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft/scp2.zip
复制文件:
(1)将本地文件拷贝到远程
scp 文件名 --用户名@计算机IP或者计算机名称:远程路径
(2)从远程将文件拷回本地
scp --用户名@计算机IP或者计算机名称:文件名 本地路径
复制目录:
(1)将本地目录拷贝到远程
scp -r 目录名 --用户名@计算机IP或者计算机名称:远程路径
(2)从远程将目录拷回本地
scp -r --用户名@计算机IP或者计算机名称:目录名 本地路径
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
例子:
scp -r /home/linux/soft/ root@www.mydomain.com:/home/linux/others/
scp -r /home/linux/soft/ www.mydomain.com:/home/linux/others/
上面 命令 将 本地 soft 目录 复制 到 远程 others 目录下,即复制后远程服务器上会有/home/linux/others/soft/ 目录
2>从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
例如:
scp root@www.mydomain.com:/home/linux/soft/scp.zip /home/linux/others/scp.zip
scp www.mydomain.com:/home/linux/soft/ -r /home/linux/others/
linux系统下scp命令中很多参数都和 ssh1 有关 , 还需要看到更原汁原味的参数信息,可以运行man scp 看到更细致的英文说明.
SCP 命令诊断
scp 返回0 成功时,不成功时返回值大于0
SCP 命令不需要输入用户密码的使用方法
在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码。
1. 在机器A上root用户执行 ssh-keygen 命令,生成建立安全信任关系的证书。
[root@A root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <– 直接输入回车
Enter passphrase (empty for no passphrase): <– 直接输入回车
Enter same passphrase again: <– 直接输入回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is: ……
注意:在程序提示输入 passphrase 时直接输入回车,表示无证书密码。
上述命令将生成私钥证书 id_rsa 和公钥证书 id_rsa.pub,存放在用户目录的 .ssh 子目录中。
2. 将公钥证书 id_rsa.pub 复制到机器B的root目录的.ssh子目录中,同时将文件名更换为authorized_keys。
[root@A root]# scp -p .ssh/id_rsa.pub root@机器B的IP:/root/.ssh/authorized_keys
root@192.168.3.206’s password: <– 输入机器B的root用户密码
在执行上述命令时,两台机器的root用户之间还未建立安全信任关系,所以还需要输入机器B的root用户密码。
经过以上2步,就在机器A的root和机器B的root之间建立安全信任关系。下面我们看看效果:
[root@A root]# scp -p test root@机器B的IP地址:/root
这样就不再需要输入密码了。
分享到:
相关推荐
Linux 下 scp 命令详解主机之间拷贝文件 scp 命令是 Secure Copy 的缩写,是一种基于 SSH 的安全文件复制协议。它允许用户在不同的 Linux 主机之间安全地复制文件。与 FTP 和 Samba 等协议不同,scp 命令提供了更加...
**一、scp命令语法** scp命令的基本语法如下: ``` scp [可选参数] file_source file_target ``` 在这里,`file_source`是你想要复制的源文件或目录的路径,而`file_target`是目标位置,可以是另一台远程主机的路径...
**scp命令详解** scp(Secure Copy)是Linux和Unix系统中的一个命令,用于在本地主机与远程主机之间安全地复制文件。它基于SSH(Secure Shell)协议,因此在传输过程中,数据会被加密,确保了文件的安全性。scp命令...
linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source… directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 把计
### SSH中的SCP命令详解与应用 #### 一、SCP命令简介 **SCP**(Secure Copy Protocol)是一种基于**SSH**(Secure Shell)协议的安全文件传输工具。与传统的`cp`命令不同,`scp`不仅可以实现在同一台机器内部的...
#### scp命令详解 在Linux环境下,scp命令是一种基于SSH协议的安全文件传输工具,常用于在不同主机间安全地传输文件或目录。scp命令不仅提供了简单易用的接口,而且还具备了SSH本身的安全特性,确保数据传输的安全...
`scp`命令是Linux系统中用于安全复制文件的工具,它基于SSH(Secure Shell)协议,提供与`rcp`命令类似的功能,但比`rcp`更安全,因为它会在传输过程中对数据进行加密。`scp`命令常用于在本地主机和远程主机之间,或...
Linux的scp命令可以在Linux服务器之间复制文件和目录。 使用语法: scp [参数] [源路径] @IP:/目标路径 scp 参数如下: -1: 强制scp命令使用协议ssh1 -2: 强制scp命令使用协议ssh2 -4: 强制scp命令只使用IPv4...
在Linux系统中,文件复制是日常操作的一部分,而`cp`和`scp`命令则是实现这一功能的关键工具。本文将详细介绍这两个命令的功能、使用方法及其选项。 首先,`cp`命令是Linux中用于本地文件复制的基本命令。它可以...
#### 六、SCP命令详解 SCP命令提供了丰富的选项,用于控制文件传输的行为。以下是一些常用的SCP命令选项: - `-1`:强制使用SSH协议版本1。 - `-2`:强制使用SSH协议版本2。 - `-4`:强制使用IPv4地址。 - `-6`:...
#### 四、SCP命令详解 SCP命令用于安全地在本地与远程服务器之间复制文件或目录,或者在两个远程服务器之间复制文件或目录。SCP命令支持通过指定端口来连接服务器,命令格式如下: ```bash scp -P <port> <file> ...
Linux scp 命令详解 Linux scp 命令是 Linux 系统下的一种安全的远程文件拷贝命令,基于 ssh 登陆协议,用于在 Linux 服务器之间进行文件和目录的复制。scp 是 secure copy 的缩写,顾名思义,scp 命令可以对文件和...
Linux scp命令 Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 ...
Putty之pscp命令详解 Putty是一款免费的远程连接工具,提供了pscp命令用于文件传输。pscp命令是Putty安装包中的一个组件,用于在Windows平台下进行远程文件传输。下面是pscp命令的详细解释。 pscp命令的基本语法...
总结来说,通过使用`sshpass`或密钥对认证,可以在bash脚本中自动化处理SSH和SCP命令,而无需人工干预输入密码。这种方式极大地提高了自动化任务的安全性和效率。但是,强烈建议使用密钥对,因为它提供了更好的安全...
LinuxS11SH远程文件目录传输命令scp使用详解.docx
LinuxS11SH远程文件目录传输命令scp使用详解.pdf