简单的perl脚本
来源:互联网 发布:网络视频推广方案 编辑:程序博客网 时间:2024/05/17 14:24
#!/usr/bin/perluse strict;##以下为变量区,请自行修改my $his_name="";my $File_Path="/public/release/log/DataDisconn/";my $Bak_Path="/public/release/log/DataDisconn/bak/";my $His_Path="/public/release/log/DataDisconn/log/";my $Log_Path="/public/release/log/DataDisconn/log/";my $file_mode="DataDisconn";my $Ora_Str="dic_tongbu_wuhan/dic_tongbu_wuhan\@HB_XIAOGAN";my $Ora_Str_HB="dic_tongbu_hubei/dic_tongbu_hubei\@HB_XIAOGAN";my $SMS_Str="dic_sms/dic_sms\@DXPT1";my ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$savinglightday);##以上为变量区while (1){ &MakeHisFile; &SearchFile; sleep 60;}sub GetTime{ ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$savinglightday) = (localtime(time)); $sec = ($sec < 10)? "0$sec":$sec; $min = ($min < 10)? "0$min":$min; $hour = ($hour < 10)? "0$hour":$hour; $day = ($day < 10)? "0$day":$day; $mon = ($mon < 9)? "0".($mon+1):($mon+1); $year += 1900;}sub SearchFile{ &Log("Search In [$File_Path] !"); opendir FP,$File_Path; my @files = readdir FP; closedir FP; &Log("With File Mode [$file_mode] !"); @files = grep {/^$file_mode/} @files; foreach my $file(@files) { &Log("File [$File_Path$file] !"); &ReadFile($File_Path.$file); &Log("Move [$File_Path$file] to [$Bak_Path$file] !"); rename "$File_Path$file","$Bak_Path$file"; }}sub ReadFile{ open FH,"<",$_[0]; my @line = <FH>; close FH; foreach my $line(@line) { my $user = (split(/\|/,$line))[1]; my $num = (split(/\|/,$line))[2]; my $latn_id = (split(/\|/,$line))[3]; my $error_code = (split(/\|/,$line))[4]; my $user_type = (split(/\|/,$line))[5]; &SearchInHis($user,$num,$latn_id,$user_type); }}sub MakeHisFile{ &GetTime; $his_name = $His_Path."Close_$year$mon.his"; open FH, ">>" , $his_name; close FH;}sub SearchInHis{ my $user = $_[0]; my $num = $_[1]; my $latn_id = $_[2]; my $user_type = $_[3]; open FH, "<", $his_name; my @his = <FH>; close FH; if (grep {/^$user\|/} @his ) { &Log("$user is exist !"); } else { if ($latn_id == 1001 ) { ToSqlPlus($user,$num,$latn_id,$user_type); } else { ToSqlPlusHB($user,$num,$latn_id,$user_type); } &WriteToHis($user); }}sub WriteToHis{ my $user = $_[0]; &GetTime; open FH, ">>" , $his_name; print FH "$user|$year$mon$day$hour$min$sec\n"; close FH;}sub Log{ &GetTime; open FH ,">>", $Log_Path."Close_$year$mon$day.log"; print FH "$hour:$min:$sec -- $_[0]\n"; close FH;}sub ToSqlPlus{ my $user = $_[0]; my $num = $_[1]; my $latn_id = $_[2]; my $user_type = $_[3]; &Log("To Disconn [$user]!"); if($user_type == "01") { `sqlplus $Ocs_Str <<EOF insert into dic_sd4.tb_ecp_inf_bill (id, begin_date, end_date, begin_hour, end_hour, channel_type, totel, to_addr, title, send_content, activity_id, priority, flag, state, is_long, sent_bg_time, fromtel, send_type, sys_code, latn_id,need_resport) values (dic_sd4.SEQ_BILL_INFO.NEXTVAL, trunc(sysdate), trunc(sysdate), 0, 24, 1, $num, 'wulz\@tydic.com', '4G断网提醒', '尊敬的用户,您的套餐外上网流量已经使用15GB,达到封顶断网流量(15G),如想继续使用请登录湖北电信网厅hb.189.cn,或到当地电信营业厅办理申请。下载天翼客服客户端http://kefu.189.cn/aURBF3 可实时掌握流量使用情况。', 13990, 3, 1, -1, 0, sysdate, '10001', 'SUB', '513', $latn_id,1); commit;EOF`;} `sqlplus $Ora_Str <<EOF exec ls65_sid.pro_20g_for_ocs($user); commit;EOF`;}sub ToSqlPlusHB{my $user = $_[0]; my $num = $_[1]; my $latn_id = $_[2]; my $user_type = $_[3]; &Log("To Disconn [$user]!"); if($user_type == "01") { `sqlplus $Ocs_Str <<EOF insert into dic_sd4.tb_ecp_inf_bill (id, begin_date, end_date, begin_hour, end_hour, channel_type, totel, to_addr, title, send_content, activity_id, priority, flag, state, is_long, sent_bg_time, fromtel, send_type, sys_code, latn_id,need_resport) values (dic_sd4.SEQ_BILL_INFO.NEXTVAL, trunc(sysdate), trunc(sysdate), 0, 24, 1, $num, 'wulz\@tydic.com', '4G断网提醒', '尊敬的用户,您的套餐外上网流量已经使用15GB,达到封顶断网流量(15G),如想继续使用请登录湖北电信网厅hb.189.cn,或到当地电信营业厅办理申请。下载天翼客服客户端http://kefu.189.cn/aURBF3 可实时掌握流量使用情况。', 13990, 3, 1, -1, 0, sysdate, '10001', 'SUB', '513', $latn_id,1); commit;EOF`;} `sqlplus $Ora_Str_HB <<EOF exec ls65_sid2.pro_20g_for_ocs($user); commit;EOF`;}
1 0
- 简单的perl脚本
- 一个简单的Perl多线程脚本
- perl脚本的简单调试方法
- perl 简单读写脚本
- 简单perl脚本
- Perl 脚本的特点
- perl脚本的目录
- MD5验证的Perl脚本
- Perl脚本的调试方法
- 远程blast的Perl脚本
- Perl 的简单语法
- Perl的简单语法
- 一个简单的根据配置文件设置device的perl脚本(未完成)
- 用一个简单的perl包轻松管理脚本中的软件调用
- perl 脚本
- perl脚本
- Perl入门(七) Perl脚本的调试
- 简单的日期判断 perl
- jquery中attr和prop的区别
- 互联网创业者们正在遭遇新一轮洗牌
- ng-repeat 遍历同值数组导致的报错
- Ext.js5(验证)(CheckboxGroup 类的布局能力)(37)
- 在Android中读取文件
- 简单的perl脚本
- android camera HAL v3.0概述
- Thinkphp与支付宝对接功能的实现 -- 第一步
- Foundation—数字对象NSNumber的简单认识
- 关于Spring中ApplicationContext加载机制中BeanFactory类
- 网络编程index
- win10打开电脑蓝牙
- 二叉搜索树(BST)的常用操作:建树、插入、查询、删除、排序打印
- SQL Server 错误日志收缩(ERRORLOG)