在公司的一台FTP服务器上,servU的服务经常自动处于离线状态,每次都需要手动上去点一下很麻烦。

于是写一个脚本设置计划任务检查FTP服务的状态,重启服务。

思路:

设置计划任务:使用ftp命令连接该FTP上传文件,然后检测文件是否上传成功,如果上传成功记录success信息到log文件。如果上传失败,则说明FTP服务异常,杀掉相关FTP进程,并记录重新进程信息,然后重启相关程序。

细节:

1、使用ping命令做个简单的延迟检查。

2、计划任务需要设置执行超时停止任务,因为bat调用其他程序后,bat不自动停止。(应该是可以设置的)

===================main.bat================================================================

@echo off

cd /d C:\ftpmonitor

if exist "C:\ftpmonitor\aa\success.txt" del "C:\ftpmonitor\aa\success.txt"

call startftp.bat


ping -n 10 127.0.0.1 > NUL


if exist "C:\ftpmonitor\aa\success.txt" (echo %date:~0,10% %time% success >> log.txt & exit) 


taskkill /FI "IMAGENAME eq ServU*" -F

echo %date:~0,10% %time% call ServU >> log.txt

"C:\Program Files\RhinoSoft.com\Serv-U\ServUAdmin.exe" 

exit 

===================main.bat================================================================


===================startftp.bat============================================================

ftp -n -s:file.txt

===================startftp.bat============================================================



===================file.txt================================================================

open ip 端口

user username

password

bin 

prompt 

put success.txt

bye 

exit 

===================file.txt================================================================