如何让vsftpd支持中文日志
作为一个ftp管理员,主要工作莫过于对数据的统计分析,及时调整内容。linux下最流行的ftp就是vsftp了,可vsftpd天生有个弱点,不支持中文日志。如果你检查位于/var/log/vsftpd.log就会发现中文目录和文件名变成了一个个的??
寻了很久都没有找到方法,今日,在一个网页上发现一个朋友找到了办法:直接修改一个源代码文件,就可以直接支持中文日志了。
但我的系统用的是rpm包安装的,不同于山寨的tar包,很多路径和设置的pam都不同。怎么办呢?我先按高手的方法测试一下,看看
从internate的角落里搜刮到2.0.5的一个tar.gz包,下载,解压,修改安装后,发现确实管用。日志立刻变成了中文,解决了一个头疼的问 题。但是,每次机器重新启动后都要手动启动vsftp服务,或者去xinie里手工修改。能不能直接利用rpm的源代码包进行修改呢?实践后发现是可以 的。
首先需要找到rpm的源代码包,我们可以从以下的地方找到:
1、安装光盘包里,在正式购买的rpm包里包含了4张源代码盘,我们可以从中直接将rpm文件拷贝到linux下的临时文件夹里,也可以直接在/mnt/cdrom中执行
src的意思就是源代码
安装后,文件被解压缩到
进入以后可以发现
有一个vsftp-2.0.3.tar.gz的软件包,将它解压缩
会生成一个vsftp-2.0.3的目录
进入后,用vi编辑logging.c文件找到
注释掉,因为是c语言用//就可以了
作为一个ftp管理员,主要工作莫过于对数据的统计分析,及时调整内容。linux下最流行的ftp就是vsftp了,可vsftpd天生有个弱点,不支持中文日志。如果你检查位于/var/log/vsftpd.log就会发现中文目录和文件名变成了一个个的??
寻了很久都没有找到方法,今日,在一个网页上发现一个朋友找到了办法:直接修改一个源代码文件,就可以直接支持中文日志了。
但我的系统用的是rpm包安装的,不同于山寨的tar包,很多路径和设置的pam都不同。怎么办呢?我先按高手的方法测试一下,看看
从internate的角落里搜刮到2.0.5的一个tar.gz包,下载,解压,修改安装后,发现确实管用。日志立刻变成了中文,解决了一个头疼的问 题。但是,每次机器重新启动后都要手动启动vsftp服务,或者去xinie里手工修改。能不能直接利用rpm的源代码包进行修改呢?实践后发现是可以 的。
首先需要找到rpm的源代码包,我们可以从以下的地方找到:
1、安装光盘包里,在正式购买的rpm包里包含了4张源代码盘,我们可以从中直接将rpm文件拷贝到linux下的临时文件夹里,也可以直接在/mnt/cdrom中执行
rpm -ivh *.src.rpm |
src的意思就是源代码
安装后,文件被解压缩到
/usr/src/redhat/SOURCE |
进入以后可以发现
有一个vsftp-2.0.3.tar.gz的软件包,将它解压缩
tar -zvxf vsftp-2.0.3.tar.gz |
会生成一个vsftp-2.0.3的目录
进入后,用vi编辑logging.c文件找到
str_replace_unprintable(p_str, '?'); |
注释掉,因为是c语言用//就可以了
//str_replace_unprintable(p_str, '?'); 完成了关键的一步,但我们怎么能将它重新生成rpm包呢? 很简单,用tar把vsftp-2.0.3目录打包成vsftp-2.0.3.tar.gz包 回到/usr/src/redhat/SPECS目录下 执行 rpmbuild -dd *.specs |
生成的2进制文件
生成的文件在/usr/src/rehat/RPM/i386下
然后用rpm -ivh vsftpd-2.0.3.rpm就可以安装了,省去使用tar包后,手工添加各种服务和协议的麻烦了。
独创方法呀,赫赫。
编译好的,在http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=4648