我喜欢Shell脚本,格式方便阅读,方便调试。 在Windows上的Bat脚本,相对没那么友好,至少对我来说是这样的,还有一个致命的原因就是不方便调试……这点比较致命。
那有没有一种方法,可以在Windows上跑Shell脚本呢?答案是肯定的。
下面就谈谈我的经历:
首先去 Mobaxterm 官网下载最新版,并拷贝到 Windows server 服务器中;
运行 Mobaxterm,并开启一个会话-Shell,类型选择 Bash;

在新开的会话中编写 shell 脚本 ---> ftp_check.sh 代码如下仅供参考;
#!/bin/bash
# 脚本运行时间
t=$(date "+%F %H:%M:%S")
# FTP 端口状态 1021,且链接状态为 ESTABLISHED
ftp_state=$(netstat -ant | grep '1021' | grep 'ESTABLISHED' > /dev/null;echo $?)
if [ $ftp_state -eq 0 ];then
echo "$t FTP Running " >> /home/mobaxterm/Desktop/ftp_check.log
else
# while 循环判断
while [ $ftp_check -eq 1 ]
do
# 结束相关的 Serv-U 进程:ServUAdmin 和 ServUDaemon
kill -9 $(ps | grep 'ServUAdmin' | awk '{print $1}')
kill -9 $(ps | grep 'ServUDaemon' | awk '{print $1}')
# 等待 5 秒,然后启动进程
sleep 5
"/home/mobaxterm/Desktop/Serv-U 6.4.0.6/ServUDaemon.exe" &
"/home/mobaxterm/Desktop/Serv-U 6.4.0.6/ServUAdmin.exe" &
# 等待 5 秒,再次检查FTP端口
ftp_state=$(netstat -ant | grep '1021' | grep 'ESTABLISHED' > /dev/null;echo $?)
done
echo "$t FTP Stop,Restart Ok " >> /home/mobaxterm/Desktop/ftp_check.log
fi
# 日志文件转换 Linux To Windows
unix2dos /home/mobaxterm/Desktop/ftp_check.log
这是由于Linux和Windows换行符不一样导致)需要单独下载 Python插件)