Articles of perl

我如何在不同的时区运行Perl脚本?

我需要运行一个Perl脚本,但使它认为它在不同的时区(GMT)比服务器configuration为正常使用。 我想这样做而不修改现有的脚本,如果可能的话,通过一些环境variables或任何configuration设置。 这是OS X及其供应商的Perl(v5.12.4)。

如何在Perl脚本中从ssh获取密码提示

当我从命令行执行这个,我得到提示乔的密码(这是我想要的): ssh -t 192.168.1.32 'scp [email protected]:/etc/hosts /tmp' 当我尝试从perl脚本运行相同的命令,它只是挂在那里(没有提示): `ssh -t 192.168.1.32 'scp joe\@192.168.1.31:/etc/hosts /tmp'`; 我怎样才能从Perl脚本做这项工作? 注意:不,我无法使用基于密钥的身份validation。

如何从crontab调用perl?

我可以在我的机架服务器共享主机的SSH控制台上运行这个命令: cd /home/myaccount/public_html/whatever; perl -w -I/home/myaccount/public_html/whatever rss2txt.pl http://whatever.com/feed 但是当我作为一个cron工作input相同的命令时,我得到: Can't locate XML/RSS.pm in @INC (@INC contains: /home/myaccount/public_html/whatever /usr/local/lib/perl5/5.8.8/x86_64-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/x86_64-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl . .) at rss2txt.pl line 21. BEGIN failed–compilation aborted at rss2txt.pl line 21. 尽pipeRSS.pm在同一个目录( /home/myaccount/public_html/whatever )旁边,并且它在@INC中有这个path,而且我已经做了一个cd到正确的文件夹如果还是这样的话。 记住它是共享主机,所以我不能改变全局设置,我怎么说服perl去寻找RSS.pm在/home/myaccount/public_html/whatever ? 不确定它是相关的,但这里是rss2txt.pl:http://pastebin.com/GWKZtJCN ramrumabuild议把它变成一个shell脚本(见下文)。 我在这里包括我的尝试,因为评论不能是多行的: #!/bin/bash PERL5LIB=$HOME/public_html/whatever PATH=$PATH;$HOME/public_html/whatever cd $HOME/public_html/whatever perl -w -I$HOME/public_html/whatever rss2txt.pl http://whatever.com/feed 尽pipe将该文件夹添加到PERL5LIB,PATH和@INC,但该shell脚本甚至不能从SSH控制台运行。 所以如果我们能得到这个shell脚本,我想我们会解决这个问题的。

我如何检查perl和CPAN文件的位置?

为了他的确切目的,我必须不断地为我的雇主设立新的服务器,因此他们都必须以完全相同的方式build立。 所以我在PHP中创build了一个脚本,从我自己的盒子中运行,自动发送所有相关文件,编译所有内容,运行更新等等。 然而,由于某些原因,这些全新的服务器来与Perl,这是好的,但他们已经安装在不同的地点。 这让我很难复制CPAN的Config.pm ,而无需手动查找位置。 有没有可能有一些命令我不知道,将追捕的确切位置? 如果有帮助, 通常服务器是CentOS 5

“yum更新”错误。 如何处理这个?

我有一个EC2实例,我正在尝试更新所有软件包。 但问题是,当我执行“百胜更新”它显示的消息: Transaction Check Error: file /usr/lib64/perl5/vendor_perl/Cwd.pm conflicts between attempted installs of perl-Cwd-2.21-1.2.el6.rf.x86_64 and perl-PathTools-3.40-3.4.amzn1.x86_64 file /usr/lib64/perl5/vendor_perl/auto/Cwd/Cwd.so conflicts between attempted installs of perl-Cwd-2.21-1.2.el6.rf.x86_64 and perl-PathTools-3.40-3.4.amzn1.x86_64 file /usr/share/man/man3/Cwd.3pm.gz conflicts between attempted installs of perl-Cwd-2.21-1.2.el6.rf.x86_64 and perl-PathTools-3.40-3.4.amzn1.x86_64 我的Linux版本是:3.4.48-45.46.amzn1.x86_64 Red Hat 4.6.3-2 我试图从更新中排除“perl”,但问题是nginx需要这个perl更新。 任何帮助如何处理这个? 提前致谢!

CentOS的依赖挑战

鉴于以下输出,build议先尝试什么? 这是一个CentOS 5.3盒子(通过yum升级到5.2)作为一个小型的开发服务器运行。 我一般对* nix感到满意,但依赖性追逐让我有时感到困惑。 所以这次我在追求帮助之前, 从今天的“yum更新”输出: Setting up Update Process Resolving Dependencies –> Running transaction check —> Package perl-Net-SSLeay.i386 0:1.35-1.el5.rf set to be updated —> Package perl-IO-Socket-SSL.noarch 0:1.26-1.el5.rf set to be updated —> Package perl-Net-DNS.i386 0:0.65-1.el5.rf set to be updated —> Package perl-Package-Constants.noarch 0:0.02-1.el5.rf set to be updated —> Package perl-IO-Compress.noarch 0:2.020-1.el5.rf set to […]

服务器挂机; 没有反应,但也没有断开

问候专家, 系统:标准的gentoo安装比没有更多的后缀。 当新邮件服务器停止响应时,我昨晚正在进行一个由IMAP驱动的大量电子邮件迁移(一堆Perl脚本)。 但是,我的SSH连接仍然有效,不会丢失。 新的连接挂起(authentication之前),但不要超时。 这是否意味着它最终会恢复? 或者需要我重新启动服务器?

无法让NetSNMP代理使用我的优先MIB进行应答

我必须添加一个专有的MIB到debian的snmpd,我必须能够从另一台非标准UDP端口的networking计算机上查询(获取和设置)(networking方面将是更进一步的一步)。 我在~/.snmp/mibs有一个MIB文件,并且有一个代理的perl扩展名,这个~/.snmp/mibs非常接近我在网上find的。 我修改了/etc/default/snmp , /etc/default/snmp snmp.conf和/etc/snmp/snmpd.conf ,可以从各种教程中了解 SNMP v3是一个约束,所以我创build了一个用户,遵循networking上的教程。 当我查询例如sysUpTime.0时,一切正常。 但我无法访问我的私人MIB: snmpget说:“目前没有Suvh实例存在于这个OID”,但可以给我的名字 当我从我的私人MIB的顶部询问时,snmpwalk给MIB提供了一个empy内容 snmptranslate说“未知对象标识符(未find子标识)” 我不知道这是否足以描述某人来帮助我。 我目前的看法是,代理不知道如何回答,但我似乎无法find阻止它这样做的东西(perl sub-agent在本教程中注册为read)。 我唯一知道的关于SNMP的东西(除了对缩写的各种解释,以及一旦你了解了它的工作原理,看起来很简单)就是我在网上find的最后一天。 请原谅,如果我不总是使用最合适的条款。 networking方面,我是一个用户,除了我通常开发低级驱动程序。 非常感谢您的帮助 丹尼尔

奇怪的Apache / PHP和Perl行为错误(70007)

我正在处理一个特殊的情况:我有两台Linux机器,一台是Scientific Linux(v4.8),一台是CentOS(v6.2)。 在SL机器上,我有一个Apache 2.2.9的XAMPP发行版,而在CentOS上,我有Apache 2.2.15(没有XAMPP)。 两台机器都在同一个networking上。 现在,我的情况是这样的:在两台机器上都有完全相同的脚本,PHP,JavaScript和Perl的组合,可以将文件从浏览器上传到服务器。 当我尝试访问SL机器上的脚本时,一切都如预期的那样,而CentOS上的脚本却出乎意料:从一个特定的networking,即防火墙和代理之后,当我试图上传一个小文件,但它工作,但是当我试图上传一个更大的文件(60 MB),Apachelogging下面的错误,并打破。 (70007)The timeout specified has expired: Error reading request entity data, referer: 但是,从不同的位置,这两个脚本的行为如预期,没有错误,即使试图上传500 MB的文件。 我不知道去哪里或要找什么。 我怎样才能解决这个问题? 更新:用Firebug监控networking,我明白了 502 Proxy Error ( The specified network name is no longer available. ) 但是,正如我所说的,这不会发生SL服务器事件,如果我通过相同的代理访问它。 为什么?! 更新2:在工作的机器,SL,我有一个Cache-Control: max-age=0 。 难道这有什么关系吗?

文件:: Temp版本0.18要求 – 这只是版本16

我在运行BestPractical RT的服务器上运行YUM。 现在Apache不会启动。 看看错误日志,我得到这个错误: File :: Temp需要0.18版本 – 这只是版本0.16在/usr/lib/perl5/site_perl/5.8.8/MIME/Tools.pm 14行。 我运行CPAN,并安装了File :: Temp,它说它已经有最新版本(0.22)。 为什么给我这个错误?