客户一套Prod环境,一套多个节点的tomcat,在其中一套搭建了ftp,用的是自带的vsftpd,版本信息如下:
[root@hostname vsftpd]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.1 (Tikanga)
Release: 5.1
Codename: Tikanga
[root@hostname1 vsftpd]# rpm -q vsftpd
vsftpd-2.0.5-10.el5
[root@hostname1 vsftpd]# strings /etc/localtime
TZif2
p ~h
!Iap"^J
#)Cp$Gg
TZif2
!Iap
#)Cp
CST-8
[root@hostname1 vsftpd]# date -R
Mon, 21 Nov 2011 21:39:21 +0800
现在出现的问题是,在客户端看到的ftp上的文件的时间都不对,比当前时间晚了几个小时。
测试的客户端包括:
0)windows自带的命令行客户端
1)flashfxp
2)xftp
测试的文件生成方式:
0)创建文件夹
1)创建文件
2)上传文件和文件夹
3)在ftp服务器操作系统command下touch或者mkdir文件
上述客户端和方式交叉着测试,发现了这个问题后觉得是时区的问题,先后检查了操作系统时区时间,客户端时区时间,都是正确的设置,想起了之前印象中的处理方式,修改vsftpd配置增加使用当前时区:
vi /etc/vsftpd/vsftpd.conf
# add
use_localtime=YES
保存后重启vsftpd,使用的命令是:
service csftpd restart
命令执行成功后,再次使用多种客户端进行各项操作,发现还是错误,而且时间变得更晚了,变成明天的时间了,靠,还是无果,上google去,同事也在帮忙找解决办法,快下班了,同事无果,领导有点着急了过来询问情况,当时边沟通边继续google,结果功夫不负有心人,找到了解决办法,原来是执行vsftpd的服务的命令问题:
0)/etc/init.d/vsftpd restart
使用上述命令重启vsftpd的是没有问题。
终极解决办法可以在环境变量中加上如下变量:
1)TZ=Asia/Shanghai
然后就可以正常的使用service csftpd restart命令来管理vsftpd。
上述两种方式均测试过,而且在后来我把vsftpd.conf中加入的”use_localtime=YES”也去掉了,也都能够正常显示文件和目录时间了。
-The End-