rsync,scp,wget,curl,nc,ftp,lrzsz传输文件介绍

rsync,scp,wget,curl,nc,ftp,lrzsz传输文件介绍

文章来源: 陶老师运维笔记- 微信公众号html

本文介绍rsync,scp,wget,curl,nc,ftp,lrzsz等工具使用,尤为是在文件传输方面的应用。 主要内容来自于www.ibm.com/developerwo… 表示感谢。 mysql

rsync_scp命令介绍.jpg

1. rsync

rsync 是一款高效的远程数据备份和镜像工具,可快速地同步多台主机间的文件。官网: rsync.samba.org/linux

Rsync服务搭建: CentOS7 FTP及Rsync服务搭建sql

1.1 基本语法

$man rsync
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@][host]:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

$rsync -avzP data1user@192.168.1.2::data1 ~/data1
保持传输原有文件权限,用户,用户组,时间,递归的把data1模块数据复制到用户家目录的data1目录里.
参数 a的意思就是 保留文件原有权限,用户,用户组,时间且递归的copy包括连接文件。
$rsync --compress --recursive --times --perms --owner --group --links  --exclude=smarty/templates_c/  --timeout=30 [path] [user]@[ip]:[path]
复制代码

参数说明:windows

选项 描述
-a, --archive 归档模式,保持全部文件属性,等同于 -rlptgoD
-v, --verbose 详细信息输出
-r, --recursive 对子目录进行递归处理
-R, --relative 使用相对路径信息
-b, --backup 建立备份
-z, --compress 对备份的文件在传输时进行压缩处理
--delete 用于同步目录,从 DEST 中将 SRC 不存在的文件进行删除
--progress 显示备份过程

1.2 命令示例

#设置密码:
$export RSYNC_PASSWORD=ops123456;
#限速
$rsync macdown071.zip ops@rsync.tao-ops.com::software/   --bwlimit=50000 -arv 
$rsync  --password-file=/etc/rsyncd.secrets.passfile ops@ip::software . --bwlimit=50000 -arv

#备份
$rsync -avzP data1user@192.168.1.2::data1 ~/data1
保持传输原有文件权限,用户,用户组,时间,递归的把data1模块数据复制到用户家的data1目录里。

#删除--delete
rsync -avzP --delete data1user@192.168.1.2::data1 ~/data1
#保持data1模块和用户家目录模块内容彻底一致,加上参数 --delete,这样会删除在~/data1目录里可是不在data1
复制代码

2. SCP

scp 命令在网络上的主机之间拷贝文件,它是安全拷贝(secure copy)的缩写。 scp 命令使用 ssh 来传输数据,并使用与 ssh 相同的认证模式,提供一样的安全保障。浏览器

2.1 基本语法

$man 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

复制代码

2.2 命令示例

#示例:
$scp ops@rsync.tao-ops.com:/home/ops/foo.txt  ~/Downloads/
$scp -r -P 4588 ops@rsync.tao-ops.com:/tmp/foo.txt /root/ 

Copy 本地文件 /etc/eva.log, 到远程机器 sysB, 用户 user 的家目录下
$scp /etc/eva.log user@sysB:/home/user

copy 远程机器 sysB 上的文件 /home/uesr/eva.log, 到本地的 /etc 目录下 , 并保持文件属性不变
$scp -p user@sysB:/home/uesr/eva.log /etc

copy sysB 上的目录 /home/user, 到本地 /home/user/tmp, <new dir,/home/user/tmp/user>
$scp -r user@sysB:/home/user /home/user/tmp
复制代码

3. wget

wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,彻底重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级连接转换成指向本地文件,方便离线浏览。缓存

3.1 基本语法

#http://www.gnu.org/software/wget/manual/wget.html

$man wget
wget [options] [URL-list]

复制代码

wget 帮助手册: www.gnu.org/software/wg… 参数说明:安全

选项 描述
-r 递归下载服务器上全部的目录和文件。由 -l 选项来指定递归深度。
-b 后台下载
-m 制做站点镜像
-c 指定断点续传功能。该功能要求服务器支持断点续传。
-I 指定下载目录列表,可实现批量下载
-A/-R 指定接受/拒绝下载列表,实现选择性地下载
--proxy=on/off 指定是否利用代理服务器进行下载
-t, --tries=NUMBER 最大尝试连接次数 (0 表示无限制,默认为 20 次 )
-nc, --no-clobber 不覆盖已存在的文件
-N, --timestamping 只下载比本地新的文件
-nd --no-directories 不进行目录结构建立
-x, --force-directories 强制建立目录结构
-nH, --no-host-directories 不继承主机目录结构
-P, --directory-prefix=PREFIX 设置目录前缀

3.2 命令示例

  • 下载文件 若须要密码能够--http-user='xxx' --http-passwd='xxx' 指定。
#下载文件
$wget https://dldir1.qq.com/weixin/mac/WeChatMac.dmg   -O WeChatMac.dmg
#有密码
$wget -P /data1 -c --http-user='xxx' --http-passwd='xxx' http://ip:80/scripts/install.sh

复制代码
  • 下载ftp文件
#下载ftp文件
$wget -P /tmp/ ftp://ftp.tao-ops.com:21/pub/README.md --ftp-user=ftpuser --ftp-password=ftppwd
复制代码
  • 下载网站
#递归下载 http://www.ibm.com.cn 站点的信息下载全部显示完整网页因此须要的文件,如图片等。
#在下载不进行上层目录搜索并将绝对连接转换为相对连接。
$wget -r -p -np -k http://www.ibm.com.cn

#本地硬盘创建 http://www.ibm.com.cn 的镜像,递归深度为 4,重试次数为无穷
$wget -m -l4 -t0 http://www.ibm.com.cn
#使用代理进行下载,并实现断点续传。
$wget -Y on -c http://www.ibm.com.cn
复制代码

4. curl

curl,它是对 libcurl 库的一个命令行工具包装。 curl 使用 URL 的语法来传输文件,它支持 FTP, FTPS, HTTP, HTTPS, TFTP, SFTP, TELNET 等多种协议。bash

4.1 基本语法

$man curl
curl [options] [URL...]
复制代码

4.2 命令示例

  • 获取主页 curl 能够将从指定 url 处获取的内容打印到标准输出上。若是须要保存在本地文件中,能够使用 -o,或使用 -O 参数指定使用远程主机上的文件名。
curl http://www.baidu.com
curl -o 1.html http://www.baidu.com
curl -O http://www.baidu.com/index.html
复制代码
  • 下载ftp文件 须要指定用户名和密码的话,能够在 url 中指定,或者使用 -u 参数。
#无密码
$curl ftp://ftp.gnu.org/README
#有密码
$curl ftp://name:passwd@machine.domain:port/full/path/to/file -O 
$curl -u name:passwd ftp://machine.domain:port/full/path/to/file -o xxx.file
复制代码
  • 使用代理 使用 -x 选项来使用代理进行链接
curl -x my-proxy:port ftp://ftp.somesite.com/README
复制代码

curl 适合用来进行自动的文件传输或操做序列,它是一个很好的模拟用户在网页浏览器上的行为的工具。尤为当须要在程序中调用时,libcurl 是个很好的选择。服务器

5. nc

nc命名netcat,能够链接和重定向Sockets。nc命令功能很是多,它能够打开TCP链接,发送UDP包,监听TCP/UDP端口,进行端口扫描等等。 nc在两机器间传输文件速度很是快,推荐使用。

5.1 基本语法

$man nc
ncat - Concatenate and redirect sockets
#用法
$ncat [OPTIONS...] [hostname] [port]
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通讯端口>]
[-s<来源位址>][-v...][-w<超时秒数>][主机名称][通讯端口...]
复制代码

基本参数

选项 描述
-4 仅使用IPv4
-6 仅使用IPv6
-c,--sh-exec [command] 执行给定的命令,同/bin/sh
-e,--exec [command] 执行给定的命令
-m,--max-conns [n] 设置同时链接的最大数
-d,--delay [time] 设置读/写的等待时间
-o,--output [filename] 将会话的数据保存为文件
-i,--idle-timeout [time] 读/写空闲超时时间
-p,--source-port port 指定本机使用的通讯端口
-s,--source addr 指定远程通讯的主机地址
-l,--listen 监听传入的链接信息
-k,--keep-open 在监听模式中接收多个链接信息
-n,--nodns 直接使用IP地址,不解析域名
-t,--telnet 响应telnet请求
-u,--udp 使用UDP替换默认的TCP
-v,--verbose 显示详细的输出信息
-w,--wait [time] 设置链接超时时间,单位为秒
-z 创建链接后立刻断开,不发送和接收任何数据即Zero-I/O模式,仅用于测试链接状

5.2 命令示例

  • 传输文件 1)传输文件
目标机(接收机器):
nc -l 1234 >mysql-bin.000001 
#源机器: 文件的发送端,启动监听端口并准备好相应的文件
nc 接收机ip 1234 <  mysql-bin.000001
复制代码

2)传输文件夹

目标机(接收机器):192.168.0.3
nc -l 1234 | tar xzvf - >mysql3306
源机器(发送机器):
tar czvf - mysql3306 | nc 192.168.0.3 1234

复制代码
  • 测试端口
扫描本机端口20-22 
$nc -z -v -n -w 2 127.0.0.1 20-22
nc: connect to 127.0.0.1 port 20 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 21 (tcp) failed: Connection refused
Connection to 127.0.0.1 22 port [tcp/*] succeeded!
#mysql
$nc -z -vv 192.110.103.41  3306
Connection to 192.110.103.41 3306 port [tcp/mysql] succeeded!
#zk
$echo 'ruok' | nc 127.0.0.1 2181
#memcache
$nc -z -vv 127.0.0.1 11211
Connection to 127.0.0.1 11211 port [tcp/memcache] succeeded!
复制代码
  • 操做memcached
yum install memcached
#启动
memcached -d -p 11211 -m 256
#set key flags exptime bytes [noreply] 
$nc -z -vv 127.0.0.1 11211
1)存储数据:printf "set mykey 0 1000 6\r\n123456\r\n" |nc 127.0.0.1 11211  
2)获取数据:printf "get mykey\r\n" |nc 127.0.0.1 11211
3)删除数据:printf "delete mykey\r\n" |nc 127.0.0.1 11211
4)查看状态:printf "stats\r\n" |nc 127.0.0.1 11211
5)模拟top命令查看状态:watch "echo stats" |nc 127.0.0.1 11211
6)清空缓存:printf "flush_all\r\n" |nc 127.0.0.1 11211  (当心操做,清空了缓存就没了)
复制代码
  • 聊天聊天工具
在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
这样,双方就能够相互交流了。使用ctrl+C(或D)退出。
复制代码

6. ftp

ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输。FTP 协议容许数据在不一样文件系统的主机之间传输。

6.1 基本语法

$ ftp 主机名 /IP #若是没有指定主机名,ftp 将给出提示符,等待用户输入命令
#ftp命令 描述
ls  列出远程机的当前目录
cd  在远程机上改变工做目录
lcd 在本地机上改变工做目录
ascii   设置文件传输方式为 ASCII 模式
binary  设置文件传输方式为二进制模式
close   终止当前的 ftp 会话
get (mget)  从远程机传送指定文件到本地机
put (mput)  从本地机传送指定文件到远程机
open    链接远程 ftp 站点
quit    断开与远程机的链接并退出 ftp
?   显示本地帮助信息
!   转到 Shell 中
prompt 1    关闭交互模式
复制代码

6.2 命令示例

#ftp get (mget) 从远程机传送指定文件到本地机
#wget 
$wget -P /tmp/ ftp://ftp.tao-ops.com:21/pub/README.md --ftp-user=user --ftp-password=ftppwd

#curl有密码
$curl ftp://name:passwd@machine.domain:port/full/path/to/file -O 
$curl -u name:passwd ftp://machine.domain:port/full/path/to/file -o xxx.file
复制代码

7. lrzsz

lrzsz是一个unix通讯套件提供的X,Y,和ZModem文件传输协议,能够用在windows与linux 系统之间的文件传输,体积小速度快。

7.1 基本语法

#安装
$yum install lrzsz
$man rz
$man sz
复制代码

7.2 命令示例

若终端是SecureCRT,打开SecureCRT软件 -> Options -> session options -> X/Y/Zmodem 下能够设置上传和下载的目录;

#下载 (从客户端上传文件到linux服务端)
$rz 
#上传(发送文件到客户端)
$sz /etc/passwd
复制代码

8. 传输工具总结

文件传输方法基于其自身的特色与优点均有其典型的适用场景:

  • rsync 更适用于大数据量的每日同步,拷贝的速度很快,相对 wget 来讲速度快且安全高效。
  • ftp 做为最经常使用的入门式的文件传输方法,使用简单,易于理解,而且能够实现脚本自动化;
  • scp 利用 ssh 传输数据,并使用与 ssh 相同的认证模式,相对于 rcp 提供更强的安全保障;
  • wget,实现递归下载,可跟踪 HTML 页面上的连接依次下载来建立远程服务器的本地版本,彻底重建原始站点的目录结构,适合实现远程网站的镜像;
  • curl 则适合用来进行自动的文件传输或操做,是一个很好的模拟用户在浏览器上的行为的工具;
  • nc nc功能强大,能够快速方便的在两台机器间传输文件或文件夹。
  • lrzsz 适用于小文件在linux服务器及客户机上传输。

参考:

相关文章
相关标签/搜索