首页 > 代码库 > 远程传输命令(十三)

远程传输命令(十三)

远程传输命令:scp,rsync


13.1.scp

功能:通货ssh协议进行安全远程服务器的文件复制

语法:

scp [OPTIONS] file_source file_target



帮助命令:

scp  --help

man scp


常用选项:

-C 压缩选项

-i  指定私钥文件

-l  限制速率,单位Kb/s,1024Kb=1Mb

-P  指定远程主机SSH端口

-p  保存修改时间、访问时间和权限

-r  递归拷贝目录

-o  SSH选项,有以下常用的:

ConnectionAttempts=NUM  连接失败后重试次数

ConnectTimeout=SEC       连接超时时间

StrictHostKeyChecking=no  自动拉去主机key文件

PasswordAuthentication=no 禁止密码认证

-v:跟多数命令中-v一样,用来显示详细信息


示例:

[root@localhost ~]# scp system.sh root@192.168.19.51:/root  #本地复制文件到远程,并指定远程以root登录
The authenticity of host ‘192.168.19.51 (192.168.19.51)‘ can‘t be established.
RSA key fingerprint is 14:1a:ee:3c:8c:14:6d:4a:fd:d8:c7:c6:ea:87:0c:de.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.19.51‘ (RSA) to the list of known hosts.
root@192.168.19.51‘s password:
system.sh                                     100% 7273     7.1KB/s   00:00
[root@localhost ~]# scp dir001 root@192.168.19.51:/root   #复制目录不加参数就会报错
\root@192.168.19.51‘s password:
dir001: not a regular file
[root@localhost ~]# scp -r dir001 root@192.168.19.51:/root   #所以加-r目录才会复制过去
root@192.168.19.51‘s password:
[root@localhost ~]#

说明:举几个常用的例子,其他参数后续再完善


13.2.rsync

功能:一种快速的、通用的、远程的(本地)文件复制工具,据说是scp速度的20倍

常用选项:

-v  显示复制信息

-q  不输出错误信息

-c  跳过基础效验,不判断修改时间和大小

-a  归档模式,等效-rlptgoD,保留权限、属组等

-r  递归目录

-l  拷贝软连接

-z  压缩传输数据

-e  指定远程shell,比如ssh、rsh

--progress           进度条,等同-P

--bwlimit=KB/s       限制速率,0为没有限制

--delete            删除那些DST中SRC没有的文件

--exclude=PATTERN      排除匹配的文件或目录

--exclude-from=FILE    从文件中读取要排除的文件或目录

--password-file=FILE    从文件读取远程主机密码

--port=PORT          监听端口


示例:

[root@localhost ~]# ls . /opt
.:
anaconda-ks.cfg  dir003  dir006  dir009       install.log.syslog
dir001           dir004  dir007  dir010       system.sh
dir002           dir005  dir008  install.log
/opt:      #这个目录没有文件
[root@localhost ~]# rsync -av * /opt   #把当前目录所有文件同步到opt目录下
sending incremental file list 
anaconda-ks.cfg
install.log
install.log.syslog
system.sh
dir001/
dir002/
dir003/
dir004/
dir005/
dir006/
dir007/
dir008/
dir009/
dir010/
 
sent 31002 bytes  received 128 bytes  62260.00 bytes/sec
total size is 30574  speedup is 0.98
[root@localhost ~]# ls /opt   #现在有文件了
anaconda-ks.cfg  dir003  dir006  dir009       install.log.syslog
dir001           dir004  dir007  dir010       system.sh
dir002           dir005  dir008  install.log
[root@localhost ~]# rsync -av * 192.168.19.51:/opt    #本地目录所有文件同步到远端
[root@localhost ~]# rsync -av --delete * 192.168.19.51:/opt  #保持远程主机目录与本地一样

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1934260

远程传输命令(十三)