常见的vsftpd日志解决方案

在vsftpd.conf中有如下内容定义了日志的记录方式:


# 表明FTP服务器记录上传下载的情况
xferlog_enable=YES 
# 表明将记录的上传下载情况写在xferlog_file所指定的文件中,即xferlog_file选项指定的文件中
xferlog_std_format=YES 
xferlog_file=/var/log/xferlog 
# 启用双份日志。在用xferlog文件记录服务器上传下载情况的同时,
# vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也将用来记录服务器的传输情况
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log


vsftpd的两个日志文件分析如下:

/var/log/xferlog

记录内容举例


Thu Sep 6 09:07:48 2007 7 192.168.57.1 4323279 /home/student/phpMyadmin-2.11.0-all-languages.tar.gz b -i r student ftp 0 * c


/var/log/vsftpd.log

记录内容举例

Tue Sep 11 14:59:03 2007 [pid 3460]    CONNECT: Client "127.0.0.1"
Tue Sep 11 14:59:24 2007 [pid 3459] [ftp] OK LOGIN;Client "127.0.0.1" ,anon password ”?"

/var/log/xferlog日志文件中数据的分析和参数说明

记录数据

 

参数名称

 

参数说明

 

Thu Sep 6 09:07:48 2007

 

当前时间

 

当前服务器本地时间,格式为: 

DDD MMM dd hh:mm:ss YYY

 

7

 

传输时间

 

传送文件所用时间,单位为秒

 

192.168.57.1

 

远程主机名称/IP

 

远程主机名称/IP

 

4323279

 

文件大小

 

传送文件的大小,单位为byte

 

/home/student/phpMyadmin-

2.11.0-all-languages.tar.gz

 

文件名

 

传输文件名,包括路径

 

b

 

传输类型

 

传输方式的类型,包括两种:

a以ASCII传输 b以二进制文件传输

 


 

特殊处理标志

 

特殊处理的标志位,可能的值包括:

_ 不做任何特殊处理

C 文件是压缩格式

U 文件是非压缩格式

T 文件是tar格式

 

i

 

传输方向

 

文件传输方向,包括两种:

o 从FTP服务器向客户端传输

i 从客户端向FTP服务器传输

 

r

 

访问模式

 

用户访问模式,包括:

a 匿名用户

g 来宾用户

r 真实用户,即系统中的用户

 

student

 

用户名

 

用户名称

 

ftp

 

服务名

 

所使用的服务名称,一般为FTP

 

0

 

认证方式

 

认证方式,包括:

0 无

1 RFC931认证

 

*

 

认证用户id

 

认证用户的id,如果使用*,则表示无法获得该id

 

c

 

完成状态

 

传输的状态:

c 表示传输已完成

i 表示传输示完成

 


最后,介绍常见的FTP命令,以及FTP数字代码的意义。

常见FTP命令及其功能

FTP命令

 

功能

 

FTP命令

 

功能

 

ls

显示服务器上的目录

 

ls [remote-dir][local-file]

 

显示远程目录remote-dir,并存入本地文件local-file

 

get remote-file [local-file]

从服务器下载指定文件到客户端 

 

mget remote-files

 

下载多个远程文件(mget命令允许用通配符下载多个文件)

 

put local-file [remote-file]

从客户端上传指定文件到服务器

 

mput local-file

 

将多个文件上传至远程主机(mput命令允许用通配符上传多个文件)

 

open

连接FTP服务器

 

mdelete [remote-file]

 

删除远程主机文件

 

close

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

 

mkdir dir-name

 

在远程主机中创建目录

 

open host[port]

建立指定的ftp服务器连接,可指定连接端口

 

newer file-name

 

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

 

cd directory

改变服务器的工作目录

 

rename [from][to]

 

更改远程主机的文件名

 

lcd directory

在客户端上(本地)改变工作目录

 

pwd

 

显示远程主机的当前工作目录

 

bye

退出FTP命令状态

 

quit

 

同bye,退出ftp会话

 

ascii

设置文件传输方式为ASCII模式

 

reget remote-file [local-file]

 

类似于get,但若local-file存在,则从上次传输中断处续传

 

binary

设置文件传输方式为二进制模式

 

rhelp [cmd-name]

 

请求获得远程主机的帮助

 

![cmd [args]]

在本地主机中交互shell后退回到ftp环境,如:!ls *.zip

 

rstatus [file-name]

 

若未指定文件名,则显示远程主机的状态,否则显示文件状态

 

accout [password]

提供登录远程系统成功后访问系统资源所需的密码

 

hash

 

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

 

append local-file [remote-file]

将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名

 

restart marker

 

从指定的标志marker处,重新开始get或put,如restart 130

 

bye

退出ftp会话过程

 

rmdir dir-name

 

删除远程主机目录

 

case

在使用mget命令时,将远程主机文件名中的大写转为小写字母

 

size file-name

 

显示远程主机文件大小,如:

size idle 7200

 

cd remote-dir

进入远程主机目录

 

status

 

显示当前ftp状态

 

cdup

进入远程主机目录的父目录

 

system

 

显示远程主机的操作系统

 

delete remote-file

删除远程主机文件

 

user user-name [password][account]

 

向远程主机表明自己的身份,需要密码时,必须输入密码,如:user anonymous my@email

 

dir [remote-dir][local-file]

显示远程主机目录,并将结果存入本地文件

 

help [cmd]

 

显示ftp内部命令cmd的帮助信息,如help get

 

FTP数字代码的意义


110 重新启动标记应答。 120 服务在多久时间内ready。 125 数据链路端口开启,准备传送。 150 文件状态正常,开启数据连接端口。 200 命令执行成功。 202 命令执行失败。 211 系统状态或是系统求助响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215 名称系统类型。 220 新的联机服务ready。 221 服务的控制连接端口关闭,可以注销。 225 数据连结开启,但无传输动作。 226 关闭数据连接端口,请求的文件操作成功。 227 进入passive mode。 230 使用者登入。 250 请求的文件操作完成。 257 显示目前的路径名称。 331 用户名称正确,需要密码。 332 登入时需要账号信息。 350 请求的操作需要进一部的命令。 421 无法提供服务,关闭控制连结。 425 无法开启数据链路。 426 关闭联机,终止传输。 450 请求的操作未执行。 451 命令终止:有本地的错误。 452 未执行命令:磁盘空间不足。 500 格式错误,无法识别命令。 501 参数语法错误。 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 未登入。 532 储存文件需要账户登入。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553 未执行请求的的命令,名称不正确。