• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell脚本实现实时检测文件变更

    使用python做web开发,现在流行使用uwsgi调用python程序,但是使用uwsgi一段时间发现有一个弊端,就是每次更改源代码后必须重启uwsgi才能生效,包括更改模板文件也是,我是个懒人,再经过一段时间反复的更改-重启后我终于忍受不了,决定写一个脚本来定时程序目录的文件改动,并及时自动重启uwsgi,来解放我的双手可以不用理会这些琐碎的重启工作. 用了点时间来编写了一个脚本用来判断是否更改,然后判断是否需要重启uwsgi.

    下面放出脚本内容:

    #!/bin/bash
    # Author   : cold
    # Filename  : checkchange.sh
    # Useage   : sh checkchange.sh [dir]
    checkisdir()
        # Have one argument
        # The argument is a directory
        for i in `ls $1 | sed -e 's/ /\n/g'`
        do
            if [ -d $1/$i ]
            then
                if [ $i == "bin" -o $i == "lib" -o $i == "include" ]  # 不想检测的目录(这里是使用virtualenv生成的环境文件)
                then
                    continue
                fi
                dir="$1/$i"
                checkisdir $dir
            else
                files=$files'\n'$1'/'$i
            fi
        done
        echo -e $files
    }
    while true
    do
        if [ -e /tmp/stat.tmp ]
        then
            for i in `checkisdir $1`
            do
                if [ -e /tmp/patch.tmp ]
                then
                    stat $i | grep Change > /tmp/nstat.tmp
                    rm -f /tmp/patch.tmp
                    continue
                fi
                stat $i | grep Change >> /tmp/nstat.tmp
            done
            diff /tmp/stat.tmp /tmp/nstat.tmp > /tmp/patch.tmp
            if [ $? -eq 0 ]
            then
                sleep 10
            else
                /etc/init.d/uwsgi.py restart          # 将此处更改为想要做的操作
                patch /tmp/stat.tmp /tmp/patch.tmp
            fi
        else
            for i in `checkisdir $1`
            do
                stat $i | grep Change >> /tmp/stat.tmp
            done
            continue
        fi
    done

    这里主要测试变更后重启uwsgi,使用方法:我的bottle程序在/code/python下:

    复制代码 代码如下:

    sh checkchange.sh /code/python

    如果使用svn可以参考下面代码:

    #!/bin/bash
    # Author    : cold
    # Filename   : checkupdate.sh
    # Describle   : To Check update of svn
    
    while true
    do
        cd /code/python
        svn up | grep At > /dev/null 2>1
        if [ $? -eq 0 ]
        then
            sleep 30
        fi
    
        svn up | grep Updated > /dev/null 2>1
        if [ $? -eq 0 ]
        then
            /etc/init.d/uwsgi.py restart
        fi
    done
    

    您可能感兴趣的文章:
    • 自动化下载并检测ftp文件备份的shell脚本
    • 用来检测输入的选项$1是否在PATH中的shell脚本
    • Shell脚本实现检测Cygwin最快的镜像站点
    • VBS脚本写的Windows硬件检测工具分享
    • Linux Shell脚本实现检测tomcat
    • Shell脚本实现检测进程是否正在运行
    • PowerShell脚本实现检测网络内主机类型
    • 脚本批量检测网站是否存活
    上一篇:Shell脚本注册到Linux系统服务实例
    下一篇:Shell脚本读取标准ini配置文件Demo
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell脚本实现实时检测文件变更 shell,脚本,实现,实时,检测,