Linux下自动安装Proftpd服务脚本

因为需要用到ftp服务,顺便练习下shell的使用,写了个自动安装脚本,现在共享出来,方便大家

#!/bin/sh
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5rc3.tar.gz
tar zxvf proftpd-1.3.5rc3.tar.gz
cd proftpd-1.3.5rc3
./configure --prefix=/usr/local/proftpd --sysconfdir=/etc
make
make install

#配置/etc/init.d/proftpd服务,从而可以正常启动
content='#!/bin/sh
#chkconfig: 345 85 15
# ProFTPD 的启动脚本
# Author: GP
# Email: [email protected]
# website: http://www.gplinux.com

# 设置变量
FTP_BIN=/usr/local/proftpd/sbin/proftpd
FTP_CONF=/etc/proftpd.conf
FTP_PID=/usr/local/proftpd/var/proftpd.pid

if [ -f $FTP_PID ]; then # 判断proftpd.pid文件是否存在
    pid=`cat $FTP_PID` #如果存在,即执行命令并把结果存入变量pid
fi

if [ ! -x $FTP_BIN ]; then
    echo "$0: $FTP_BIN: 不可执行"
    exit 1
fi

# 获取参数并判断
case "$1" in
start)
if [ -n "$pid" ]; then #如果pid变量的长度非零则为真
    echo "$0: proFTPD [PID $pid] 已经在运行,请勿重复启动"
    exit
fi

if [ -r "$FTP_CONF" ]; then #检查配置文件是否存在并且有读权限
    echo "正在启动proFTPD服务..."
    $FTP_BIN -c $FTP_CONF #加上c参数,指定配置文件
else
    echo "$0: 不能启动proFTPD服务,原因:proFTPD的配置文件$FTP_CONF有错"
fi
;;
stop)
if [ -n "$pid" ]; then #如果pid变量的长度非零则为真
    echo "正在关闭proFTPD服务..."
    kill -TERM $pid #给父进程发送一个TERM信号,试图杀死它和它的子进程。
else
    echo "$0: proFTPD没有运行,无法关闭"
exit 1
fi
;;
restart)
if [ -n "$pid" ]; then #如果pid变量的长度非零则为真
    echo "正在重启proFTPD服务..."
    kill -HUP $pid #重启该进程
else
    echo "$0: proFPTD没有运行,无法重启"
    exit 1
fi
;;
*)
echo "命令用法: $0 {start|stop|restart}"
exit 1
esac

exit 0
EOF
'
echo "$content" > /etc/init.d/proftpd

sed -i '/^Group.*nogroup$/s/nogroup/nobody/' /etc/proftpd.conf
echo "Systemlog       /var/log/proftpd/proftp.log" >> /etc/proftpd.conf
mkdir -p /var/log/proftpd


你可能感兴趣的:(Linux下自动安装Proftpd服务脚本)