本教程系统管理员了解如何在类 UNIX 操作系统中将文件从本地 Linux 机器安全地复制到远程 Linux 服务器,反之亦然。
SCP 代表安全复制,它通过网络在主机之间复制文件。
它使用 ssh 进行数据传输并使用相同的身份验证并提供与 ssh 相同的安全性。
与 rcp 不同,如果身份验证需要密码或者密码,scp 会要求输入密码。
下面是将文件从本地机器复制到远程机器的语法。
# scp examplefile username@Remote-Server:/home/
上面的命令会将examplefile复制到远程的/home文件夹下,它会询问命令中提到的用户名的密码。
将文件从远程服务器复制到本地机器的语法:
# scp username@Remote-Server:/home/examplefile /home
上面的命令会将 examplefile 从远程服务器的 /home 文件夹复制到本地机器的 home 文件夹。
scp 命令中的一些常用选项。
- -r :递归复制源文件或者目录的内容。
- -p :保留目标中源文件的访问时间、修改时间、权限。
- -q :禁用进度条以及来自 ssh 的警告和诊断消息。
- -v :详细模式。显示调试消息。
- -P : 使用指定的端口号复制文件。
- -l limit :限制使用的带宽,以 Kbit/s 为单位。
示例 1:将文件“itstuff.txt”从远程主机复制到本地机器。
# scp root@mail.onitroad.com:/opt/itstuff.txt /home root@mail.onitroad.com's password: itstuff.txt 100% 1024KB 5.0KB/s 03:23
示例 2:将文件“itstuff.txt”从本地机器复制到远程主机。
# scp /home/itstuff.txt root@mail.onitroad.com:/opt/ root@mail.onitroad.com's password: itstuff.txt 100% 1024KB 1.0MB/s 00:00
示例 3:使用“-r”选项将目录“data”从本地主机复制到远程主机的目录 /opt。
# scp -r data root@mail.onitroad.com:/opt root@mail.onitroad.com's password: file5 100% 0 0.0KB/s 00:00 file3 100% 0 0.0KB/s 00:00 file1 100% 0 0.0KB/s 00:00 file2 100% 0 0.0KB/s 00:00 file4 100% 0 0.0KB/s 00:00
示例 4:将多个文件从远程主机复制到本地计算机上的当前目录。
# scp root@mail.onitroad.com:/opt/data/\{file1,file2,file3} . root@mail.onitroad.com's password: file1 100% 0 0.0KB/s 00:00 file2 100% 0 0.0KB/s 00:00 file3 100% 0 0.0KB/s 00:00
示例 5:使用端口 2751 将文件“itstuff.txt”从本地机器复制到远程主机。
# scp -P 2751 /home/itstuff.txt root@mail.onitroad:/opt
示例 6:使用河豚选项将文件从本地机器复制到远程主机。
默认情况下,scp 使用三重 DES 密码来加密正在复制的数据。
使用 Blowfish 密码,我们可以提高速度。
这可以通过在命令行中使用选项 -c 河豚来完成。
# scp -c blowfish /home/itstuff.txt root@mail.onitroad.com:/opt/ root@mail.onitroad.com's password: itstuff.txt 100% 1024KB 1.0MB/s 00:00
示例 7:使用“-l”选项限制 scp 命令使用的带宽。
我们可以使用“-l”选项来限制 scp 命令使用的带宽,如下面的语法所示。
# scp -l bandwidth_limit filename username@remote-host:/folder-name
其中,bandwidth_limit 是以千位每秒为单位指定的数字。