perl中FTP的使用

PERL 连接FTP实现文件上传下载 这里使用的Net::FTP模块,一般安装的perl都会自带该模块,查看perl是否安装某模块使用命令:perldoc Net::FTP,如果出现文档说明,则表示该模块已安装,如果出现:No documentation found for 则表明该模块未安装,perl安装模块可以参考该文章:[添加链接描述](https://blog.youkuaiyun.com/czz1141979570/article/d... 阅读详情
#!/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 "[".&current_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");
}


item响应事件失效、handler旧方法找不到、handler找不到sendMessage()、百度链接没响应、adb被占用、找不到连接设备、小米手机测试报错 之前在学习的时候遇到了好多小坑,好在网上好多前辈提供了很多解决方案,为了记得牢一些,也顺便把以前的一些东西总结一下。有点抱歉之前忘记记录那些参考链接,重新搜也认不大出之前看是哪一篇文章…大家把这篇文章当成转载的好了,以后一定记录好那些参考过的前辈文章链接。一、item响应事件失效ListView之类的容器控件大家都挺常用的,有时候可能会遇到这种情况,给容器设定好布局,创建好对应Adapter后,发现 阅读详情

相关推荐

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

SHUAI-优快云 470

如何使用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

zhangxinrun的专栏 3406

奇迹MU单机版开服全流程:从零搭建到分辨率调整(附GM工具使用技巧)

本文详细介绍了奇迹MU单机版从零搭建到分辨率调整的完整流程,包括环境配置、服务端启动、GM工具使用技巧等关键步骤。特别针对现代高分辨率显示器提供了优化方案,帮助玩家轻松搭建个性化游戏环境,重温经典MMORPG的独特魅力。

b3n4m5q6w7的博客 680

抖音短连接v.douyin.com/xxx 如何生成?

最近公司有个需求,在抖音里如何宣传自己的网站,并且不要有拦截域名的提示,截图如下。 通过ida反编译抖音的app后,将下载后的ipa文件用解压缩软件(如7zip等)解压,从解压后的目录Payload/Aweme.app/找到Aweme可执行文件,拖入ida进行反编译,ida可以检测objective-c语法。 然后进入主题,既然是聊天发消息,就尝试在ida里搜索"message",看看能否找到对...

kakuapi的博客 3万+

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 =

zhangxinrun的专栏 3100

元数据及数据仓库相关概念

文章目录元数据(metadata)的概念Data about Data定义技术元数据业务元数据总结数据仓库ODS简单的理解为 Operational Data Store, 运营数据仓储 数据整合层(也叫做数据缓冲层)EDW简单理解为 Enterprise Data Warehouse, 企业数据仓库ODS与EDW之间的差异使用角色数据来源数据获取性能和及时性数据架构数据共享能力数据系统提供应用数...

frone的专栏 3139

Linux下的经典软件-史上最全

前言从2012年接触Linux系统以来就被Linux系统所吸引,2个月后便完全抛弃了Windows。在这2年的时间里,我尝试了很多Linux发行版: Gentoo, Fedora, Ubuntu, Debian等。在这些系统中又尝试了很多种软件,这里根据自己的使用经验并结合网上的一些资料,对Linux下常用的软件进行整理,供大家参考,希望能帮助到大家。每款软件都有它的优缺点,适合自己的才是最好的。在

分享 Go、云原生、AI Infra 相关技术 2万+

通过声音识别鸟类

根据野生鸟类的外表来识别它是一回事。仅仅根据声音来识别同一只鸟是另一回事。除非你是一个熟练的观鸟者,通过声音识别鸟类可能相当具有挑战性德国马尔堡大学的一组数学、计算机科学和生物学研究人员设计了一种快速识别鸟类和监测当地生物多样性的方法。他们使用连接到 NVIDIA 的便携式设备拍摄的录音根据研究人员的说法是一个边缘人工智能系统,“基于分布式系统中运行的嵌入式边缘设备,能够对森林中记录的声景进行高效、连续的评估。”要了解更多信息,请参阅。

分享AI前沿科技 1680

Anylogic试用版密匙

#$%99dTMbLIj+hm/c9fn0suWlfQjdK9FzRH8oSbR Rbm3FEeONkF5mDLKHxhscEDBANDg4BSU2Oi6hErk TH/KzwiCtsM0jfD50uRsj60+gi9ifTlduwcpSr6a GtVSilXwF997xTVAoMLddqOzGQAbnSjBiJOBdm1Z 0QwwIEJynvYgckLfoEADzncIgNnJjYshWcmGh3s9 gTgyuQPlRBeTXfb+ZJPI1JGi4sAUljwdB53Df+AX SEf5FaIbih

qq_43939616的博客 8269

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...

weixin_35338620的博客 2120

Autosar代码包初识 2 - 如何编译Vector包内Demo工程

Vetcor autosar代码包Demo工程编译,GreenHills,RH850,Autosar,Davinci COnfigurator

weixin_42412049的博客 5184

语言找不到igragh_盘点R语言的各种"找不到"

今天是生信星球陪你的第490天 大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~ 就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~ 这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!封面图片来自:VisualHunt.com花花写于2019-11-21R语言的盘点系列:「盘点」R语言的那些分分合合「盘点」R语言的那些拼图方法「盘点...

weixin_29646607的博客 1095

改进yolov8|BackBone改进:PWConv、FasterNeXt替换yolov8主干网络

各位哥哥姐姐弟弟妹妹大家好,我是干饭王刘姐,主业干饭,主业2.0计算机研究生在读。和我一起来改进yolov8变身计算机大牛吧!本文中的论文笔记都是刘姐亲自整理,原创整理哦~

weixin_44379985的博客 749

撸毛笔记-朴朴超市 v1.01

朴朴超市 v1.01脚本地址:自动签到和组队赚朴分, 朴分可以抵扣50%的金额组队瓜分需要4人成团, 每个号每天只能开团和入队各一次每天跑一两次即可使用扫码或自己想办法捉refreshToken扫码获取token: (先微信进入朴朴超市小程序并登录注册过账号再扫码)把获取的refreshToken和备注(非必须)填到文件pupuCookie.txt里(第一次运行会自动创建), 多账号换行或&或@隔开。

xiaoshun007的专栏 1810

R语言报错找不到plot_table函数

R语言报错:找不到plot_table函数的解决方案 R语言是一种强大的统计编程语言,广泛用于数据分析和数据可视化。然而,在使用R语言的过程中,尤其是初学者,有时会遇到一些常见的错误提示,比如“找不到plot_table函数”。本文将探讨如何Diagnose这一问题,并提供相关代码示例。 1. 错误的来源 导致“找不到pl...

weixin_29147539的博客 400

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

当R语言报错的各种情况(不断收集更新ing)

1.报错显示“没有某个函数”时, 因为这个mutate函数是 dplyr 包中的函数,没有加载这个包,就无法使用这个函数。 如果想知道该函数属于哪个包的话,可以搜 然后在R中加载对应的包即可!哇哦!动起手来吧! ...

Rosebud的博客 9499

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python找不到对象怎么办_你为什么总找不到对象

不知道某个时间点,你是否会对着美颜相机中的自己顾影自怜,这么帅,这么有才华,为何还找不着对象呢?这个不是我能解决的问题。今天我们要给大家解决的技术问题是“Object not found”的问题。命令行操作在文本界面工作中,经常会遇到各种找不到的问题,比如在Linux命令行中找不到命令,找不到目录文件,在R中找不到对象,找不到函数,在Perl或者python中,找不到某个变量,找不到某个函数等,这...

weixin_39830012的博客 1528

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

systemctl命令找不到_你为什么总找不到对象

在学习生物信息的过程中,经常会遇到报错,而报错最多的就是找不到软件或者文件路径,这里我们都成为“对象”,至于你为何还找不着男女朋友的对象呢,这个不是我能解决的问题。今天我们要给大家解决的技术问题是“Object not found”的问题。命令行操作在文本界面工作中,经常会遇到各种找不到的问题,比如在Linux命令行中找不到命令,找不到目录文件,在R中找不到对象,找不到函数,在Perl或...

weixin_39534149的博客 5400

R语言rmarkdown knit导出的时候显示Error in eval找不到对象

现在定义变量的部分注释掉,依然可以运行,因为R语言在运行结束后不会删除产生的自定义变量,a已经在变量区了。但是Knit不行,因为他发现a没有定义过,他也不去找变量区,直接给你报错。我不知道,可能Knit过程中有自己的变量区,总之和RStudio的变量区不重合。这两段代码就是把变量区缓存的变量都清除,这样运行和Knit就等价了,因为都没有之前存在变量区的变量可以用。因此有时Rmarkdown可以运行是因为运行需要的变量在Envirnoment里面有,但是Knit的时候他找不到这个变量,就会报错。

qq_52651584的博客 5502

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

Smilecoc的博客 5886

R语言,求大佬解答这道题为什么一直报错找不到对象‘WIF‘

(3)将数据分为训练集(70%)和测试集(30%),建立线性回归模型,分析NOC、WIF、HHT对家庭收入(HINCP)的对数的影响,并查看回归结果的概要信息,解释各部分的含义。(2)将变量HINCP、NOC转换为数值型,HHT、WIT转换为因子;# 建立线性回归模型,分析NOC、WIF、HHT对家庭收入对数的影响。(4)绘制测试集数据的点线残差图,计算均方根误差。# 将HINCP、NOC转换为数值型。# 将HHT、WIF转换为因子。# 查看回归结果的概要信息。# 预测测试集的结果。

m0_69354067的博客 678

R语言——报错:Error in (function (classes, fdef, mtable):函数‘select’标签‘“data.frame“’找不到继承方法

R语言——报错:Error in (function (classes, fdef, mtable):函数‘select’标签‘“data.frame”’找不到继承方法。

qq_45794091的博客 7626

R.styleable找不到资源或者是报错

http://blog.youkuaiyun.com/chenjianandiyi/article/details/47029329 android开发用到了自定义view的属性,  流程  自定义View的步骤:  1. attr.xml  2. 布局文件中使用  3.构造方法中获取自定义属性  4. onMeasure 其中在 第三部中  TypedArray t

qq_38719039的博客 4180
上一篇: oracle复制表数据,复制表结构
下一篇: TEMPORARY Tablespaces and TEMPFILES
wqq_721
博客等级 码龄18年 10粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值