- 论坛徽章:
- 0
|
本帖最后由 sandao381 于 2014-04-08 08:57 编辑
话题一,你当初为什么选择了学习shell?
简单 ,易学,易用 。提供工作效率 。
话题二,在你的实际工作中,用shell实现了哪些功能?请给出详细的背景介绍、完整的源代码和注释。
实际应用的话,列举一个近段时间的吧,功能不负杂 。 不过却体现了shell脚本的高效和强大之处
【背景】公司的外呼中心刚起步阶段监控设施没有到位 。领导要求监控每天的用户接触量、业务成功量 ,每天的录音占用磁盘情况、磁盘使用率 。每台机器的磁盘使用情况 。其**涉及到 4台外呼服务器生成录音 ,1台db 记录呼叫记录 ,1台samba共享服务器做临时文件存储。
一 汇总每台机器的磁盘使用情况 。
将4台外呼服务器和samba共享服务器设置密钥登陆这样就可以将4台机器上的统计信息免密码发送到samba共享服务器上。
分别在4台外呼服务器建立如下脚本 ,并做好任务计划 。
------ 磁盘可用统计信息 任务计划 6点执行- #!/bin/bash
- . /etc/profile
- # available
- # 参数为 yyymmdd 格式的日期
- # 统计参数指定的日期生成的录音条数,及录音占用磁盘情况和磁盘的使用情况 。
- # 输出格式为:日期、ip、磁盘容量、磁盘可用、使用占比、生产录音条数、录音占用磁盘大小
- a=`df -lh | grep /record | awk '{print $3,$4,$5 }'`;
- [ -n "$1" ] && c=$1 || c=`date -d yesterday +%Y%m%d`;
- b=`ls -l /record/$c |awk '{a+=$5};END {print NR,a/1024/1024"M"}'`;
- hostip=`ifconfig | sed -n '/10.236.61/s/.*:\(.*\).Bcast.*/\1/p'`;
- echo $c $hostip $a $b | awk 'BEGIN {OFS=","};{print $1,$2,$3,$4,$5,$6,$7}';
复制代码 ------生成磁盘使用信息,并将结果scp到samba服务器 任务计划 7点执行- #!/bin/bash
- . /etc/profile
- # ava_scp
- # 参数为 yyymmdd 格式的日期
- # 生成磁盘使用信息,并将结果scp到samba服务。
- [ -n "\$1" ] && c=\$1 || c=\`date -d yesterday +%Y%m%d\`;
- hostip=\`ifconfig | sed -n '/10.236.61/s/.*:\(.*\).Bcast.*/\1/p'\`;
- available \$c> /tmp/\$hostip && scp /tmp/\$hostip root@10.236.61.247:/usr/samba ;
复制代码 在samba服务器做好任务计划汇总信息 任务计划 8点20执行- #!/bin/bash
- . /etc/profile
- # ava_daily
- # 参数为 yyymmdd 格式的日期
- # 汇总各服务器的信息。任务计划 8点20执行
- cd /usr/samba;
- find -name "10.236.61.*" | head -4 | while read filename ;do head -1 $filename >>meiriluyintongji.csv ;done;
复制代码 二. 监控系统每天的外呼数据及录音生产数据 。
--------在db上建立如下脚本 任务计划 7点20执行- #!/bin/bash
- . /etc/profile
- # daily ;
- # 汇总每天的外呼数据。
- call=`sqlplus -silent /nolog <<'END'
- conn VOIP_CALLCENTER1/VOIP_CALLCENTER1ALL
- set pagesize 0 feedback off verify off heading off echo off
- select count(1) from call_log where to_char(begin_time,'yyyymmdd')= to_char(sysdate-1,'yyyymmdd') ;
- exit ;
- END
- `
- succ=`sqlplus -silent /nolog <<'END'
- conn VOIP_CALLCENTER1/VOIP_CALLCENTER1ALL
- set pagesize 0 feedback off verify off heading off echo off
- select count(1) from (select substr(callee_num, -11) callee_num from call_log where to_char(begin_time, 'yyyymmdd') = to_char(sysdate - 1, 'yyyymmdd') union select substr
- (callee, -11) from tb_call_log@call_new where to_char(begin_time, 'yyyymmdd') = to_char(sysdate - 1, 'yyyymmdd') ) a left join (select busi_code, client_tel from
- tb_sell_record@cm_sell where to_char(sell_time, 'yyyymmdd') = to_char(sysdate - 1, 'yyyymmdd') and callresult = 1 union select busi_code, tel from tb_sell_record@TMS_sell
- where to_char(sell_time, 'yyyymmDD') = to_char(sysdate - 1, 'yyyymmdd') and SELLresult = 1 union select proj_code, tel from tb_sell_record@elite_retention where to_char
- (sell_time, 'yyyymmDD') = to_char(sysdate - 1, 'yyyymmdd') and SELLresult = 1) b on a.callee_num = b.client_tel where b.client_tel is not null;
- exit;
- END
- `
- hostip=`ifconfig | sed -n '/10.236.61/s/.*:\(.*\).Bcast.*/\1/p'`;
- echo -e $call"\t"$succ > /tmp/$hostip && scp /tmp/$hostip root@10.236.61.247:/usr/samba;
复制代码 ----------在samba服务器建如下脚本 生成每日呼叫数据及录音生成记录 任务计划 8点20- #!/bin/bash
- . /etc/profile
- # call_log;
- # 生成每天的呼叫录音监控 ,
- day=`date -d yesterday +%Y%m%d`
- cd /usr/samba
- a=`tail -4 meiriluyintongji.csv |awk 'BEGIN{FS=",";OFS="\t"}{a+=$7;b+=$6;}END{$1=$1;print a ,b }'`
- b=`cat 10.236.61.246`
- echo -e '日期'","'录音总量'","'成功录音总量'","'生成录音空间总大小(MB)'","'实际生成录音数'"," '丢失录音' > call_log.csv
- echo -e $day "\t"$b "\t" $a "\t""auto" | awk 'BEGIN{FS="\t";OFS=","}END{$1=$1;print $0,$5-$2}' >> call_log.csv
复制代码 --------------------------------------------------------------
在新系统上线初期 ,如果没有这些脚本及任务计划的话每天早上上班半个小时都是在扒拉服务器的录音生成情况及呼叫记录统计 , 着实让人头疼 。 有了这些脚本领导看下samba共享 ,他关注的报表就在里面了,自此又可以上班半小时逛论坛看帖子了.
|
|