• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > shell脚本实现实时检测文件变更

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

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell脚本删除文件,shell脚本输出到文件,shell脚本创建文件夹,shell脚本遍历文件夹,shell脚本读取文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

使用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
</div>

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

sh checkchange.sh /code/python &
</div>

如果使用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
</div>

</div>

您可能想查找下面的文章:

  • Shell脚本监控目录内文件改动
  • shell脚本实现实时检测文件变更
  • Shell脚本逐行读取文本文件(不改变文本格式)
  • Shell脚本创建指定大小文件的测试数据
  • Shell脚本统计文件行数的8种方法
  • Shell脚本实现批量替换文件内容
  • Shell脚本实现删除一年前文件功能分享
  • Shell脚本实现删除一年前文件功能分享
  • shell脚本实现文件锁功能
  • Shell脚本对比两个文本文件找出不同行的2个方法分享

相关文章

  • Linux oracle数据库自动备份自动压缩脚本代码
  • linux bash字符串处理大全
  • Linux shell脚本编程if语句的使用方法(条件判断)
  • linux patch 命令小结(收藏)
  • 分享20个Unix/Linux 命令技巧
  • 完美解决ntp的错误问题no server suitable for synchronization fo
  • linux 驱动之Kconfig文件和Makefile文件实例
  • Shell脚本实现自动修改IP、主机名等功能分享
  • Apache服务器的安装步骤(图文教程)
  • awk中RS、ORS、FS、OFS的区别和联系小结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • sed删除文件中的一行内容的脚本代码
    • Shell脚本遍历一个日期范围实例
    • Shell中比较大小简洁总结
    • 基础的Linux Shell技巧小结
    • Bash Shell中的select命令简单使用示例
    • Bash Shell中Shift用法分享
    • 几个常用的Linux操作系统监控脚本代码
    • linux shell命令行参数用法详解
    • Linux用户配置sudo权限(visudo)的方法
    • Shell脚本中获取进程ID的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有