后台实时分流文件的shell/ target=_blank class=infotextkey>shell脚本,有需要的朋友可以参考下。
将bill 文件夹下的文件按一定规则(文件名奇偶)拷贝至bill1,bill2 文件夹下。
更新bill1,bill2 处理进度标签(更新file.max)
file3 为bill 目录下当前最新文件的标签,正常情况下每分钟会更新(格式为:20121016122100)
#!/bin/bash
#for wanggy 2012/10/16
bill1=/infosms/bill1
bill2=/infosms/bill2
file_max=`cat file3`
cd /infosms/bill
while :
echo "开始"
do
if [ $file_max != `cat file3` ];then
echo "不相等,处理"
#判断file3 11-12位(奇偶)
num1=`cut -c 11-12 file3`
#如果不加10# 取模的时候遇到08会出错。(8进制判断?)
num=$((10#$num1%2))
#num=$(($num1%2))
#获取bill下当前文件(最新)
file_name=B`cat file3`
echo "最新文件:$file_name"
case $num in
1)
echo "odd"
cp -a $file_name ../bill1
echo `cat file3` >../bill1/file.max
;;
0)
echo "even"
cp -a $file_name ../bill2
echo `cat file3` >../bill2/file.max
;;
esac
echo "对file_max给最新的值"
file_max=`cat file3`
else
echo "相等,不处理,退出!"
# file_date=`cat $filename`
# exit 1
fi
echo "等待10秒,下一次判断..."
sleep 10
done