Usage of Ftp

本文介绍如何通过配置FTP服务实现Windows与Linux之间的文件传输。包括编辑FTP服务配置文件,激活服务,以及详细的FTP命令介绍。

本文主要介绍使用ftp实现WindowsLinux之间的文件传输。很多时候我们需要将文件上传到数据库服务器,或者将数据库服务器的文件下载到本地,方法有很多,个人比较喜欢使用ftp命令来实现这些功能。以下是ftp的配置和使用简介。如果init.d中没有xinetd,则需要从安装xinetd服务。

一.  ftp配置

1.root身份登录,进入终端

2.开启ftp服务

  编辑ftp服务配置文件gssftp的设置,将红色标注部分更改为如下设置。

  [root@~]# vi /etc/xinetd.d/gssftp

# default: off

# description: The kerberized FTP server accepts FTP connections /

#              that can be authenticated with Kerberos 5.

service ftp

{

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/kerberos/sbin/ftpd

        server_args     = -l

        log_on_failure  += USERID

        disable         = no

}

3.开启telnet服务

  编辑telnet服务配置文件krb5-telnet的设置,将红色标注部分更改为如下设置。

  [root@~]# vi /etc/xinetd.d/krb5-telnet

# default: off

# description: The kerberized telnet server accepts normal telnet sessions, /

#              but can also use Kerberos 5 authentication.

service telnet

{

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/kerberos/sbin/telnetd

        log_on_failure  += USERID

        disable         = no

}

4.激活服务

telnet /ftp是挂在 xinetd下的,只需重新激活 xinetd 就能够将telnet /ftp激活。

[root@ ~]# service xinetd restart

Stopping xinetd: [  OK  ]

Starting xinetd: [  OK  ]

二.  ftp命令简介

FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中

 -v显示远程服务器的所有响应信息;

-n限制ftp的自动登录,即不使用;

.n etrc文件;

-d使用调试方式;

-g取消全局文件名。

ftp使用的内部命令如下(中括号表示可选项):

1.![cmd[args]]:在本地机中执行交互shellexit回到ftp环境,如:!ls*.zip.

2.$ macro-ame[args]:执行宏定义macro-name.

3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。

4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

5.ascii:使用ascii类型传输方式。

6.bell:每个命令执行完毕后计算机响铃一次。

7.bin:使用二进制文件传输方式。

8.bye:退出ftp会话过程。

9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。

10.cd remote-dir:进入远程主机目录。

11.cdup:进入远程主机目录的父目录。

12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out

13.close:中断与远程服务器的ftp会话(open对应)

14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

15.delete remote-file:删除远程主机文件。

16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug

17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file

18.disconnection:同close

19.form format:将文件传输方式设置为format,缺省为file方式。

20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file

21.glob:设置mdeletemgetmput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

22.hash:每传输1024字节,显示一个hash符号(#)

23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get

24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

25.image:设置二进制传输方式(binary)

26.lcd[dir]:将本地工作目录切换至dir

27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file

28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

29.mdelete[remote-file]:删除远程主机文件。

30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile

31.mget remote-files:传输多个远程文件。

32.mkdir dir-name:在远程主机中建一目录。

33.mls remote-file local-file:同nlist,但可指定多个文件名。

34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。

35.modtime file-name:显示远程主机文件的最后修改时间。

36.mput local-file:将多个文件传输至远程主机。

37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file

39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1$2].[$2$3],则传输文件a1.a2.a3时,文件名变为a1a2。该命令特别适用于远程主机为非UNIX机的情况。

40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR

41.open host[port]:建立指定ftp服务器连接,可指定连接端口。

42.passive:进入被动传输方式。

43.prompt:设置多个文件传输时的交互提示。

44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

45.put local-file[remote-file]:将本地文件local-file传送至远程主机。

46.pwd:显示远程主机的当前工作目录。

47.quit:同bye,退出ftp会话。

48.quote arg1arg2...:将参数逐字发至远程ftp服务器,如:quote syst.

49.recv remote-file[local-file]:同get

50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。

51.rhelp[cmd-name]:请求获得远程主机的帮助。

52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。

53.rename[from][to]:更改远程主机文件名。

54.reset:清除回答队列。

55.restart marker:从指定的标志marker处,重新开始getput,如:restart 130

56.rmdir dir-name:删除远程主机目录。

57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1.2等。

58.send local-file[remote-file]:同put

59.sendport:设置PORT命令的使用。

60.site arg1arg2...:将参数作为SITE命令逐字发送至远程ftp主机。

61.size file-name:显示远程主机文件大小,如:site idle 7200

62.status:显示当前ftp状态。

63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。

64.sunique:将远程主机文件名存储设置为唯一(runique对应)

65.system:显示远程主机的操作系统类型。

66.tenex:将文件传输类型设置为TENEX机的所需的类型。

67.tick:设置传输时的字节计数器。

68.trace:设置包跟踪。

69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3

71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email

72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.

        73.?[cmd]:同help

### FTP协议概述 文件传输协议(File Transfer Protocol, FTP)是一种用于在网络上进行文件传输的标准协议[^1]。FTP允许用户连接到远程计算机并执行诸如上传、下载以及管理服务器上的文件等操作。 ### 工作原理 FTP基于客户端-服务器架构模型运行,在此模式下有两个主要组件:一个是作为服务端提供资源访问权限的FTP服务器;另一个则是发起请求并与之交互以获取所需数据或者发送本地文件至目标位置的应用程序即FTP客户端[^2]。当建立会话时,通常涉及两个独立但关联着的数据通道——控制命令链接和实际资料传送线路: - **控制连接**:负责传递指令集及相关响应消息; - **数据连接**:专门用来处理具体文档实体交换事务。 为了确保通信安全性和效率,FTP支持两种不同的工作方式来决定哪个方向主动打开第二个物理链路用于传输对象内容: - 主动模式(Active Mode) - 被动模式(Passive Mode) 这两种方法解决了防火墙配置可能带来的障碍问题,并适应不同网络环境下的需求特点[^3]。 ### 应用场景 FTP广泛应用于各种互联网业务流程之中,特别是在以下领域发挥重要作用: - 大规模静态网页托管平台更新维护作业 - 开发者之间共享源码库版本控制系统集成接口实现方案设计思路交流讨论场合 - 企业内部局域网环境下个人电脑同中心存储设备间定期备份同步机制构建实践案例分析报告撰写参考资料收集整理过程中的应用实例说明[^4] ```python import ftplib def connect_ftp(server_address, username=None, password=None): ftp = ftplib.FTP(server_address) try: if username and password: ftp.login(user=username, passwd=password) else: ftp.login() # anonymous login print(ftp.getwelcome()) return ftp except Exception as e: print(f"Failed to connect: {e}") raise # Example usage of connecting to an FTP server connect_ftp('test.rebex.net', 'demo', 'password') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值