【shell脚本 实例一】轮询取挂载目录下被更新的文件

实例一:监测挂载目录下的指定文件状态,一秒轮询,文件被更新即被取到指定目录。

 1 #########################################################################
 2 # File Name: getshare.sh
 3 # Author: zoukch
 4 #########################################################################
 5 #!/bin/bash
 6
 7 if [ $# != 1 ]
 8 then
 9     echo "input wrong!"
10     exit
11 fi
12
13 if [ -e /mnt/hgfs/share/$1 ]
14 then
15     if [ -e $HOME/workspace/log/getshare.log ]
16     then
17         echo "[`date +%Y%m%d%H%M%S`]getsh.sh started!!!!!!" >> $HOME/workspace/log/getshare.log
18     else
19         touch $HOME/workspace/log/getshare.log
20         echo "[`date +%Y%m%d%H%M%S`]getsh.sh started!!!!!!" >> $HOME/workspace/log/getshare.log
21     fi
22
23     lastTime=`stat /mnt/hgfs/share/$1 | grep -i Modify | awk -F. ‘{print $1}‘ |24     awk ‘{print $2$3}‘ | awk -F- ‘{print $1$2$3}‘ | awk -F: ‘{print $1$2$3}‘`
25     echo "[`date +%Y%m%d%H%M%S`]the old modified time of $1 : $lastTime" >> $HOME/workspace/log/getshare.log
26
27     if [ -e ./$1 ]
28     then
29         cp ./$1 $1.bak
30     fi
31
32     cp /mnt/hgfs/share/$1 .
33 else
34     echo "[error]the /mnt/hgfs/share/$1 is not exist!"
35     echo "[error]the /mnt/hgfs/share/$1 is not exist!" >> $HOME/workspace/log/getshare.log
36     exit
37 fi
38
39 while [ -e /mnt/hgfs/share/$1 ]
40 do
41     sleep 1
42     newTime=`stat /mnt/hgfs/share/$1 | grep -i Modify | awk -F. ‘{print $1}‘ |43     awk ‘{print $2$3}‘ | awk -F- ‘{print $1$2$3}‘ | awk -F: ‘{print $1$2$3}‘`
44
45     if [ $lastTime != $newTime ]
46     then
47         lastTime=$newTime
48         echo "[`date +%Y%m%d%H%M%S`]the last modified time of $1 : $lastTime" > $HOME/workspace/log/getshare.log
49         echo "MODIFIED FILE at $newTime!" >> $HOME/workspace/log/getshare.log
50         cp ./$1 $1.bak
51         cp /mnt/hgfs/share/$1 .
52         if [ -e ./$1 ]
53         then
54             echo "[`date +%Y%m%d%H%M%S`]get $1 success" >> $HOME/workspace/log/getshare.log
55         fi
56     fi
57 done

 

没有阳光、没有蓝天,否则我一定出去走走。

no sunshine,no blue,or I will take a walk.

                   ——zoukch

时间: 2024-10-06 00:29:12

【shell脚本 实例一】轮询取挂载目录下被更新的文件的相关文章

vim,grep,shell脚本实例及find用法

vim,grep,shell脚本实例及find用法 1.定义一个对所有用户都生效的命令别名 定义一个对所有用户都生效的命令别名需要更改全局配置文件/etc/bashrc, 例如,我们以root用户编辑/etc/bashrc,在文件的最后一行增加alias like='ls' 当我们新启一个shell进程的时候,列出命令别名,会发现刚定义的别名like [[email protected] ~]# tail /etc/bashrc . "$i" >/dev/null fi fi d

【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程

我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次,因为老伯们也不容易啊,屌丝何苦为难屌丝... 废话不多说了上脚本! ? 1 2 3 找出CPU占用超过90%的MATLAB进程,grep -v 去掉"grep"进程 pids=`ps aux|grep "MATLAB"|grep -v "grep"

Linux shell 脚本实例【转】

1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`do       factorial=`expr $factorial \* $a`doneecho "10! = $factorial" 2. 写一个脚本,执行后,打印一行提示“Please input a number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值.直到用户输入"end"停止.#!/bin/shuns

7个shell脚本实例--shell脚本练习必备

概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 一.监测Nginx访问日志Exception情况,并做相应动作 假设服务器环境为lnmp,监控出现Exception错误,并钉钉通知. #场景: #1.访问日志文件的路径:/data/logs/plateno-coupon-server/plateno-coupon-server.log#2.脚本死循环,每10秒检测一次,10秒的日志条数为300条

我的一些简单的shell脚本实例

1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read passwdif [ $name = "cht" -a $passwd = "abc" ];thenecho "the host and password is right!"else echo "input is error!"fi

shell脚本第二篇——将指定目录下大于200K的文件移动到/tmp下

shell脚本第二篇--将指定目录下大于200K的文件移动到/tmp下 # vim  /tmp/files.sh #!/bin/bash #将指定目录下大于200K的文件移动到/tmp下 read  -p  "请输入您要将目录下大于200K文件移动的目录路径:" $1 for FILE in `ls  $1` do if [ -f  $FILE ] ; then if [ `ls -l $FILE | awk `{print $5}` -gt 204800 ] ; then mv  $

一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 @for&ever 2010-07-03 功能: 获取指定目录下面符合一定规则的文件名称和文件修改时间,并保存到指定的文件中 脚本如下: #!/usr/bin/env python# -*- coding: utf-8 -*- '''Created on 2010-7-2 @author: fore

shell脚本实例

备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个参数,如果要取超过9个参数${n}$* 所有的命令行参数,等于("$1 $2...""[email protected]" 所有的命令行参数,等于("$1" "$2"...)$_ 前一个命令的最后一个命令行参数   1.     

Shell脚本实例——商场购物案例

Shell脚本基础循环.判断语句练习实例 商场购物车案例 #! /bin/bash xie=200 ku=150 yi=100 huan=50 chi=120 num=0 for ((i=1;i<=5;i++)) do echo 是否进入第"$i"家店? read -p "输入(yes & no)" shu while [ $shu = "yes" ] do echo 1.鞋子 ¥"$xie" echo 2.裤子