# !/bin/bash
dir=$1for file in `ls $dir`
doif [ -d $dir/$file ]
then
echo $file is dir
elsetime=`stat$file | tail -2 | head -1 | cut -d'' -f2-3 | cut -d. -f1`
name=$file
currentTime=`date "+%Y-%m-%d %H:%M:%S"`
echo "$name $time $currentTime"
oldtime=`date +%s -d "$time"`
newtime=`date +%s -d "$currentTime"`
# echo $(($newtime-$oldtime))if [ $(($oldtime-$newtime)) -ge 0 ]
then
echo "$file is a new file"else
echo "$file not modify"
fi
fi
done
自动创建n的测试文件
#!/bin/bash
#echo $#if [ $# -eq 1 ]then
nums=$1# echo $numsfor((i=0;i<$nums;i++))
do#sleep 1
touch ./file-`date +%F-%H-%M-%S`-$i.txt
done
else
echo "you need input nums like ./app nums,bye"exit -1
fi
判断时段内文件有无更新
# !/bin/bash
dir=$1for file in `ls $dir`
doif [ -d $dir/$file ]
then
echo $file is dir
else
file=$dir/$file#获取最后修改时间,并截取成 y-m-d h:m:stime=`stat -c %y$file | cut -d. -f1`
name=$file
currentTime=`date "+%Y-%m-%d %H:%M:%S"`
echo "$name $time $currentTime"#将字符串时间转换成数字,距1970年的时间
#文件当前的最后修改时间
oldtime=`date +%s -d "$time"`
#系统当前时间
newtime=`date +%s -d "$currentTime"`
#时间偏移量,这里定义为一天24*60*60,意味着一天扫描一次,如需修改扫描次数,修改这个地方就行
shifttime=86400#这里用当前文件最后修改时间,与一天前的时刻做比较,如果大于0,说明文件在从昨天这个时刻到今天这个时刻之间发生了变化,偏移量不是一天时,代表的是这段时间内
#测试 shifttime=600 10分钟
#shifttime=600if [ $(($oldtime-$newtime+$shifttime)) -ge 0 ]
then
echo "$file is a new file"else
echo "$file not modify"
fi
fi
done
统计history信息
#!/bin/bash
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIRchmod777$HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod300$HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"chmod600$HISTDIR/${LOGNAME}/*.history.* 2>/dev/null
捕获信号
#!/bin/bash
trap "echo sigint" SIGINT
echo "This is a test program"
count=1while [ $count -le 10 ]
do
echo "Loop #$count"sleep2
count=$[ $count +1 ]
done
echo "This is the end of the test program"
read使用
#!/bin/bash
#simple read
echo -n "Enter your name:"read name
echo "Hello $name,welcome!"#read 指定read -p "Please enter your age:" age
days=$[ $age * 365 ]
echo "That makes you over $days days old"#read 不带变量,存在默认变量REPLY中 read -p "Please enter your age:"
echo "your age is $REPLY"#read 延时选项 read -t 2 -p "Please enter your age:"
echo "your age is $REPLY"#read 默读 read -s -p "Please enter your passwd:"
echo "your passwd is $REPLY"
read读文件
#!/bin/bash
#read fileif [ $# -lt 1 ]then
echo "Usage ./readfile.sh testfile"exit -1
fi
echo "file name is $1"
count=1
cat $1 | whileread line
do
echo "Line $count:$line"
count=$[ $count+1 ]
done
echo "Finished processing the file"
打开文件
--------------------------------------------------------------------------------
#!/bin/bash
#openexec3> test
echo "This is a test line of data" >&3#close exec3>&-
echo "This won't work" >&3