添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我喜欢Shell脚本,格式方便阅读,方便调试。 在Windows上的Bat脚本,相对没那么友好,至少对我来说是这样的,还有一个致命的原因就是不方便调试……这点比较致命。

那有没有一种方法,可以在Windows上跑Shell脚本呢?答案是肯定的。

下面就谈谈我的经历:

  • 我们有一台边界 FTP,经常会异常中断,重启 FTP 即可;
  • 为确保数据能有效传输,FTP 异常后能及时恢复,所以这个计划就产生了;
  • Windows server 2012
  • Mobaxterm 21.2
  • Serv-U 8.6
  • ftp_check.sh 检查 FTP 端口状态,如果失败则重启 FTP,即 Serv-U;
  • 利用 crond 做计划任务,每 10 分钟运行一次 ftp_check.sh 脚本;
  • 记录相关日志到 ftp_check.log ;
  • 首先去 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
        # while 循环判断
        while [ $ftp_check -eq 1 ]
            # 结束相关的 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 $?)
        echo "$t FTP Stop,Restart Ok " >> /home/mobaxterm/Desktop/ftp_check.log
    # 日志文件转换 Linux To Windows
    unix2dos /home/mobaxterm/Desktop/ftp_check.log
    
  • Mobaxterm 启动计划任务:crond
  • 编写计划任务:crontab -e LinuxShell开源共享软件HTMLMariadbNginxPHPBash源码RockyLinuxScriptCentOSddos-deflate小工具SQLMysqlZabbixWindowns安装部署FTPQRCode开源HCLENSPMobaxtermPython百度网盘红帽RHCSARHCEDebianyumNavicat激活多系统钉钉机器人IP定位mkdocsDeepinSSHJellyfinDOS攻击防护建站lnmplamp火毅盾phpIPAM网络交换机dockervim
  •