ncftp与传统的ftp相比,主要有以下改进或变化:详细内容见其官方网站:http://www.ncftp.com/
(1) 子目录下载,采用递归的方法,下载整个目录及其子目录。
(2) 支持断点续传。一次传输没有完成,下次可以接着传输未完成的文件。
(3) 匿名ftp自动登录。目前大部分ftp站点都可以匿名登录,ncftp可以自动登录(默认方式)。
(4) 支持通过防火墙传输和代理服务器。
(5) 支持书签功能,可以将某个位置存在书签中方便以后直接跳转。
(6) 可以显示下载进度。
(7) 显示传输速率。
(8) 文件列表自动满页暂停。当ls文件列表超过一屏,ncftp会自动暂停,等待任意键继续。
(9) 默认是以binary方式传输数据。
(10) 支持文件名自动完成。例如服务器上有文件download.list,您只要输入get down<TAB>,系统可以自动填充文件名为download.list。
(11) 自动记忆站点的离开时的目录,下次登录会自动进入那个目录。
安装ncftp
# apt-get install ncftp
编译安装: # wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.5-src.tar.gz # tar zxvf ncftp-3.2.5-src.tar.gz # cd ncftp-3.2.5/ # ./configure --prefix=/usr/local/ncftp # make && make install # ln -s /usr/local/ncftp/bin/ncftp /usr/bin/ncftp
链接服务器:
#ncftp -u username -p password yourhost
登录主机的ftp后和本地的操作类似
基本功能:
ls cd 查看服务器端的目录
lls lcd 查看本地的目录
get 下载文件
下载单个文件:get filename
批量下载多个文件:使用空格或* get ble*
put 上传文件
上传单个文件:put filename
上传多个文件:使用空格或* put ble*
上传目录:put -R 目录名
ncftpget
ncftpget ftp://ftp.shike.me/linux/test.zip
ncftpput
ncftpput [flags] remote-host remote-dir local-files...
ncftpput ftp.shiek.me /linux test.zip
高级功能:
批处理及计划任务:bash及cron
附: ncftp命令参数
(1) ncftpput命令参数
可以实现在shell脚本中自动连接上传数据。
-u ftp帐户
-p ftp密码
-P ftp端口号
-m 在传之前尝试在目录位置创建目录(用于传目录的情况)
-R 递规传子目录
# ncftpput -u FTP帐号 -p FTP密码 -P FTP端口 -m -R <FTP服务器IP> <远程目录> <本地目录>
示例:
将本地/etc/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
# /usr/local/ncftp/bin/ncftpput -u koumm -p koumm -P 21 -m -R 192.168.162.137 flv/games/ /etc/*
(2) ncftp命令参数
ascii cat get lookup mkdir pwd set
bgget cd help lpage open quit show
bgput chmod jobs lpwd page quote site
bgstart close lcd lrename passive rename type
binary debug lchmod lrm pdir rhelp umask
bookmark dir lls lrmdir pls rm version
bookmarks edit lmkdir ls put rmdir
命令说明:
ncftp的基本命令和普通ftp一样,可以输入help获得命令列表。对于所有的命令,都可以使用help <命令>的格式获得详细帮助。l开头的就是对本地执行的命令,其它的就是对登入的ftp服务目录的操作命令。
增加的本地文件系统的操作命令:
lls: 列出本地当前目录文件;
lmkdir : 本地建立目录;
lrename: 本地文件改名;
lpwd: 显示当前本地路 径;
lchmod: 改变本地文件权限;
lpage: 显示本地文件内容;
lrm: 删除本地文件;
lrmdir: 删除本地目录。
示例1: 不用用户登陆的话就是匿名登陆
ncftp 192.168.162.138
ncftp / >
示例2: 上传
命令说明:lcd到本地的目的目录,put -R 目录名
ncftp 192.168.162.138
ncftp / >lcd /da
ncftp / > lls
abc/ bak/ ddd/
ncftp / >put -R abc
ncftp / > put -h
Usage: put [-flags] file1 [file2…]
Flags:
-z : Send the local file file1, and name the remote copy to file2.
-f : Force overwrite (do not try to auto-resume transfers).
-a : Send files using ASCII mode.
-A : Append entire local file to the remote file.
-R : Recursive. Useful for sending whole directories.
ncftp / >
说明: 经测试,上传命令对目录的递规支持比较好,子目录及其文件都能传,下载就不行了,只能当前目录下的文件一级目录及文件进行下载,子目录就不行了。
(3) ncftpget
格式:
ncftpget -u 帐号 -p 密码 远程服务器IP 上传的目录 本地上传文件
示例:
# ncftpget -u anonymous 218.108.*.* /da
You can retrieve an entire directory tree of files by using the -R flag. However, this will work only if the remote FTP server is a UNIX server, or emulates UNIX’s list output. Example: $ ncftpget -R http://ftp.ncftp.com /tmp /pub/ncftp This would create a /tmp/ncftp hierarchy.