scp 命令的使用
scp传输文件消耗资源比较少,不会提高多少系统的负荷,在小文件比较多的情况下,使用rsync进行复制文件会导致硬盘I/O非常高,而使用scp则基本不影响系统的正常使用。
命令格式:
scp [-参数] [要传输的文件路径] [SSH链接信息:存放文件的路径]
常用参数:
- -B 使用批处理模式(传输过程中不询问传输口令或短语)
- -C 允许压缩。(将 - C 标志传递给 ssh,从而打开压缩功能)
- -p 留原文件的修改时间,访问时间和访问权限。
- -r 递归复制整个目录。
- -F ssh_config 指定一个替代的 ssh 配置文件,此参数直接传递给 ssh。
- -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给 ssh。
- -P port 是指定数据传输用到的端口号,如果SSH服务有修改端口号的,可以用这个参数指定端口。
例子:
(1)从本地上传文件到远程主机
#拷贝文件到远程主机上
[root@dgut1 ~]# scp anaconda-ks.cfg root@192.168.19.13:/tmp/
root@dgut2's password: #输入密码,如果设置秘钥则没有这交互。
anaconda-ks.cfg 100% 1593 1.8MB/s 00:00
#拷贝目录到远程主机上
[root@dgut1 ~]# scp -r /boot/ root@dgut2:/tmp/
root@dgut2's password:
device.map 100% 84 7.2KB/s 00:00
gcry_rmd160.mod 100% 8072 946.2KB/s 00:00
acpi.mod 100% 9936 5.2MB/s 00:00
.....
(2)从远程主机上拷贝文件到本地
#将远程文件拷贝到本地
[root@dgut1 ~]# scp root@dgut2:/root/shadow /root/
root@dgut2's password:
shadow 100% 803 1.4MB/s 00:00
[root@dgut1 ~]# ls
shadow
#将远程目录拷贝到本地
[root@dgut1 ~]# scp -r root@dgut2:/boot/ /root/
root@dgut2's password:
device.map 100% 84 99.1KB/s 00:00
gcry_rmd160.mod 100% 8072 8.1MB/s 00:00
acpi.mod 100% 9936 11.1MB/s 00:00
gcry_rsa.mod 100% 2072 2.3MB/s 00:00
......
[root@dgut1 ~]# ls
boot