#!/bin/bash -
#########################################################################################
#watchdog
#看门狗程序,定时上传话单,删除话单,统计流量和用户数
#version:1.2
#dongfeng@baicells.com 20170306
#########################################################################################
interval_time=20 #脚本运行间隔时间
time_HM_check='2359'
time_HM_reset='0000'
time_M_check='59'
time_M_reset='00'
flag1=0 #流量统计重置标志
flag2=0 #用户数统计重置标志
folder_CDR=CDR
folder_cdrDat=cdrDat
folder_Userstatic=Userstatic
folder_Dailystatic=Dailystatic
cdr_tftp_ip=`cat config.txt |grep "set_charge_service " |awk -F " " '{print $5}'` #tftp上传地址
#c=`cat config.txt |grep "ifconfig gtp1_1 " |awk -F " " '{print $3}' |awk -F "." '{print $1}'`
#d=`cat config.txt |grep "ifconfig gtp1_1 " |awk -F " " '{print $3}' |awk -F "." '{print $2}'`
#e=`cat config.txt |grep '^set_local_forwarding' |awk '{print $2}'`
#f=`cat config.txt |grep '^set_local_forwarding' |awk '{print $4}'`
#g=`cat config.txt |grep '^set_local_forwarding' |awk '{print $6}'`
#nat_value=`iptables -nL -t nat |grep SNAT |awk '{if(NR<2){print $1}}'`
#主循环开始
while true
do
#统计当下时间
time_all=`date +%Y-%m-%d' '%H:%M:%S`
time_Ymd=`date +%Y%m%d`
time_HM=`date +%H%M`
time_M=`date +%M`
folder_time_Ymd=`date +%Y%m%d`
echo $time_all
#####################################################话单上传和删除功能#################################################################################
cd /home/baicells/eGW
if [ ! -d "$folder_CDR" ]; then
mkdir $folder_CDR
fi
cd /home/baicells/eGW/CDR
if [ ! -d "$folder_cdrDat" ]; then
mkdir $folder_cdrDat
fi
cd /home/baicells/eGW/CDR/cdrDat
if [ ! -d "$folder_time_Ymd" ]; then
mkdir $folder_time_Ymd
fi
cd /home/baicells/eGW
for i in `ls -lt *.dat |awk '{if(NR>=2){print $9}}'`
do
{
#echo $i upload to $cdr_tftp_ip at `date '+%Y-%m-%d %H:%M:%S'`
echo $i upload to $cdr_tftp_ip at `date '+%Y-%m-%d %H:%M:%S'` >> /home/baicells/eGW/CDR/cdr_log.txt
tftp $cdr_tftp_ip -c put $i
mv $i /home/baicells/eGW/CDR/cdrDat/$folder_time_Ymd
#usleep 200000
} &
done
wait
if [ $time_HM -eq $time_HM_reset ];then
cd /home/baicells/eGW/CDR/cdrDat
#echo "start to delete old cdr"
ls -lt |awk '{if(NR>=30){print $9}}' |xargs rm -rf
fi
#################################################定时统计流量#########################################################################################
cd /home/baicells/eGW
if [ ! -d "$folder_Dailystatic" ]; then
mkdir $folder_Dailystatic
fi
if [ $time_HM -eq $time_HM_check ] && [ $flag1 -eq 0 ];then
/home/baicells/eGW/dailystatic.py $time_Ymd
#/home/baicells/eGW/emailontime.py
flag1=1
fi
if [ $time_HM -eq $time_HM_reset ];then
flag1=0
fi
#################################################定时用户数统计#######################################################################################
cd /home/baicells/eGW
if [ ! -d "$folder_Userstatic" ]; then
mkdir $folder_Userstatic
fi
if [ $time_M -eq $time_M_check ] && [ $flag2 -eq 0 ];then
str=$(printf "%-190s" "*")
tmp=`/home/baicells/eGW/lccmd show_enb_list`
echo "${str// /*}" >> /home/baicells/eGW/$folder_Userstatic/${time_Ymd}.txt
echo -e "`date` \n" >> /home/baicells/eGW/$folder_Userstatic/${time_Ymd}.txt
echo -e "$tmp \n" >> /home/baicells/eGW/$folder_Userstatic/${time_Ymd}.txt
flag2=1
fi
if [ $time_M -eq $time_M_reset ];then
flag2=0
fi
####################################################################################################################################################
sleep $interval_time
done
#主循环结束
linux: shell实例watchdog.sh
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 背景: 阅读新闻 10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例 [日期:201...
- 说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例: Linux shell通配符...