公司采用FTP的方式接收客户的EDI订单,近日客户说某某订单很久前已经通过FTP发送给我们了,为何还没发货,但经过我的反复检查,没发现FTP上有该订单,但客户坚持说已经上传了,看来要解决此纠纷只有查看FTP上的操作日志,用数据来说话了。
公司FTP是基于Linux使用proftpd软件来架设的,首先查看proftpd的配置文件:
vi /etc/proftpd.conf
得知Log文件的路径,如上图红圈所示。
截取某个客户ftp帐号操作部分的日志内容,并且另存到新文件里:(下例中帐号为:ftpwbshop)
cat xferlog.processed|grep ftpwbshop > /home/ftpwbshop.log
可以得到多行如下的日志内容:
Thu Dec 3 10:46:32 2009 0 120.32.171.4 2236 /vhost/vhostroot/cycxm2/www/uploadfile/20090307132822145.jpg a _ d r cycxm2 ftp 0 * c
该记录每一个参数分别对应如下:
current-time 传输发生时刻 Fri Jan 9 10:07:20 2004
transfer-time 传输持续时间 0 秒
remote-host 远程 ftp 客户机的地址 192.168.0.88
file-size 传输文件大小 320 B
file-name 传输文件名 /home/redflag/partitioninfo
transfer-type 传输类型 b 表示为二进制传输,a 表示 ascii 传输
special-action-flag 特殊行为标记 _ ,C 表示 被压缩的文件、U 表示 未被压缩、 T 表示被 tar 、_表示没有特殊行为
direction 方向 i,为上传,o为下载,d表示删除
access- mode r 表示 为系统用户,a 为 anonymous 用户
username 用户名 redflag
service-name 被调用的 ftp 服务器软件名字
authentication-method 认证方式,0 表示没有
authen- ticated-user-id * 表示 没有认证用户id
completion-status 传输完成状态 c 表示完成,i 表示没有完成