Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1065330
  • 博文数量: 239
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 3618
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-12 13:17
文章分类

全部博文(239)

文章存档

2021年(1)

2016年(1)

2015年(30)

2014年(91)

2013年(116)

分类: LINUX

2013-06-17 18:37:25

ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ftp操作将会非常容易。
Linux ftp命令的一般格式如下:
$ ftp 主机名/IP
其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令:
$ ftp
ftp >
此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。
不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。
如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。
如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。
一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。

最常用的命令有:
FTP>ascii: 设定以ASCII方式传送文件(缺省值) 
FTP>bell: 每完成一次文件传送,报警提示. 
FTP>binary: 设定以二进制方式传送文件. 
FTP>bye: 终止主机FTP进程,并退出FTP管理方式. 
FTP>case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. 
FTP>cd: 同UNIX的CD命令. 
FTP>cdup: 返回上一级目录. 
FTP>chmod: 改变远端主机的文件权限. 
FTP>close: 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. 
FTP>delete: 删除远端主机中的文件. 
FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. 
FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中. 
FTP>help [command] 输出命令的解释. 
FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. 
FTP>ls [remote-directory] [local-file] 同DIR. 
FTP>macdef: 定义宏命令. 
FTP>mdelete [remote-files] 删除一批文件. 
FTP>mget [remote-files] 从远端主机接收一批文件至本地主机. 
FTP>mkdir directory-name 在远端主机中建立目录. 
FTP>mput local-files 将本地主机中一批文件传送至远端主机. 
FTP>open host [port] 重新建立一个新的连接. 
FTP>prompt: 交互提示模式. 
FTP>put local-file [remote-file] 将本地一个文件传送至远端主机中. 
FTP>pwd: 列出当前远端主机目录. 
FTP>quit: 同BYE. 
FTP>recv remote-file [local-file] 同GET. 
FTP>rename [from] [to] 改变远端主机中的文件名. 
FTP>rmdir directory-name 删除远端主机中的目录. 
FTP>send local-file [remote-file] 同PUT. 
FTP>status: 显示当前FTP的状态. 
FTP>system: 显示远端主机系统类型. 
FTP>user user-name [password] [account] 重新以别的用户名登录远端主机. 
FTP>? [command]: 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
FTP>! 从 ftp 子系统退出到外壳。

下面简单将ftp常用命令作一简介。
◆启动ftp会话 
open命令用于打开一个与远程主机的会话。该命令的一般格式是:
◆open 主机名/IP
如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。
◆终止ftp会话 
close、disconnect、和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。
◆改变目录 
“cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。
◆远程目录列表 
ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:
ls [目录] [本地文件]
如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。
◆从远程系统获取文件 
get和mget命令用于从远程机上获取文件。get命令的一般格式为:
get 文件名
您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。
mget命令一次获取多个远程文件。mget命令的一般格式为:
mget 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。
◆向远程系统发送文件 
put和mput命令用于向远程机发送文件。Put命令的一般格式为:
put 文件名
mput命令一次发送多个本地文件,mput命令的一般格式为:
mput 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。
◆改变文件传输模式 
默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。
◆检查传输状态 
传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。
◆ftp中的本地命令 
当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。


1. ftp自动登录批量下载文件。

#####从ftp服务器上的/home/data 到 本地的/home/databackup####
#!/bin/bash
ftp -n<
open 192.168.1.100
user ftp01 password
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
!
2. ftp自动登录上传文件。


####本地的/home/databackup to ftp服务器上的/home/data####

#!/bin/bash
ftp -n<
open 192.168.1.100
user ftp01 password
binary
hash
cd /home/data
lcd /home/databackup
prompt
mput *
close
bye
!

3. ftp自动登录下载单个文件。
####ftp服务器上下载/home/data/a.sh to local /home/databackup####
#!/bin/bash
ftp -n<
open 192.168.1.100
user ftp01 password
binary
cd /home/data
lcd /home/databackup
prompt
get a.sh a.sh 
close
bye
!

4. ftp自动登录上传单个文件。
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp -n<
open 192.168.1.100
user ftp01 password
binary
cd /home/data
lcd /home/databackup
prompt
put a.sh a.sh 
close
bye
!
小知识:
1. -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)
2. << 是使用即时文件重定向输入。
3. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

阅读(2569) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~