本人以下所有文件均在root超级权限下编写执行,执行环境Ubuntu16.04

 

  1.编写脚本文件 ftpMonitor.sh,并将其放置/usr/local/

#!/bin/bash

#监视ftp的21端口,并检查这个21端口是否存在
ListeningPort=`netstat -an | grep ":21" | awk '$1 == "tcp6" && $NF == "LISTEN" {print $0}' | wc -l`

if [ $ListeningPort -eq 0 ]

then
        {
                #将端口异常情况写入日志文件,日志文件位置可以自定义,但要采用绝对路径
                echo "`date` : ftp端口异常,重启服务">>/home/timi/data.log

                # 如果ftp的21端口down了,重启ftp服务;以下是重启ftp的命令 
                /etc/init.d/vsftpd start
        }

else
        {
                echo "`date` : ftp端口正常" >>/home/timi/data.log
        }

fi

  2.编写周期执行文件

1.使用  crontab -e

2.编写文件(设置为每10秒执行一次)

* * * * * /usr/local/ftpMonitor.sh
* * * * * sleep 10; /usr/local/ftpMonitor.sh
* * * * * sleep 20; /usr/local/ftpMonitor.sh
* * * * * sleep 30; /usr/local/ftpMonitor.sh
* * * * * sleep 40; /usr/local/ftpMonitor.sh
* * * * * sleep 50; /usr/local/ftpMonitor.sh

3.使用Ctrl+X保存,保存完自动执行

  3.查看日志文件  cat /home/timi/data.log

 

 

 

  4.ftp的相关命令

service vsftpd start          开启ftp
service vsftpd status        查看ftp状态
service vsftpd stop           关闭ftp

  5.查看ftp进程

netstat -lntp|grep -e ftp