perl 服务器上建立文件目录,Perl脚本修改过的文件上传到FTP服务器

Perl脚本修改过的文件上传到FTP服务器

Perl_20111801.html简介

(本文假定你是{A} familar和{A2})。

从本地电脑上传文件到远程FTP服务器时,我跑进上传一个文件,其中只有少数实际上改变了很多的问题。

所以我决定与那些比较本地文件的时间戳远程文件。理论上需要上传一个文件,只有当 当地修改日期是新的比远程修改日期或远程文件不存在所有。

在实践中,问题是,FTP服务器(例如另一个基它的时钟是ahed背后或本地时钟的几秒钟),所以比较可能会失败。上传算法

在这篇文章中提出的解决方案,处理,存储修改日期的文件上传在本地数据库,并这些时间戳进行比较。

一言以蔽之的quot; algorithmquot;工程,为每个文件的上传,如这样的: 文件的一个条目是否存在于数据库中吗? 如果没有这个文件,上传,创建新的记录,储存其 路径和修改日期。 如果有的话,比较实际文件的修改日期 存储在数据库中修改日期。 如果实际的修改日期比存储的更新,上传 文件,存储在数据库中的修改日期。 如果实际的修改日期是早于存储,做 什么。

作为一个缺点,这是第一次启动脚本,数据库空的,因此,一旦上传的所有文件,即使他们远程FTP服务器上已经存在。

从第二次开始,执行该脚本,它的工作原理描述以上。脚本安装

您必须已经安装了Windows版本的Perl从{A3}。我总是使用最新版本,这是的ActivePerl5.6编写本article.nbsp;

此外,我使用的一些模块,在标准分布Perl的。这些模块可从CPAN在{A4}。

下列额外的模块需要安装: {A5}) {A6}) {A7})

60; 没有工作对我来说,安装。因此,我用{A8}

模块({A9})

每个模块包含一个自述文件,该文件说明了如何安装。脚本配置

Perl和所有的模块都安装时,您需要配置脚本。

必须配置以下值: &

#160; 价值 说明 范例

0; 美元ftp_server 远程FTP服务器的地址(IP或名称) "ftp.codeproject.comquot;

0; $ ftp_dir 远程FTP服务器上的子目录。在使用没有斜线 结束 "/下载/ filesquot; 美元ftp_uid 该帐户的用户名(用户ID)登录到FTP服务器 "chrisquot; $ ftp_pw 该帐户的密码登录到FTP服务器 "maunderquot;

0; @ src_dir 要上传的目录阵列。每一个给定的目录是递归 处理(处理,也即子目录)。 ("C:\ mywebsitequot;) @ wc_exclude 数组的一个子串匹配排除的文件或目录。 对于每个找到的文件(即完整路径),一个子串匹配 执行,然后如果没有项目被发现,这个文件或目录

60;是processed.nbsp; ("_vtiquot;,"。mdbquot;,"\ \ bakquot;,quot; \ \ dataquot;,"server.incquot;)

60; $ db_connstr ADO连接字符串连接到数据库。你可以在这里使用 任何有效的表达式,例如一个OLE DB的字符串或ODBC字符串。 "供应商= Microsoft.Jet.OLEDB.4.0;坚持安全信息= FALSE; 来源= \ \ \ \ thisismyserver \ \ DIR \ \ DIR \ \ DIR \ \ upload.mdbquot;

60; 美元db_uid 该帐户的用户名连接到数据库。通常,这 字段empty.nbsp; "" $ db_pw &

#160;该帐户的密码连接到数据库。通常,这

字段为空。 "" 脚本执行

当你配置了一切,简单的双击执行该脚本在资源管理器或通过键入"perl的upload.plquot;在命令提示。

脚本写入到stdout outpout,以及日志文件名为"upload.logquot;

结语

如果您有任何建议,发现的错误,或要对这篇文章发表评论或脚本,请在这篇文章的末尾写评论,我会回答。

请记住,我做的只是一些几个月的Perl现在。因此,有可能是很多的quot;,没有真正beautifulquot;的代码片段中,我脚本。因此,如果您有任何关于我的编码风格的建设性的意见或我的方式使用Perl,{A10}!|乌韦凯姆

回答

×评论会员:游客 时间:2011/11/20脚本是有用的文件上传,可以请你指导我如何从FTP服务器下载只有修改过的文件到本地机器。能否请您给我提供的脚本进行进一步,因为IM的Perl脚本知道..请帮我ASAP感谢vinodh

jadoohere

×评论会员:游客 时间:2011/11/20其真正的好thtx-#不断成长,不断的改进,始终适应##开源是一个理想的操作系统#承诺 @@@@@@@@@LINUX的潜力@@@@@@@@@@@@@@{BR}

乔恩Hulatt

×评论会员:游客 时间:2011/11/20我曾尝试FTP脚本文件以ASCII格式下面的命令。然而,它仍回落二进制格式。仅供参考,我使用的ActivePerl5.8 FTP-ASCII()你知道为什么吗?如何解决呢?我想在ASCII格式的文件下载。由于VM

乌韦凯姆

×评论会员:游客 时间:2011/11/20由于操作系统提供的"归档"标志,为什么不使用它?这是一个有点比的MSAccess容易。对不起,我缺乏一个诙谐或凄美的签名dissapoint

。乔纳森吉利根

×评论会员:游客 时间:2011/11/20我想重复这个过程,但实际上没有使用Perl。我同意你的答案,但是......有一个大的",而是"。让我对这个问题给你......如果在A位已经由文件的所有者翻转?你怎么知道那么如果你应该复制的文件或不?

乌韦凯姆

×评论会员:游客 时间:2011/11/20所以这就是为什么我自己处理的原因之一。--免费的基于Windows的CMS:{A11}-看我:{A12}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值