由于工做缘由,须要常常在不一样的服务器见进行文件传输,特别是大文件的传输,所以对linux下不一样服务器间数据传输命令和工具进行了研究和总结。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。html
rcp
rcp不是一种安全的的传输文件的方式,rcp经过rsh(rsh见下面)来执行远程命令,要使用rcp必须通过一些配置,如今rcp已经被scp取代了,经常使用scp来进行文件传输。要使用rcp,须要具有如下条件:linux
(1)若是系统中有/etc/hosts 文件,应确保该文件包含要与之进行通讯的远程主机信息:internet_address official_name alias。例如:1.186.10.*** blade1.ibm.com.cnblade算法
(2).rhosts 文件:.rhosts 文件位于远程系统的根目录下,其中包含本地系统的名称和本地登陆名。例如,远程系统的 .rhosts 文件中的项多是:blade1 root;其中,blade1 是本地系统的名称,root 是本地登陆名。这样,blade1 上的 root 便可在包含 .rhosts 文件的远程系统中来回复制文件。sql
配置过程:shell
(1) 在双方root用户根目录下创建.rhosts文件,并将双方的hostname加进去.在此以前应在双方的 /etc/hosts文件中加入对方的IP和hostname浏览器
(2) 把rsh服务启动起来,redhat默认是不启动的。方法:用执行ntsysv命令,在rsh选项前用空格键选中,肯定退出。而后执行:service xinetd restart便可。若是没有rsh,请见下面rsh部分安全
(3) 到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty.so一行用“#”注释掉便可。(只有注释掉这一行,才能用root用户登陆)bash
命令使用:服务器
rcp [options] [[user@]host1:]file1 ...[[user@]host2:]file2网络
options:
-r 递归地把源目录中的全部内容拷贝到目的目录中。
-p 试图保留源文件的修改时间和模式,忽略umask。
rsh(remote shell,它不够安全):rsh使用条件同rcp,rsh配置过程(以root为例)
(1) 在服务器上运行/urs/bin/ntsysv选中rexec,rlogin,rsh三项服务。
(2) 运行#/sbin/service xinetd restart启动该三项服务。
(3) 运行echo"rexec">>/etc/securetty; echo"rlogin">>/etc/securetty; echo"rsh">>/etc/securetty
(4) 在服务器上运行echo"你的ip地址root">>/root/.rhosts或者echo"你的主机名root">>/root/.rhosts且确保在服务器上的/etc/hosts中有主机名和ip地址的映射关系
(5) 到/etc/pam.d/目录下,把rexec, rlongin, rsh文件中的auth required /lib/security/pam_securetty.so 一行用“#”注释掉便可。(只有注释掉这一行,才能用root用户登陆)
(6) rsh命令用法:rshremote-sytem-neame Linux-command,例如:rsh blade1 ls /home/root
scp
scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,而且和ssh 使用相同的认证方式,提供相同的安全保证。 与rcp 不一样的是,scp 在须要进行验证时会要求你输入密码或口令。
scp [options] [本地用户名@IP地址:]file1 [远程用户名 @IP 地址 :] file2
options:
-v 用来显示进度,能够用来查看链接,认证,或是配置错误。
-C 使能压缩选项。
-c 选择使用那个加密算法(具体对应到ssh的-c cipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des),使用blowfish会快不少,能够参看man ssh 中的-c cipher-spec
-P 选择端口
-r 递归拷贝整个目录
-l 限制使用带宽,Kbit/s
-o 指定传给ssh的一些参数值,好比Compression=yes
-p 保留文件的修改时间等信息。
rsync
rsync是rcp的替代品之一,rsync 是一款高效的远程数据备份和镜象工具,可快速地同步多台主机间的文件,其具备以下特性:
l 支持连接、全部者、组信息以及权限信息的拷贝;
l 经过远程 shell(ssh, rsh)进行传输;
l 无须特殊权限便可安装使用;
l 流水线式文件传输模式,文件传输效率高;
l 支持匿名操做;
须要说起的是 rsync 以其优越的性能优点区别于其它几种 Linux 文件传输方法,其同步文件的速度至关快,这主要归功于 rsync 所使用的传输算法。简而言之 rsync 算法能在至关短的时间内计算出须要备份的数据,只对源文件与目标文件的不一样之处进行传输,从而下降网络中传输的数据量,以此达到快速备份镜像的目的。下面经过一典型应用场景来描述 rsync 算法的基本原理:主机 A 与主机 B 均有对同一文件的拷贝,用户对主机 A 上的拷贝进行更新,主机 B 经过 rsync 算法对更新后的文件进行同步。如下是该算法的实现步骤:
(1) 主机 B 将原始拷贝划分红大小为 N 的不重合的若干块(文件末尾部分分块大小可能不足 N),并对这些数据块进行两种不一样方式的校验:32 位的滚动弱校验、128 位的 MD4 强校验。弱校验较之强校验计算速度快。
(2) 主机 B 将每一个数据块的弱校验、强校验结果发送给主机 A 。
(3) 主机 A 对更新后的文件拷贝中的每一个长度为 N 的数据块进行弱校验并与从 B 接收到的弱校验值进行匹配,若相同再进行强校验匹配。因为弱校验的滚动特性能够快速地筛选出须要进行同步的数据块。该算法的运算量主要集中在主机 A 上。
经过上述计算,主机 A 将文件的不一样部分发送给 B,B 接收到两个拷贝之间的不一样之处,从而同步获得更新后的文件。经过如上方式,rsync 避免了对相同数据的传输,减小了网络带宽的浪费。在时间上整个过程当中需一个往返,从某种程度上也保证了 rsync 的优越性能。
Rsync能够经过两种方式来链接远程服务器,一种是经过类shell命令的方式,一种是经过rsync daemon的方式,rsync daemon须要进行安装和配置,具体以下:
可从官方网站http://rsync.samba.org/ 上下载安装 rsync 的最新版本。使用时需将 rsync 分别安装于服务端和客户端,服务端和客户端使用同一个 rsync 软件包来实现远程镜像和按期同步更新。须要说明的是一个 rsync 服务端可同时备份多个客户端的数据;多个服务端备份一个客户端的数据。 rsync 默认端口为 873,服务器在该端口接收客户的匿名或者认证方式的备份请求。
rsync 服务端在使用以前须要进行必要的配置,其配置文件为 /etc/rsyncd.conf,进行认证、访问、日志记录等控制。配置文件包括全局参数、模块参数的设置。 rsyncd.conf 文件中 [module] 以前的全部参数为全局参数,也能够在全局参数部分定义模块参数,在这种状况下该参数的值就是全部模块的默认值。全局参数设置程序使用的端口号,指定消息文件、日志文件 pid 文件以及发送日志消息的级别。模块参数主要定义服务端哪一个目录须要被同步。用户可根据不一样的须要指定多个模块,每一个模块对应须要备份的一个目录树,即如有 N 个须要备份的目录树,则须要 N 个模块与之对应。模块中能够定义许多参数,常见参数以下。
l Comment 模块信息描述,该描述连同模块名在客户链接获得模块列表时显示给客户。默认没有描述定义。
l Path 指定供备份的目录路径,必须指定该参数。
l max connections 指定最大并发链接数以保护服务器,超过限制的链接请求将被告知随后再试。默认值为 0,即没有限制。
l log file 指定日志文件
l read only 设定是否容许客户上载文件。若为 true 任何上载请求均会失败,若为 false 且客户端拥有服务器目录读写权限则能够上载。默认值为 true 。
l write only 设定是否容许客户下载文件。若为 true 任何下载请求均会失败,默认值为 false 。
l List 设定当客户请求可使用的模块列表时,是否列出该模块。若为 false,则建立隐藏的模块。默认值为 true 。
l fake super 容许文件享有全部权限,而无需后台服务以 root 权限进行操做。
l Filter 设置过滤列表以决定哪些文件可由客户端访问。
l hosts allow 指定容许客户链接的 IP 地址。能够为单个 IP 地址或整个网段。多个 IP或网段须要以空格隔开。默认是容许全部主机链接。
l dont compress 指定不进行压缩处理便可传输的文件,默认值是 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
l pre-xfer exec, post-xfer exec 设置可在文件传输前/后执行的命令。若在文件传输前执行的命令失败,则取消本次传输操做。
须要注意的是服务器端启动:/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf
链接远程服务器的两种方式的基本语法
(1) 经过远程 shell 方式:
l rsync [OPTION] [USER@]HOST:SRC DEST:用远程 shell(如 ssh, rsh)实现将远程机器的内容拷贝到本地机器。 SRC 地址路径中以单个冒号 ":" 进行分隔。
l rsync [OPTION] SRC [USER@]HOST:DEST:使用远程 shell(如 rsh、ssh)实现本地机器的内容拷贝到远程机器。 DEST 地址路径中以单个冒号 ":" 进行分隔。
(2) 经过 rsync daemon 方式:
l rsync [OPTION] [USER@]HOST::SRC DEST 或rsync [OPTION]rsync://[USER@]HOST[:PORT]/SRC [DEST]:从远程 rsync 服务器中拷贝文件到本地机。SRC 地址路径中以双冒号 "::" 进行分隔。
l rsync [OPTION] SRC [USER@]HOST::DEST 或rsync [OPTION] SRCrsync://[USER@]HOST[:PORT]/DEST:从本地机器拷贝文件到远程 rsync 服务器中。 DEST 地址路径中以双冒号 "::" 进行分隔。
若是 rsync 命令中只指定 SRC 参数而不指定 DEST 参数,则意为显示源文件列表而非进行同步拷贝。
Options:
options:
-v,--verbose 详细模式输出
-q,--quiet 精简输出模式
-c,--checksum 打开校验开关,强制对文件传输进行校验
-a,--archive 归档模式,表示以递归方式传输文件,并保持全部文件属性,等于-rlptgoD
-r,--recursive 对子目录以递归模式处理
-R,--relative 使用相对路径信息
-b,--backup 建立备份,也就是对于目的已经存在有一样的文件名时,将老的文件从新命名为~filename。可使用--suffix选项来指定不一样的备份文件前缀。
--backup-dir将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX定义备份文件前缀
-u,--update 仅仅进行更新,也就是跳过全部已经存在于DST,而且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l,--links 保留软链结
-L,--copy-links 想对待常规文件同样处理软链结
--copy-unsafe-links仅仅拷贝指向SRC路径目录树之外的链结
--safe-links忽略指向SRC路径目录树之外的链结
-H,--hard-links 保留硬链结
-p,--perms 保持文件权限
-o,--owner 保持文件属主信息
-g, --group 保持文件属组信息
-D,--devices 保持设备文件信息
-t,--times 保持文件时间信息
-S,--sparse 对稀疏文件进行特殊处理以节省DST的空间
-n,--dry-run现实哪些文件将被传输
-W,--whole-file 拷贝文件,不进行增量检测
-x,--one-file-system 不要跨越文件系统边界
-B,--block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e,--rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH指定远程服务器上的rsync命令所在路径信息
-C,--cvs-exclude 使用和CVS同样的方法自动忽略文件,用来排除那些不但愿传输的文件
--existing仅仅更新那些已经存在于DST的文件,而不备份那些新建立的文件
--delete删除那些DST中SRC没有的文件
--delete-excluded一样删除接收端那些被该选项指定排除的文件
--delete-after传输结束之后再删除
--ignore-errors及时出现IO错误也进行删除
--max-delete=NUM最多删除NUM个文件
--partial保留那些因故没有彻底传输的文件,以是加快随后的再次传输
--force强制删除目录,即便不为空
--numeric-ids不将数字的用户和组ID匹配为用户名和组名
--timeout=TIMEIP超时时间,单位为秒
-I,--ignore-times 不跳过那些有一样的时间和长度的文件
--size-only当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM决定文件是否时间相同时使用的时间戳窗口,默认为0
-T--temp-dir=DIR 在DIR中建立临时文件
--compare-dest=DIR一样比较DIR中的文件来决定是否须要备份
-P等同于 --partial
--progress显示备份过程
-z,--compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN指定排除不须要传输的文件模式
--include=PATTERN指定不排除而须要传输的文件模式
--exclude-from=FILE排除FILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version打印版本信息
--address绑定到特定的地址
--config=FILE指定其余的配置文件,不使用默认的rsyncd.conf文件
--port=PORT指定其余的rsync服务端口
--blocking-io对远程shell使用阻塞IO
-stats给出某些文件的传输状态
--progress在传输时现实传输过程
--log-format=formAT指定日志文件格式
--password-file=FILE从FILE中获得密码
--bwlimit=KBPS限制I/O带宽,KBytes per second
-h,--help 显示帮助信息
实例:
(1) 查看服务端文件及列表:
l rsync 9.186.110.53::查看服务端可用的模块列表以及注释信息;rsync ibmuser@9.186.110.53::www/查看服务端 www 模块中的目录及文件列表(使用 rsyncd 用户认证方式)
l rsync ibmuser@9.186.110.53:/var/www/html/查看服务端/var/www/html 目录中的内容(使用服务端的系统用户进行验证,如 ibmuser)
(2) 保持客户端与服务端的数据同步:
l rsync -avz ibmuser@9.186.110.53::www/ /backup1/使用后台服务方式将服务端www 模块下的内容备份到本地 /backup1 目录中,备份时保留原有权限、属性、属主及符号链接等,并使用压缩方式加快数据传输。
l rsync – avzibmuser@9.186.110.53:/var/www/html /backup2/使用 ssh 方式将远程的/var/www/html 目录备份到本地 /backup2/ 目录下
l rsync -avz --deleteibmuser@9.186.110.53::www/ /backup3/将远程 www 模块备份到本地/backup3/ 目录中,同时进行同步目录,删除本地目录中多余的文件。
(3) 当服务端的数据出现问题时,须要经过客户端的数据对服务端进行恢复,只要客户端有服务端的写入权限,便可经过调换 rsync 命令的 SRC、DEST 参数进行恢复。
ftp
ftp命令使用文件传输协议(FileTransfer Protocol ,FTP)在本地主机和远程主机之间或者两个远程主机之间进行文件传输。FTP 协议容许数据在不一样文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,可是它并无尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。并且 FTP 协议不多对一个文件系统的总体结构做假定,也不提供这样的功能,好比递归的拷贝子目录。在使用 ftp 命令时,须要注意 FTP 协议的这些特性。当须要保留文件属性或者须要递归的拷贝子目录时,可使用 rcp/scp 等命令。
若是须要将文件以ftp传输到目的服务器上,必须在目的服务器上安装ftp server,基本的安装和启动过程以下:
根据服务对象的不一样,FTP服务能够分为两类:一类是系统FTP服务器,它只容许系统上的合法用户使用;另外一类是匿名FTP服务器,它容许任何人登陆到FTP服务器,和服务器链接后,在登陆提示中输入Anonymous,便可访问服务器。
Yum list *ftp* (找到可用的Ftp包)
sudo yum install ftp包
手工启动和关闭:启动:/usr/sbin/ftprestart 关闭:/usr/sbin/ftpshut
FTP服务器的配置:为了确保FTP服务器安全,必须设置一些重要的配置文件,以更好地控制用户的访问权限。这些配置文件是:/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。利用这些文件,可以很是精确地控制哪些人、在什么时间、从什么地点能够链接服务器,而且能够对他们链接后所作的工做进行检查跟踪。
(1) /etc/ftpusers:该文件夹中包含的用户不能经过FTP登陆服务器,有时将须要禁止的用户帐号写入文件/etc/ftpuser中,这样就能够禁止一些用户使用FTP服务。
(2) /etc/ftpconversions:用来配置压缩/解压缩程序。
(3) /etc/ftpgroups:建立用户组,这个组中的成员预先定义能够访问FTP服务器。
(4) /etc/ftpphosts:用来根据禁止或容许远程主机对特定帐户的访问,例如:allow czc 192.168.0.0/24 deny cdd 10.0.0.0/8(表示容许czc用户从192.168.0这个网段连线访问,拒绝cdd从10.这个网段连线访问)。
(5) /etc/ftpaccess:是很是重要的一个配置文件,用来控制存取权限,文件中的每一行定义一个属性,并对属性的值进行设置。下面对它的一些经常使用配置作一点介绍:
l 定义用户类别:格式:class[类名] [real/guest/anonymous][IP地址] 功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,容许特定或者所有的IP地址访问FTP服务器。
l 登陆重试次数:在命令行中输入:loginfails 10,这代表若是10次尚未登陆成功就切断连线。
l 密码检查:格式:passwd-check〈strictness〉 warn。是对匿名用户的密码使用方式的检查,其中〈strictness〉是三个可能的字符串之一:None、Trivial、RFC822。若选None,表示将不对口令作任何检查;若选Trivial,表示对口令有必定的要求,它须要在口令中至少要有一个@符号;若选RFC822,则表示最严格,要求E-mail地址必须遵照RFC822报文标题标准(如:czc@domain.com )。例如:passwd-check rfc822 warn,代表密码的要求很严格,当密码不符合规定时出现警告信息。
l 登陆人数的限制:格式:limit[类别] [人数] [时间] [文件名]。设置指定类别在约定时间内能够登陆FTP的人数。例如:limit remote Any/etc/many.msg,说明类别Remote类别在任什么时候间内登陆人数不超过20我的,不然会显示Many.msg警告信息。
安装、配置好FTP服务器后,只须要在命令提示符后输入:FTP Servername,用主机名或但愿链接的FTP服务器的IP地址代替Servername,按照提示输入用户名和口令,而后用标准的Linux上移或下移FTP服务器目录结构。另外,也能够采用图形化FTP程序,包括窗口式gFTP,能够借助Web浏览器去访问FTP服务器。
在登陆上ftp后,可使用以下ftp命令进行操做:
l FTP> ! 从 ftp 子系统退出到外壳
l FTP> ? 显示 ftp 命令说明,和 help 相同,格式:? [command]说明:[command]指定须要帮助的命令名称。假如没有指定 command,linux ftp命令参数将显示所有命令的列表。
l FTP> append 使用当前文档类型配置将本地文档附加到远程电脑上的文档。格式:append local-file [remote-file],说明:local-file 指定要添加的本地文档,remote-file指定要添加 local-file 的远程电脑上的文档。假如省略了 remote-file,本地文档名将被用做远程文档名。
l FTP> ascii 将文档传送类型配置为默认的 ASCII。说明:linux ftp命令参数支持两种文档传送类型,ASCII 码和二进制图像,在传送文本文档时应该使用ASCII。
l FTP> bell 转换响铃以在每一个文档传送命令完成后响铃??默认状况下,铃声是关闭的。
l FTP> binary(或bi) 将文档传送类型配置为二进制
l FTP> bye(或by) 结束和远程电脑的linux ftp命令参数会话并退出linux ftp命令参数。
l FTP> cd 更改远程电脑上的工做目录。格式:cd remote-directory,说明:remote-directory 指定要更改的远程电脑上的目录。
l FTP> close 结束和远程服务器的linux ftp命令参数会话并返回命令解释程式。
l FTP> debug 转换调试。当调试打开时,发送到远程电脑的每一个命令都打印,前面是字符串">"。默认状况下,调试是关闭的。
l FTP> delete 删除远程电脑上的文档。格式:delete remote-file,说明:remote-file 指定要删除的文档。
l FTP> dir 显示远程目录文档和子目录列表。格式:dir [remote-directory] [local-file],说明:remote-directory 指定要查看其列表的目录。假如没有指定目录,将使用远程电脑中的当前工做目录。Local-file 指定要存储列表的本地文档。假如没有指定,输出将显示在屏幕上。
l FTP> disconnect 从远程电脑断开,保留linux ftp命令参数提示。
l FTP> get 使用当前文档转换类型将远程文档复制到本地,格式:get remote-file [local-file],说明:remote-file 指定要复制的远程文档,Local-file指定要在本地电脑上使用的名称,假如没有指定,文档将命名为 remote-file。
l FTP>glob 转换文档名组合,组合容许在内部文档或路径名中使用通配符(*和?),默认状况下,组合是打开的。
l FTP>hash 转换已传输的每一个数据块的数字签名 (#) 打印,数据块的大小是2048 字节,默认状况下,散列符号打印是关闭的。
l FTP>help 显示linux ftp命令参数命令说明。格式:help [command], 说明:command 指定须要有关说明的命令的名称,假如没有指定 command,linux ftp命令参数将显示所有命令的列表。
l FTP>lcd 更改本地电脑上的工做目录,默认状况下,工做目录是启动linux ftp命令参数的目录。格式:lcd [directory],说明:directory 指定要更改的本地电脑上的目录,假如没有指定directory,将显示本地电脑中当前的工做目录。
l FTP>literal 将参数逐字发送到远程linux ftp命令参数服务器,将返回单个的linux ftp命令参数回复代码,格式:literal argument [ ...],说明:argument 指定要发送到linuxftp命令参数服务器的参数。
l FTP>ls 显示远程目录文档和子目录的缩写列表,格式:ls [remote-directory] [local-file],说明:remote-directory 指定要查看其列表的目录,假如没有指定目录,将使用远程电脑中的当前工做目录,local-file 指定要存储列表的本地文档??假如没有指定,输出将显示在屏幕上。
l FTP>mdelete 删除远程电脑上的文档,格式:mdelete remote-files [ ...],说明:remote-files 指定要删除的远程文档。
l FTP>mdir 显示远程目录文档和子目录列表,可以使用 mdir 指定多个文档,格式:mdir remote-files [ ...] local-file,说明:remote-files 指定要查看列表的目录,必须指定 remote-files,请键入 - 使用远程电脑上的当前工做目录。local-file 指定要还原列表的本地文档,请键入- 在屏幕上显示列表。
l FTP>mget 使用当前文档传送类型将远程文档复制到本地电脑,格式:mget remote-files [ ...],说明:remote-files 指定要复制到本地电脑的远程文档。
l FTP>mkdir 建立远程目录,格式:mkdir directory,说明:directory 指定新的远程目录的名称。
l FTP>mls 显示远程目录文档和子目录的缩写列表,格式:mls remote-files [ ...] local-file,说明:remote-files 指定要查看列表的文档??必须指定remote-files;,请键入- 使用远程电脑上的当前工做目录。local-file 指定要存储列表的本地文档,请键入 - 以在屏幕上显示列表。
l FTP>mput 使用当前文档传送类型将本地文档复制到远程电脑上。格式:mput local-files [ ...],说明:local-files 指定要复制到远程电脑的本地文档。
l FTP>open 和指定的linux ftp命令参数服务器链接,格式:open computer [port],说明:computer 指定要链接的远程电脑??可以经过 IP 地址或电脑名称指定电脑(DNS 或主机文档必须可用),假如自动登陆打开(默认),ftp 还将尝试自动将用户登陆到linux ftp命令参数服务器port 指定用来联系linux ftp命令参数服务器的端口号。
l FTP>prompt 转换提示,假如关闭提示时 mget 及 mput 传送任何文档,linux ftp命令参数在多文档传送过程当中将提示容许您有选择地检索或存储文档,默认状况下,提示是打开的。
l FTP>put 使用当前文档传送类型将本地文档复制到远程电脑上,格式:put local-file [remote-file],说明:local-file 指定要复制的本地文档,remote-file指定要在远程电脑上使用的名称??假如没有指定,文档将命名为 local-file。
l FTP>pwd 显示远程电脑上的当前目录。
l FTP>quit 结束和远程电脑的linux ftp命令参数会话并退出linux ftp命令参数。
l FTP>quote 将参数逐字发送到远程linux ftp命令参数服务器,将返回单个的linux ftp命令参数回复代码。
l FTP>recv 使用当前文档传送类型将远程文档复制到本地电脑,Recv 和 get相同。格式:recv remote-file [local-file],说明:remote-file 指定要复制的远程文档,local-file指定要在本地电脑上使用的名称,假如没有指定,文档将命名为 remote-file。
l FTP>remotehelp 显示远程命令帮助,格式:remotehelp [command],说明:command 指定须要帮助的命令的名称,假如没有指定 command,linux ftp命令参数将显示所有远程命令的列表。
l FTP>rename 重命名远程文档,格式:rename filename newfilename,说明:filename 指定要重命名的文档,newfilename指定新的文档名。
l FTP>rmdir 删除远程目录,格式:rmdir directory,说明:directory 指定要删除的远程目录的名称。
l FTP>send 使用当前文档传送类型将本地文档复制到远程电脑上,Send 和put 相同,格式:send local-file [remote-file],说明:local-file 指定要复制的本地文档,remote-file指定要在远程电脑上使用的名称,假如没有指定,文档将命名为 local-file。
l FTP>status 显示linux ftp命令参数链接和转换的当前状态。
l FTP>trace 转换数据包跟踪,Trace 在运行linux ftp命令参数命令时显示每一个数据包的路由。
l FTP>type 配置或显示文档传送类型,格式:type [type-name],说明:type-name 指定文档传送类型,默认配置为 ascii,假如没有指定type-name,将显示当前的类型。
l FTP>user 指定远程电脑的用户,格式:user username [password] [account],说明:user-name 指定登陆到远程电脑所使用的用户名,password 指定 user-name 的密码,假如没有指定,但必须指定,linux ftp命令参数会提示输入密码。account 指定登陆到远程电脑所使用的账户,假如没有指定account,可是须要指定,linux ftp命令参数会提示您输入账户。
l FTP>verbose 转换 verbose 模式,假如打开,将显示任何 linux ftp命令参数响应,在文档传送完成后,将同时显示和传送效率有关的统计信息,默认状况下,verbose 是打开的。
sftp
sftp(安全文件传输协议)与ftp 有着几乎同样的语法和功能。FTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。它并不使用ftp守护进程(ftpd或wu-ftpd)来进行链接,而是有意义地加强系统的安全性。实际上,经过监视一些系统中的log文件,能够注意到不少攻击是针对于ftpd守护进程的。sftp避免了这些攻击从而能够中止在wu-ftpd上潜在的危险。SFTP自己没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的链接操做。使用SFTP是很是安全的。可是,因为这种传输方式使用了加密/解密技术,因此传输效率比普通的FTP要低得多,若是您对网络安全性要求更高时,可使用SFTP代替FTP。
用法举例:
(1) sftproot@10.48.30.192:/root/test.sh(直接将192上的文件复制到本地)
(2) sftproot@10.48.30.192:/root (直接链接到192的root目录下,这样就可使用getput等命令了)
sftp使用在数据链接上使用ssh2,因此文件的传输是尽量地安全。使用sftp代替ftp两个主要的的缘由是:
(1) password从不用明文传输,防止sniffer(嗅探器)的攻击。
(2) 数据在传输时被加密,使用刺探和修改链接很是困难。
使用sftp2是很是简单的。让咱们假设你使用了你的账户:myname经过sftp连按上了主机host1。可使用命令:sftp myname@host1。当sftp2准备好了来接受链接时,它将显示一个状态提示符 sftp>。在sftp手册中有完整的用户可使用的命令列表;其中有:
l quit:从这个应用程序中退出。
l cd directory:改变当前的远程工做目录。
l lcd directory:改变当前的本地工做目录。
l ls [ -r ] [ -l ] [ file ... ]:列出在远地服务器上的文件名。若是是目录,则列出目录的内容。当命令行中指定了-r,则递归地显示目录树。(默认状况下,子目录并不被访问)。当命令行中指定了-l,文件与目录的权限,属主,大小和修改时间被列出。当没有参数被指定,则.(当前目录)的内容被列出。普通状况下选项-r和-l是互相不兼容的。
l lls [ -r ] [ -l ] [ file ... ]:与ls同样,可是是对于本地文件操做。
l get [file ...]:从远程端传送指定的文件到本地端。目录内容被递归地复制。
l put [ file ... ]:从本地端传送指定的文件到远地端。目录内容被递归地复制。
l mkdir dir (rmdir dir):尝试创建或删除参数中指定的目录。
l 通配符对于ls,lls,get和put是支持的。格式在sshregex手册中有描述。
从sftp使用加密技术以来,一直有一个障碍:链接速度慢(有2-3倍),可是这一点对于很是好的安全性来说只能放在一边了。在一个测试中,局域网上的sniffer能够在一个小时中捉住ftp链接上的4个password.。sftp的使用能够从网络上传送文件而且除去这些安全问题。
lftp
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https须要在编译的时候包含openssl库)。llftp很是像一个shell: 有命令补全,历史记录,容许多个后台任务执行等功能,使用起来很是方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令行语法
(1) lftp [-d] [-e cmd] [-p port][-u user[,pass]] [site]
-e在选择后执行命令
-u [,] 使用指定的用户名/口令进行验证
-p 链接指定的端口
Site:主机名,URL 或书签的名字
(2) lftp -f script_file
执行文件中的命令后退出
(3) lftp -c commands
执行命令后退出
(4) lftp –version
显示 lftp 版本后退出
(5) lftp --help
显示帮助信息后退出
例子:
(1) 若是在命令行中输入的站点名称,lftp将直接登陆站点,好比
lftp ftp://.............
(2) 若是在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开
Lftp
lftp :~> open ftp://...................
经常使用命令
l 下载单个文件和一组文件,断点续传用-c参数
lftp ................:/> get -c ls-lR.txt
lftp ...............:/> mget *.txt
l 镜像(反镜像即上传)一个目录,能够用多个线程并行镜像一个目录(--parallel=N)
lftp ................:/> mirror incoming local_name
lftp ................:/> mirror -R local_name
lftp ................:/> mirror --parallel=3 incominglocal_name
l 多线程下载,相似网络蚂蚁的功能;缺省是5个线程
lftp ................:/> pget -n 4 ls-lR.txt
l 后台任务管理
缺省状况下,按 Ctrl+z,正在执行的任务将转为后台执行,也能够在命令行末尾加&符号使任务在后台执行。用jobs命令能够查看全部的后台进程。用queue命令能够排队新的任务。若是退出lftp是还有任务在后台执行,lftp将转为后台执行。
l 其它用法
lftp支持相似bash的管道操做,例如用下面的命令能够将ftp服务器上的特定目录下(也能够是整个站点)全部文件的大小存到本地的文件ls.txt中
lftp ................:/> du incoming > ls.txt
相关文件
(1) /etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc
(2) ~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf以后执行,因此这里面的设置会覆盖/etc/lftp.conf中的设置。
(3) lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在不少时候不方便,由于你有可能想知道这个服务器究竟是由于没开机连不上,仍是链接数已满。若是是这样,你能够在 ~/.lftprc 里写入一行,debug 3,就能够看到出错信息了。更多的配置选项请查man手册或在lftp界面内用命令 set -a 得到。
(4) ~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里
(5) ~/.lftp/bookmarks
这是lftp存储书签的地方,能够lftp查看bookmark命令
(6) ~/.lftp/cwd_history
这个文件用来存储访问过的站点的工做目录
(7) ~/.lftprc
在用lftp访问国内一些ftp服务器时,每每看到的中文是乱码。不用慌,这是因为服务器和本地编码不一致形成的。咱们只要在主目录下新建一个文件~/.lftprc或者~/.lftp/rc。并在其中加入如下内容:debug 3set ftp:charset GBKset file:charset UTF-8#setftp:passtive-mode no#alias utf8 " set ftp:charset UTF-8"#alias gbk" set ftp:charset GBK"
登陆ftp服务器:
lftpftp://user:password@site:port
lftpuser:password@site:port
lftpsite -p port -u user,password
lftpsite:port -u user,password
上面的几种方式都能正常工做,不过密码都是明文,这样好像不太安全哦。不要紧,使用lftp user@site:port,系统会提示输入password,密码就回显为******了,不过每次都输入这么多,好麻烦哦。若是有相似leapftp的站点管理器就行了,其实lftp早就给咱们想好了:这就是bookmark。后面咱们将会看到。
在终端运行如manlftp或登陆ftp后输入help就能够看到命令列表,下面咱们看一下lftp经常使用的命令:
(1) ls:显示远端文件列表(!ls显示本地文件列表)。
(2) cd:切换远端目录(lcd 切换本地目录)。
(3) get:下载远端文件。
(4) mget:下载远端文件(能够用通配符也就是 *)。
(5) pget:使用多个线程来下载远端文件, 预设为五个。
(6) mirror:下载/上传(mirror-R)/同步整个目录。
(7) put:上传文件。
(8) mput:上传多个文件(支持通配符)。
(9) mv:移动远端文件(远端文件更名)。
(10) rm:删除远端文件。
(11) mrm:删除多个远端文件(支持通配符)。
(12) mkdir:创建远端目录。
(13) rmdir:删除远端目录。
(14) pwd:显示目前远端所在目录(lpwd显示本地目录)。
(15) du:计算远端目录的大小
(16) !:执行本地 shell的命令(因为lftp 没有 lls, 故可用 !ls 来替代)
(17) Lcd:切换本地目录
(18) Lpwd:显示本地目录
(19) Alias:定义别名
(20) Bookmark:设定书签。
(21) Exit:退出ftp
(22) 快捷书签:ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;咱们能够直接修改此文件,快速登录ftp服务器。
wget
wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,便可跟踪 HTML 页面上的连接依次下载来建立远程服务器的本地版本,彻底重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级连接转换成指向本地文件,方便离线浏览。因为非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。
基本语法: wget [options][URL-list]
Options:
-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 设置目录前缀
例子:递归下载 http://www.ibm.com.cn 站点的信息。下载全部显示完整网页因此须要的文件,如图片等。在下载不进行上层目录搜索并将绝对连接转换为相对连接。
wget -r -p -np -k http://www.ibm.com.cn
将在本地硬盘创建http://www.ibm.com.cn 的镜像,镜像文件存入当前目录下一个名为 www.ibm.com.cn 的子目录中(也可使用 -nH 参数指定不创建该子目录,而直接在当前目录下创建镜像的目录结构),递归深度为 4,重试次数为无穷(若链接出现问题,wget 将永远重试下去,直至任务完成)
wget -m -l4 -t0 http://www.ibm.com.c
使用代理进行下载,并实现断点续传。代理能够在环境变量 PROXY 或 wgetrc 文件中设定。 -c 选项要求服务支持断点续传。
wget -Y on -c http://www.ibm.com.cn
curl
curl是对 libcurl 库的一个命令行工具包装。libcurl 库中提供了相应功能的 API,能够在程序中调用。 curl 使用 URL 的语法来传输文件,它支持 FTP, FTPS, HTTP, HTTPS, TFTP, SFTP, TELNET 等多种协议。 curl 功能强大,它提供了包括代理支持,用户认证,FTP 上载,HTTP post,SSL 链接,文件续传等许多特性。
基本语法:curl [options …] <url>
其中下载参数大约有 80 多个,curl 的各个功能彻底依靠这些参数来完成。下面举例说明 curl 的一些基本用法。
使用实例:
(1) 获取 GNU 的主页curl http://www.gnu.org
(2) 获取 GNU 的 FTP 服务器上根目录下的 README 文件curl ftp://ftp.gnu.org/README
(3) 从一个字典中获取 curl 的定义curl dict://dict.org/m:curl
(4) 若是须要指定用户名和密码的话,能够在 url 中指定,或者使用 -u 参数curl ftp://name:passwd@machine.domain:port/full/path/to/file或者curl -uname:passwd ftp://machine.domain:port/full/path/to/file
(5) curl 会将从指定 url 处获取的内容打印到标准输出上。若是须要保存在本地文件中,可使用 -o,或使用 -O 参数指定使用远程主机上的文件名(若是 url 中没有给出文件名的部分,则此操做将会失败)curl -o gnu.html http://www.gnu.org 或者curl -O http:///www.gnu.org/index.htm
(6) 使用 -x 选项来使用代理进行链接curl -x my-proxy:port ftp://ftp.somesite.com/READMEN
(7) 经过使用 curl 的 -T 选项来进行上载curl -T - ftp://ftp.upload.com/upfile,此命令从标准输入读取数据,并上载至远程 FTP 服务器上的 upfile 文件中。也能够指定上载一个本地文件curl -T localfile -a ftp://ftp.upload.com/upfile其中 -a 参数表示以添加方式将localfile 中的内容附加到 upfile 的末尾。
总的来讲,curl 适合用来进行自动的文件传输或操做序列,它是一个很好的模拟用户在网页浏览器上的行为的工具。尤为当须要在程序中调用时,libcurl 是个很好的选择。
传输速度
由于常常在服务器见进行文件传输,就对传输速度和带宽有要求,这里总结一下能够影响以上rcp,scp,rsync,ftp,sftp,lftp,wget,curl这6个命令的传输速度和带宽的参数:
(1) rcp:没有参数能够调整带宽和传输速度
(2) scp:若是传输的文件没有压缩,可使用-C参数(-C 使能压缩选项)。-c 选择使用那个加密算法,具体对应到ssh的-c cipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des),使用blowfish会快不少,能够参看man ssh 中的-c cipher-spec。可使用-l 限制使用带宽,Kbit/s。避免由于传输文件而影响其余程序使用带宽。-o ssh_option使用ssh选项
(3) rsync:-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节;-z, --compress 对备份的文件在传输时进行压缩处理;--bwlimit=KBPS 限制I/O带宽,KBytes per second ;-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
(4) ftp:FTP>ascii 将文档传送类型配置为默认的 ASCII。说明:linux ftp命令参数支持两种文档传送类型,ASCII 码和二进制图像,在传送文本文档时应该使用ASCII。Binary二进制传输。
(5) sftp: -B buffer_size, -C使用压缩,-ossh_option使用ssh选项
(6) lftp:能够调整进程数等
(7) wget: --limit-rate=amount限制带宽。
(8) curl:-B/--use-ascii和--ciphers<list of ciphers>,--compressed等。
总结
(1) 传输性能:wget 经过支持后台执行及断点续传提升文件传输效率; rsync 则以其高效的传输及压缩算法达到快传输的目的。
(2) 配置难度:rcp 只需进行简单的配置,建立.rhost文件以及设置/etc/hosts文件中主机名与IP地址列表; wget设置方便简单,只需在客户端指定参数执行命令便可; rsync 在使用前须要对服务端/etc/rsyncd.conf 进行参数设定,配置内容相对复杂。
(3) 安全性能:ftp、rcp不保证传输的安全性,scp、rsync则都可基于ssh 认证进行传输,提供了较强的安全保障。wget 也可经过指定安全协议作到安全传输。
经过上述的对比不难发现,每种文件传输方法基于其自身的特色与优点均有其典型的适用场景:
(1) ftp 做为最经常使用的入门式的文件传输方法,使用简单,易于理解,而且能够实现脚本自动化;可是须要安装ftp server才能够访问远程ftp server
(2) rcp 相对于ftp能够保留文件属性并可递归的拷贝子目录;
(3) scp 利用ssh传输数据,并使用与ssh相同的认证模式,相对于rcp提供更强的安全保障;
(4) wget实现递归下载,可跟踪HTML页面上的连接依次下载来建立远程服务器的本地版本,彻底重建原始站点的目录结构,适合实现远程网站的镜像;
(5) curl 则适合用来进行自动的文件传输或操做序列,是一个很好的模拟用户在网页浏览器上的行为的工具;
(6) rsync 更适用于大数据量的每日同步,拷贝的速度很快,相对wget来讲速度快且安全高效。
(7) sftp使用在数据链接上使用ssh2,因此文件的传输是尽量地安全。但传输速度慢。是ftp的替代品,比ftp安全,不能访问http资源。
(8) lftp能够访问ftp资源,也能够访问http资源。支持断点续传,多进程下载。
========================================================
1. Linux 终端链接FTP
[oracle@Dave ~]$ ftp 10.85.7.97
Connected to 10.85.7.97.
220 Serv-U FTP Server v6.4 for WinSock ready...
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Name (10.85.7.97:oracle): super
331 User name okay, need password.
Password: -- Linux 的密码是不回显的
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
若是FTP 容许匿名用户,那么用户名要输入anonymous,密码任意。 不能直接敲回车。
2. 查看FTP 命令
ftp> ?
Commands may be abbreviated. Commands are:
! cr mdir proxy send
$ delete mget sendport site
account debug mkdir put size
append dir mls pwd status
ascii disconnect mode quit struct
bell form modtime quote system
binary get mput recv sunique
bye glob newer reget tenex
case hash nmap rstatus trace
ccc help nlist rhelp type
cd idle ntrans rename user
cdup image open reset umask
chmod lcd passive restart verbose
clear ls private rmdir ?
close macdef prompt runique
cprotect mdelete protect safe
能够经过help command 查看每一个命令的说明
ftp> help put
put send one file
ftp> help mput
mput send multiple files
3. 上传文件
Put命令:格式:put local-file [remote-file] 将一个文件上传到ftp
Mput命令:格式:mput local-files 将本地主机中一批文件传送至远端主机.
注意:mput命令只能将当前本地目录下的文件上传到FTP上的当前目录。好比,在 /root/dave下运行的ftp命令,则只有在/root/dave下的文件linux才会上传到服务器上的当前目录下。
Put 代码示例:
ftp> pwd -- 显示FTP上当前路径
257 "/" is current directory.
ftp> ls -- 显示当前目录下的文件
227 Entering Passive Mode (10,85,7,97,16,141)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Aug 17 16:11 .
drw-rw-rw- 1 user group 0 Aug 17 16:11 ..
-rw-rw-rw- 1 user group 1433088 Feb 5 2010 ASPAJAXExtSetup_PConline_PConline.msi
-rw-rw-rw- 1 user group 197626837 Mar 8 10:00 DelphiV7.0.zip
drw-rw-rw- 1 user group 0 Jul 9 10:17 HHT
-rw-rw-rw- 1 user group 9235148 Dec 24 2009 Install_HSKey_V1.3.exe
-rw-rw-rw- 1 user group 47316992 May 27 16:38 Release_4.rar
ftp> mkdir Dave -- 建立文件夹Dave
257 "/Dave" directory created.
ftp> cd Dave -- 进入文件夹Dave
250 Directory changed to /Dave
ftp> pwd -- 显示当前目录
257 "/Dave" is current directory.
ftp> lcd -- 显示当前本地的路径,咱们能够将这个路径下的这个文件上传到FTP服务器的相关位置
Local directory now /home/oracle
ftp> ! -- 退出当前的窗口,返回Linux 终端,当咱们退出终端的时候,又会返回到FTP上。
[oracle@Dave ~]$ ls -- 显示当前目录下的文件
dead.letter scripts sqlnet.log
[oracle@Dave ~]$ vi Dave -- 建立文件 Dave
[oracle@Dave ~]$ vi DBA -- 建立文件 DBA
[oracle@Dave ~]$ ls -- 显示文件夹里的内容,等会咱们将这些文件copy到FTP上
Dave DBA dead.letter scripts sqlnet.log
[oracle@Dave ~]$ exit -- 退出终端,返回FTP命令行
exit
ftp> lcd
Local directory now /home/oracle
ftp> put DBA DBA -- 将刚才建立的文件DBA 上传到ftp的当前目录上并命名为DBA。
local: DBA remote: DBA
227 Entering Passive Mode (10,85,7,97,16,156)
150 Opening BINARY mode data connection for DBA.
226 Transfer complete.
5 bytes sent in 3.3e-05 seconds (1.5e+02 Kbytes/s)
ftp> put DBA /Dave/SFDBA -- 将刚才建立的文件DBA 上传到ftp的当前目录上并重命名为SFDBA。
local: DBA remote: /Dave/SFDBA
227 Entering Passive Mode (10,85,7,97,16,158)
150 Opening BINARY mode data connection for SFDBA.
226 Transfer complete.
5 bytes sent in 1.8e-05 seconds (2.7e+02 Kbytes/s)
ftp> put /home/oracle/DBA /test/SFDBA
local: /home/oracle/DBA remote: /test/SFDBA
227 Entering Passive Mode (10,85,7,97,16,163)
150 Opening BINARY mode data connection for SFDBA.
226 Transfer complete.
5 bytes sent in 2.2e-05 seconds (2.2e+02 Kbytes/s)
ftp> cd test
250 Directory changed to /test
ftp> ls
227 Entering Passive Mode (10,85,7,97,16,169)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Aug 17 17:11 .
drw-rw-rw- 1 user group 0 Aug 17 17:11 ..
-rw-rw-rw- 1 user group 5 Aug 17 17:11 SFDBA
-rw-rw-rw- 1 user group 5508 Aug 17 16:21 sqlnet.log
226 Transfer complete.
Mput 示例代码:
ftp> cd Dave
250 Directory changed to /Dave
ftp> mput *
mput alert_log.txt? -- 这里每一个文件都要确认,按回车键就能够了
227 Entering Passive Mode (10,85,7,97,16,196)
150 Opening BINARY mode data connection for alert_log.txt.
226 Transfer complete.
712 bytes sent in 2.9e-05 seconds (2.4e+04 Kbytes/s)
mput alert_newccs.hist?
227 Entering Passive Mode (10,85,7,97,16,197)
150 Opening BINARY mode data connection for alert_newccs.hist.
226 Transfer complete.
9321666 bytes sent in 0.78 seconds (1.2e+04 Kbytes/s)
mput alert_newccs.log?
227 Entering Passive Mode (10,85,7,97,16,198)
150 Opening BINARY mode data connection for alert_newccs.log.
226 Transfer complete.
21707 bytes sent in 0.0014 seconds (1.5e+04 Kbytes/s)
ftp> ls -- 显示目录下的文件
227 Entering Passive Mode (10,85,7,97,16,217)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Aug 17 17:22 .
drw-rw-rw- 1 user group 0 Aug 17 17:22 ..
-rw-rw-rw- 1 user group 5 Aug 17 17:09 SFDBA
-rw-rw-rw- 1 user group 712 Aug 17 17:21 alert_log.txt
-rw-rw-rw- 1 user group 9321666 Aug 17 17:21 alert_newccs.hist
-rw-rw-rw- 1 user group 21707 Aug 17 17:21 alert_newccs.log
226 Transfer complete.
ftp> delete SFDBA --删除SFDBA 文件
250 DELE command successful.
ftp> mdelete a* -- 批量删除文件
mdelete alert_log.txt? -- 每一个文件都要确认
250 DELE command successful.
mdelete alert_newccs.hist?
250 DELE command successful.
mdelete alert_newccs.log?
250 DELE command successful.
4. 下载文件
一样也有2个命令: get 和 mget。 Mget 用户批量下载。
格式:get [remote-file] [local-file]
mget [remote-files]
一样,mget 是将文件下载到本地的当前目录下。
Get 示例:
ftp> get /test/SFDBA /home/SFDBA
local: /home/SFDBA remote: /test/SFDBA
local: /home/SFDBA: Permission denied --Linux对权限控制的很严格,下载的时候是否有对应文件夹的写权限
ftp> get /test/SFDBA /home/oracle/SFDBA
local: /home/oracle/SFDBA remote: /test/SFDBA
227 Entering Passive Mode (10,85,7,97,17,0)
150 Opening BINARY mode data connection for SFDBA (5 Bytes).
226 Transfer complete.
5 bytes received in 6.2e-05 seconds (79 Kbytes/s)
ftp> !
[oracle@Dave bdump]$ cd /home/oracle/
[oracle@Dave ~]$ ls
Dave DBA dead.letter scripts SFDBA sqlnet.log
Mget 示例:
ftp> ls
227 Entering Passive Mode (10,85,7,97,17,10)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Aug 17 17:38 .
drw-rw-rw- 1 user group 0 Aug 17 17:38 ..
-rw-rw-rw- 1 user group 5 Aug 17 17:38 DBA
-rw-rw-rw- 1 user group 12 Aug 17 17:38 Dave
-rw-rw-rw- 1 user group 5 Aug 17 17:11 SFDBA
226 Transfer complete.
ftp> mget *
mget DBA? -- 每一个文件都要确认, 按回车便可
227 Entering Passive Mode (10,85,7,97,17,12)
150 Opening BINARY mode data connection for DBA (5 Bytes).
226 Transfer complete.
5 bytes received in 8.1e-05 seconds (60 Kbytes/s)
mget Dave?
227 Entering Passive Mode (10,85,7,97,17,13)
150 Opening BINARY mode data connection for Dave (12 Bytes).
226 Transfer complete.
12 bytes received in 8.3e-05 seconds (1.4e+02 Kbytes/s)
mget SFDBA?
227 Entering Passive Mode (10,85,7,97,17,14)
150 Opening BINARY mode data connection for SFDBA (5 Bytes).
226 Transfer complete.
5 bytes received in 9e-05 seconds (54 Kbytes/s)
ftp> !
[oracle@Dave ~]$ ls
Dave DBA dead.letter scripts SFDBA sqlnet.log
说明的地方:FTP 当前目录下的文件下载到本地的当前目录。
5. 断开FTP 链接
Bye命令或者quit命令:中断与服务器的链接。
ftp> bye
221 Goodbye!
FROM:http://blog.csdn.net/emili/article/details/6858818
http://blog.csdn.net/tianlesoftware/article/details/5818990