如何用 scp 在本地和远程主机之间复制文件
使用 scp 命令可以将文件从远程操作系统服务器传输到本地操作系统,或从本地操作系统复制到远程操作系统。此命令使用 SSH 服务进行身份验证,并对传输的数据进行加密,所以它即可以使用用户名密码的方式进
scp source target
[student@servera ~]scp log.tar root@serverb:/logbackup The authenticity of host 'serverb (172.25.250.11)' can't be established. ECDSA key fingerprint is SHA256:BCd8VCfEpGbUo3zb1De0hd1Q5nOMEzYNpMFu5o7j4Fg. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'serverb,172.25.250.11' (ECDSA) to the list of known hosts. root@serverb's password: log.tar 100% 11MB 20.8MB/s 00:00 [student@servera ~] ssh root@serverb "ls /logbackup" root@serverb's password: log.tar
root@ 是可选项,如果不指定,则使用你当前的本地用户。你所使用的用户必须要对远端主机上的对应目录有相应的权限。
和 ssh 一样,第一次连接的时候,会有一个安全性的提示,选项 yse 就可以了,因为 scp 就是 OpenSSH 的一部分。
[student@servera ~]scp root@serverb:/logbackup/log.tar backup/ root@serverb's password: log.tar 100% 11MB 25.5MB/s 00:00 [student@servera ~] ls backup/ log.tar
如果是目录,我们可以通过 -r 选项进行递归的方式,复制整个目录内容
[student@servera ~]$ scp -r root@serverb:/var/log/ backup/ root@serverb's password: lastlog 100% 285KB 5.9MB/s 00:00 README 100% 1040 260.8KB/s 00:00 wtmp 100% 6912 2.6MB/s 00:00 btmp 100% 0 0.0KB/s 00:00 audit.log 100% 208KB 8.0MB/s 00:00 sssd.log 100% 0 0.0KB/s 00:00 sssd_implicit_files.log 100% 109 32.9KB/s 00:00 sssd_nss.log 100% 94 8.6KB/s 00:00 rhsm.log 100% 3642 1.0MB/s 00:00 tuned.log 100% 2434 904.9KB/s 00:00 messages 100% 1459KB 18.1MB/s 00:00 secure 100% 8298 3.4MB/s 00:00 maillog 100% 0 0.0KB/s 00:00 spooler 100% 0 0.0KB/s 00:00 dnf.log 100% 107KB 3.4MB/s 00:00 dnf.librepo.log 100% 245KB 8.4MB/s 00:00 dnf.rpm.log 100% 21KB 2.3MB/s 00:00 hawkey.log 100% 18KB 3.8MB/s 00:00 cron 100% 7166 706.4KB/s 00:00 boot.log 100% 0 0.0KB/s 00:00
我们还可以使用 scp 把一个文件从远端的一台主机,复制到另外一台主机上
[student@workstation ~]scp student@servera:/home/student/log.tar student@serverb:/home/student/ student@serverb's password: log.tar 100% 670KB 19.6MB/s 00:00 Connection to servera closed. [student@workstation ~] ssh student@serverb "ls -l" total 672 -rw-rw-r--. 1 student student 686080 Nov 6 20:54 log.tar