在公司的一台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================================================================
原文地址:http://suyu0729.blog.51cto.com/5977449/1711580