#!/usr/bin/perl
#-----------------------------------------------------#
#
# description : create and ftp subchange state file
# author : wqq
# date : 2012-04-30
#
#-----------------------------------------------------#
#use warnings;
use strict;
use Net::FTP;
our ($day,$mon,$yea) = (localtime(time))[3..5];
our $current_date = sprintf "%04s%02d%02d",$yea+1900,$mon+1,$day;
our $source_subchange_dir = "../backup/$current_date";
our $source_file_count = 3;
our $target_subchange_file = "ocs_subchange.unl";
our $ftp_ip = "10.2.11.52";
our $ftp_username = "mid";
our $ftp_password = "mid";
our $local_file = $target_subchange_file;
our $desc_file = "ocs_subchange.unl";
our $desc_dir = "/home/mid/test";
our %hash_state;
our %hash_time;
sub current_datetime()
{
my($sec,$min,$hou,$day,$mon,$yea) = (localtime(time))[0..5];
my $date_time = sprintf "%04s-%02d-%02d %02d:%02d:%02d",$yea+1900,$mon+1,$day,$hou,$min,$sec;
return $date_time;
}
sub info()
{
print "please check parameter!\nusage:\n\t./subchange.pl\n";
}
sub logfile()
{
my $line = shift;
my $exitflag = shift;
open (LOG_FILE,">> $source_subchange_dir/log_$current_date.unl") or die ">>>>>Can't read log file $source_subchange_dir/log_$current_date.unl: $!\nPlease check...\n";
print LOG_FILE "[".¤t_datetime()."]:$line\n";
close LOG_FILE;
if($exitflag == 1)
{
exit;
}
}
sub check_file()
{
my $count_file;
my @count_file;
if(! -d $source_subchange_dir)
{
&logfile(">>>>>The document $source_subchange_dir not exists!",1);
}else{
$count_file = `ls $source_subchange_dir/ocs_subchange* | wc -l`;
@count_file = `ls $source_subchange_dir/ocs_subchange*`;
if($source_file_count != $count_file)
{
chomp($count_file);
&logfile(">>>>>Current source file count: $count_file",0);
foreach my $file (@count_file)
{
chomp($file);
&logfile(">>>>>Source file: [$file] ",0);
}
&logfile(">>>>>Please check source file! need source file count:[$source_file_count]\n",1);
}
}
foreach my $file (@count_file)
{
chomp($file);
&logfile("Source file: [$file] ",0);
}
}
#----------read userdb_ocs_subchangelog file----------#
sub read_ocs_subchangelog_file()
{
my $line;
my @arr;
my $file;
opendir(DIR, $source_subchange_dir) || &logfile(">>>>>Open directory $source_subchange_dir failed!",1);
while ($file = readdir(DIR))
{
if($file =~ /^ocs_subchange/)
{
my ($line);
open (FILE, "$source_subchange_dir/$file") || &logfile(">>>>>Can't read source file $file: $!\nPlease check...",1);
while($line=<FILE>)
{
chomp($line);
@arr = split(/\|/,$line,-1);
chomp($arr[3]);
if(exists $hash_state{$arr[0]})
{
if($hash_time{$arr[0]} le $arr[1])
{
$hash_state{$arr[0]}= $arr[3];
$hash_time{$arr[0]}= $arr[1];
}
}else{
$hash_state{$arr[0]}= $arr[3];
$hash_time{$arr[0]}= $arr[1];
}
}
close FILE;
}
}
close DIR;
}
#----------create subchange file----------#
sub create_subchange_file()
{
my $isdn;
my @arr;
open TARGET_SUBCHANGE, ">> $target_subchange_file" or &logfile(">>>>>Can't read target file $target_subchange_file: $!\nPlease check...",1);
foreach $isdn (keys %hash_state)
{
if(substr($hash_state{$isdn},0,1)==1)
{
print TARGET_SUBCHANGE "MOD LCK: ISDN=\"$isdn\", IC=FALSE, OC=FALSE, GPRSLOCK=FALSE;\n";
}else{
print TARGET_SUBCHANGE "MOD LCK: ISDN=\"$isdn\", IC=TRUE, OC=TRUE, GPRSLOCK=TRUE;\n";
}
}
close TARGET_SUBCHANGE;
}
sub ftp_subchange_file()
{
my $ftp = Net::FTP->new($ftp_ip) or &logfile(">>>>>Can't connect to HLR [$ftp_ip].",1);
&logfile("Begin input username:[$ftp_username] and password:[$ftp_password].",0);
$ftp->login($ftp_username,$ftp_password) or &logfile(">>>>>Can't login [$ftp_ip], username or password is error!",1);
$ftp->ascii();
&logfile("Begin change dir to [$desc_dir].",0);
$ftp->cwd($desc_dir) or &logfile(">>>>>Can't change dir to [$desc_dir], dir is error!",1);
my @file=$ftp->ls($desc_file);
if($file[0] eq "$desc_file")
{
$ftp->delete($desc_file);
&logfile("[$desc_dir/$desc_file] The file exists in the HLR:[$ftp_ip], delete it.",0);
}else{
&logfile("[$desc_dir/$desc_file] The file not exists in the HLR:[$ftp_ip].",0);
}
&logfile("Begin to put the file in the HLR:[$desc_dir/$desc_file]",0);
$ftp->put($local_file,$desc_file) or &logfile(">>>>>Can't put the file in the HLR:[$desc_file]",1);
$ftp->quit;
}
#----------main----------#
if(@ARGV != 0)
{
&info();
}
else
{
system("rm -rf $target_subchange_file $source_subchange_dir/log_$current_date.unl");
&logfile("Begin check source file.",0);
&check_file();
&logfile("Check source file completed!\n",0);
&logfile("Begin create subchange final file.",0);
&read_ocs_subchangelog_file();
&create_subchange_file();
&logfile("Create subchange final file completed!\n");
&logfile("Begin connect to HLR [$ftp_ip].",0);
&ftp_subchange_file();
&logfile("Ftp subchange final file completed!\n");
}相关推荐
FTP上传文件,读取文件中文字符,解决乱码问题
FTP上传文件,FTP解决乱码问题 解决乱码讲new String(s.getBytes("gbk"),"ISO8859-1");//其转换后还是乱码 改成国际中文标准码就行了
Perl ftp
#!/usr/bin/perl use English; use strict; use warnings; use Net::FTP; my $ftp = Net::FTP -> new("10.58.118.40", Debug => 0) or die $!; $ftp -> login("SVFUNC\\FTPuser", "dtb_dm#22") or
如何使用Perl脚本实现下载服务器端数据到客户端
Perl的实际应用,如何自动化下载服务器端数据到本地。
Perl的FTP-----get文件
<br />在Perl中,使用模块Net::FTP来使用FTP服务,<br />一般的使用步骤如下:<br />1. 使用Net::FTP的new方法来创建一个新的FTP对象。<br />2. 使用login方法登录到FTP服务器。<br />3. 使用cwd方法来切换目录。<br />4. 使用get方法来获取文件。<br />5. 使用put方法来上传文件。<br />6. 使用quit方法退出。<br />下面是linux下perl编写的ftp程序连接非21端口的例子:<br />[root@loca
台达PLC使用RS485Modbus指令通信
台达PLC,RS485,Modbus RTU,从站梯形图,0X01,0X02,0X05,CRC校验
无需Root!安卓模拟器+BurpSuite轻松搞定微信小程序抓包
本文详细介绍了如何在不root安卓设备的情况下,使用安卓模拟器和BurpSuite实现微信小程序抓包。通过夜神模拟器降级安卓版本、配置BurpSuite代理及安装证书等步骤,开发者可以轻松绕过微信的证书绑定,高效抓取小程序数据包。文章还提供了常见问题排查和高阶技巧,帮助开发者提升抓包效率。
Perl的ftp----put文件
<br />工作需要,经常要更新一些运行包,但是每次手工去ftp,既麻烦,还浪费时间.于是就用Perl写了一个通过配置文件来自动ftp的小工具.采用perl主要是考虑它的跨平台性,当然了用python等也可以.<br />在配置文件里边可以指定主机,用户名,密码,要传输的文件等等.<br /><br /><br />代码如下:<br />#!/usr/bin/perl<br />use Net::FTP;<br />use Class::Struct;<br /><br />struct FtpInfo =
Windows下Colmap编译安装全攻略:从Boost到CUDA的避坑指南
本文详细介绍了在Windows系统下编译安装Colmap三维重建工具的完整流程与实战经验。针对Boost库版本兼容性、CUDA与Visual Studio的版本匹配等常见难题提供了具体的避坑指南和解决方案,帮助开发者高效完成从环境配置到最终部署的全过程。
Linux下的经典软件-史上最全
前言从2012年接触Linux系统以来就被Linux系统所吸引,2个月后便完全抛弃了Windows。在这2年的时间里,我尝试了很多Linux发行版: Gentoo, Fedora, Ubuntu, Debian等。在这些系统中又尝试了很多种软件,这里根据自己的使用经验并结合网上的一些资料,对Linux下常用的软件进行整理,供大家参考,希望能帮助到大家。每款软件都有它的优缺点,适合自己的才是最好的。在
麦克斯韦电磁场理论
1)从知识先后上说:麦克斯韦方程组为理解光的传播、反射、折射等现象提供了理论基础。不理解基础,怎么能理解上层建筑。2)从如何学懂上说,把基础学习的越牢,越深刻,后续学习上层建筑就会水到渠成一些,不会越学越多疑问。而是越学越少疑问。
PaddleOCR 与 PaddleX 调试
本文介绍了PaddleOCR与PaddleX的安装调试过程及应用对比。首先详细说明了环境准备步骤,包括安装ccache、设置环境变量及创建conda虚拟环境,提供了精简安装和源码安装两种方式。接着展示了使用PaddleOCR进行发票和手写汉字识别的测试结果,指出部分手写识别存在误差。随后对比了两者的差异:PaddleOCR专注于OCR算法优化,PaddleX则提供全流程工具链和标准化部署方案。最后演示了如何通过PaddleX部署OCR服务,包括API启动方法和客户端调用示例,为开发者提供了两种不同场景下的O
java找不到对象异常_找不到对象错误
我似乎真的找到一个能帮我解决我遇到的实际问题的人 .这是我的代码:library(RNeo4j)library(tidyverse)library(stringr)library(MASS)### uncomment the next 2 lines to reconnect to server & re-query the database# setwd("~/Desktop/Dashr...
Windows下QT5.15.2安装MQTT模块全攻略(附分支选择避坑指南)
本文详细介绍了在Windows环境下为QT5.15.2安装MQTT模块的完整流程,包括环境准备、源码获取、编译配置及项目集成等关键步骤。特别针对分支选择、依赖项处理和常见错误提供了实用解决方案,帮助开发者高效完成MQTT模块的安装与调试,适用于物联网开发场景。
语言找不到igragh_盘点R语言的各种"找不到"
今天是生信星球陪你的第490天 大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~ 就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~ 这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!封面图片来自:VisualHunt.com花花写于2019-11-21R语言的盘点系列:「盘点」R语言的那些分分合合「盘点」R语言的那些拼图方法「盘点...
把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发
2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。
YOLOv8模型轻量化实战:基于稀疏化剪枝与L1正则化的高效目标检测模型优化-附源码
本文提出一种YOLOv8轻量化方案,通过L1正则化稀疏化训练和动态阈值通道剪枝,在边缘计算场景中优化模型性能。方案分三步:首先通过L1正则诱导权重稀疏化并动态衰减系数;然后基于BN层权重统计进行通道剪枝,保留80%关键通道;最后对剪枝模型微调恢复精度。在COCO128数据集上验证,模型体积压缩40%,推理速度提升2.3倍,mAP仅下降0.4%,实现了精度与效率的平衡。该方案为移动端部署提供了可行的轻量化技术路径。
R语言报错找不到plot_table函数
R语言报错:找不到plot_table函数的解决方案 R语言是一种强大的统计编程语言,广泛用于数据分析和数据可视化。然而,在使用R语言的过程中,尤其是初学者,有时会遇到一些常见的错误提示,比如“找不到plot_table函数”。本文将探讨如何Diagnose这一问题,并提供相关代码示例。 1. 错误的来源 导致“找不到pl...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
当R语言报错的各种情况(不断收集更新ing)
1.报错显示“没有某个函数”时, 因为这个mutate函数是 dplyr 包中的函数,没有加载这个包,就无法使用这个函数。 如果想知道该函数属于哪个包的话,可以搜 然后在R中加载对应的包即可!哇哦!动起手来吧! ...
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
python找不到对象怎么办_你为什么总找不到对象
不知道某个时间点,你是否会对着美颜相机中的自己顾影自怜,这么帅,这么有才华,为何还找不着对象呢?这个不是我能解决的问题。今天我们要给大家解决的技术问题是“Object not found”的问题。命令行操作在文本界面工作中,经常会遇到各种找不到的问题,比如在Linux命令行中找不到命令,找不到目录文件,在R中找不到对象,找不到函数,在Perl或者python中,找不到某个变量,找不到某个函数等,这...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
systemctl命令找不到_你为什么总找不到对象
在学习生物信息的过程中,经常会遇到报错,而报错最多的就是找不到软件或者文件路径,这里我们都成为“对象”,至于你为何还找不着男女朋友的对象呢,这个不是我能解决的问题。今天我们要给大家解决的技术问题是“Object not found”的问题。命令行操作在文本界面工作中,经常会遇到各种找不到的问题,比如在Linux命令行中找不到命令,找不到目录文件,在R中找不到对象,找不到函数,在Perl或...
R语言rmarkdown knit导出的时候显示Error in eval找不到对象
现在定义变量的部分注释掉,依然可以运行,因为R语言在运行结束后不会删除产生的自定义变量,a已经在变量区了。但是Knit不行,因为他发现a没有定义过,他也不去找变量区,直接给你报错。我不知道,可能Knit过程中有自己的变量区,总之和RStudio的变量区不重合。这两段代码就是把变量区缓存的变量都清除,这样运行和Knit就等价了,因为都没有之前存在变量区的变量可以用。因此有时Rmarkdown可以运行是因为运行需要的变量在Envirnoment里面有,但是Knit的时候他找不到这个变量,就会报错。
R语言dplyr包filter函数 Error in filter(., ) : 找不到对象的报错原因和解决办法
报错描述 当我们想使用dplyr包中的 filter 函数对指定的dataframe进行如下的行筛选时,R报错Error in filter(., ) : 找不到对象X.stage_id. ,提示我们没有这一列 outside = outside %>% filter(X.stage_id. == 203) 但事实上我们的dataframe肯定是有这一列的,那为什么报错呢,主要是因为我们同时加载了比较多的包,导致有至少两个包同时含有filter函数,于是R语言无法自动识别我们是想使用dplyr包的fi
R语言,求大佬解答这道题为什么一直报错找不到对象‘WIF‘
(3)将数据分为训练集(70%)和测试集(30%),建立线性回归模型,分析NOC、WIF、HHT对家庭收入(HINCP)的对数的影响,并查看回归结果的概要信息,解释各部分的含义。(2)将变量HINCP、NOC转换为数值型,HHT、WIT转换为因子;# 建立线性回归模型,分析NOC、WIF、HHT对家庭收入对数的影响。(4)绘制测试集数据的点线残差图,计算均方根误差。# 将HINCP、NOC转换为数值型。# 将HHT、WIF转换为因子。# 查看回归结果的概要信息。# 预测测试集的结果。
R语言——报错:Error in (function (classes, fdef, mtable):函数‘select’标签‘“data.frame“’找不到继承方法
R语言——报错:Error in (function (classes, fdef, mtable):函数‘select’标签‘“data.frame”’找不到继承方法。
R.styleable找不到资源或者是报错
http://blog.youkuaiyun.com/chenjianandiyi/article/details/47029329 android开发用到了自定义view的属性, 流程 自定义View的步骤: 1. attr.xml 2. 布局文件中使用 3.构造方法中获取自定义属性 4. onMeasure 其中在 第三部中 TypedArray t
470



被折叠的 条评论
为什么被折叠?



