包括vsftpd的yum安装、源码安装、服务启动、停止,以及最终的服务控制脚本

 

vsftpd启动:

启动脚本:/etc/rc.d/init.d/vsftpd

或者直接执行可执行文件/usr/sbin/vsftpd

 

安装 开启:

yum –y install vsftpd

which vsftpd    //查看对应可执行文件的位置

/usr/sbin/vsftpd &   //执行

netstat -tnlp    //查看端口情况      -t tcp         -u udp       -n number         -l listening         -p pid哪个进程打开的

 

 

关闭:

killall vsftpd

或者ps aux | grep vsftpd        再关闭

 

源码编译安装:

现有开发环境:yum grouplist

查看是否有development libraries和tools

yum groupinstall “Development Libraries”

// 现装tools再装libraries

下载:

tar xf vsftpd-2.3.5.tar.gz

cd vsftpd-2.3.5         //无conf文件 不需配置

ls  //有个builddefs.h     可以设置(不必须)#define启用 undef不启用 关键的PAM 暂时禁用

make

make install              //无配置文件 此处可以看见安装到/usr/local/sbin/vsftpd而不是/usr/sbin/vsftpd

mkdir /etc/vsftpd     //手动配置

ls                                  //还在vsftpd-2.3.5目录下     有个vsftpd.conf文件为配置文件样本

cp vsftpd.conf /etc/vsftpd

 

 

运行条件:

id nobody

id ftp

finger ftp           //查看家目录是否为/var/ftp

运行指令:

/usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &             //告诉它配置文件在哪 后台运行

查看状态:

netstat –tnlp

 

 

写服务控制脚本:

 

此种安装的vsftpd在/etc/rc.d/init.d下不会生成脚本:

需要自己写脚本:(在function那一节中有讲解)

例:vsftpd.sh 在家目录下:

LOCKFILE=/var/lock/subsys/vsftpd

start() {

[ ! –e $LOCKFILE ] && /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &                 //注意如果$LOCKFILE已存在那么不会运行

[ $? –eq 0 ] &&touch $LOCKFILE && return 0 || return 1

}

stop() {

[ ! –e $LOCKFILE ] && killall vsftpd

[ $? –eq 0 ] && return 0 || return 1

}

case $1 in

start)

start

[ $? –eq 0 ] && echo “starting vsftpd”

;;

stop)

stop

if [ $? –eq 0 ]; then

echo –e “stop  ok”

else

echo –e “stop failed”

fi

;;

restart)

stop

sleep 1

start

;;

*)

echo “Usage:’basename $0’ {start|stop}”               //basename 基名,最后一段的名字

;;

esac

 

####################################################

cp vsftpd.sh /etc/rc.d/init.d/vsftpd          //此时还不可以使用service命令控制,start可以,stop不可

chkconfig –list vsftpd 报错

应该编辑脚本加一些信息:

在头部增加:

# vsftpd ftp server

# chkconfig:2345 65 35

# description:ftp server

# config:/etc/vsftpd/vsftpd.conf

 

并执行:chkconfig –add vsftpd