设为首页 收藏本站
查看: 1071|回复: 0

perl模块Net::FTP使用

[复制链接]

尚未签到

发表于 2015-5-28 14:05:49 | 显示全部楼层 |阅读模式
如何新建一个FTP对象
$ftp=Net::FTP->new($host[,%options])%options
可以对这个新建的FTP对象指定特定的选项,比如连接的超时时间等。
选项列表:
Port
Timeout
Passive 为文件传输使用被动模式
BlockSize 传输的块长度,默认为10240
如何登录指定的FTP主机
$success=$ftp->login([$username][,$pwd][,$account])
login方法可以不加任何的参数,默认以anonymous为账户名登录,它会查找.netrc 文件来作为它的认证信息。
如何设置文件传输模式
$type=$ftp->ascii 或者 binary
ascii适用于传输文本文件,这个方法返回前一个模式的值,比较的特殊。
如何得到远程FTP服务器上的当前目录
$dir=$ftp->pwd()
返回完整的工作路径
如何删除服务器上目录,如果有权限
$success=$ftp->rmdir($dir)
如何创建目录
$success=$ftp->mkdir($dir,$parents)
如果$parents为真,则会像mkdir -p这样
如何取得某目录内的文件名和目录名的短路径格式列表
@items=$ftp->ls($dir)
在标量上下文中,它返回对数组的引用。你可这样使用它$ftp->(‘-lF’)
@items=$ftp->dir() 这个和上面的ls差不多。它返回长格式形式的列表,像是ls -lg的形式。
如何从服务器上下载文件
$success=$ftp->get($remote,$local,$offset)
$remote可以为完整路径或者相对于当前目录的相对路径,$local可以指定下载的文件要存储的名字,即文件重命名。可以把$local设定为一个存在的文件句柄,这样下载的文件将发送到那个句柄中。比如$ftp->get(‘filename’,\*STDOUT)。$offset是为断点续传而准备的参数,也就是它在传输前会从这个位置来传输。
如何直接检索远程文件不下载到指定的文件
$file_handle=$ftp->retr($filename)
这样我们可以读取这个文件句柄。print while
如何上传文件到远程服务器上
$success=$ftp->put($local,$remote_dir)
如何初始化一个文件的传输
$file_handle=$ftp->stor($filename)
如果你能够把文件从本地上传到指定的远程目录内,这个方法返回一个文件句柄,之后我们就可以通过文件句柄来写文件到远程目录的指定文件下。还有一个功能差不多的方法:appe(),从名字上看,它是追加的意思,而sotr则直接覆盖已经存在的文件。
如何返回远程文件的修改时间,如果FTP服务器支持
$modtime=$ftp->mdtm($file)
它返回从纪元元年到现在的秒数;如果文件不存或者不是普通的文件,它返回undef。
如何得到远程服务器的文件大小
$size=$ftp->size($file)
如果文件不存在或者不是普通文件,返回undef。它以字节为单位返回指定文件的长度。
如果取得FTP服务器反馈的消息
$mesage=$ftp->message()
FTP以交互的形式工作,我们给FTP服务器发送一个指令,它进行解析并返回特定的消息,如 220 Serv-U FTP Server v6.4 for WinSock ready…,前面那个220指示命令完成的状态,大于500的表示FTP服务器内部的错误,400~499表示客户端的错误,200~299表示命令成功完成。通常来说我们没有成功登录到指定的FTP时,message()方法可以报告发生了什么错误。
其他要点
Net::FTP是libnet实用程序的一部分,这个软件包还包含其他的有用模块,比如Net::Time、Net::SMTP,具体可以参看http://search.cpan.org/~gbarr/,这是此软件包开发者的项目主页。在这里随便提下Net::Cmd模块。这个模块有两个主要的方法:command() 和response()。
$success=$obj->command($cmd,@args)
此方法将$cmd指定的命令发送给服务器,可以为命令加一些参数,它自动的在各参数之间加入空格进行分隔并将一个CRLF控制字符附加到命令的末尾。
$status=$obj->response()
它获取服务器对最后一次命令的响应,返回一个数字作为状态报告给我们,在失败的情况下返回undef。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71582-1-1.html 上篇帖子: Vs.net2003+Sql2003+Serv-u实现在线注册FTP功能——软件配置 下篇帖子: 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表