Articles of perl

查找当前通过基本身份validation(Apache)进行身份validation的用户

当你通过一个基本的身份validation页面login时,你authentication的用户名是否存储在任何地方(在服务器或客户端机器上),也许在一个环境variables? 背景 :我有一个电子邮件服务器的公共Webpipe理页面,我想知道谁在做什么。 当用户通过基本身份validation成功login时,我不知何故希望能够识别他们并logging他们的行为。 所以每次提交请求时,我都可以写入日志文件。 基本格式是: $username ran a $function against $useraccount 所以如果用户改变了某人的权限,例如: Admin-Bob ran a permission change against User-Scott 因此,如果发生错误,我可以轻松地追溯到日志文件中导致原因的操作。 我试图检查%ENV哈希无济于事,任何想法? 我真的不想进入类似PHP的会话,因为这意味着废除我的基本身份validation,这已经给我一个很好的控制程度。 如果我必须使用会话编写代码,我需要实现一个系统来阻止用户经过最大尝试等,我不想编码。 我认为这更适合serverfault,因为它比编程语言更适合于Apache。 会议可以用无数种语言完成。

糟糕的翻译:文本文件忙

我已经习惯了用“vi”编辑Perl CGI脚本,同时打开一个浏览器来testing它们。 最近,当我这样做的时候,我得到了“500”的服务器错误,当我从shell运行脚本的时候,我得到了“糟糕的解释器:文本文件忙”。 唯一的解决办法是每当我想testing脚本时退出“vi”,这是一个皇家的痛苦, 应该是完全没有必要的。 那是怎么回事? 我正在运行一个Debian服务器,我经常更新,我假设它开始于一些所谓的“升级”:)

Linux系统pipe理员的编码练习?

我正在为一家大公司(前10家公司)准备一个系统pipe理员(linux)angular色,而其中一个必备条件是像perl,python或Ruby这样的语言。 我有一个电话采访,涉及与面试官分享编辑,现在我可以期望在电话面试或常规面试中进行哪种编码练习? 我在大部分日常任务中使用shell,偶尔使用Perl和python执行更大的任务。 现在我不指望他们问 编写一个将AD用户同步到LDAP的脚本。 我不认为数据结构,algorithm或sorting问题适用于我的angular色? 你可以给我任何SysAdmin相关的编码问题的例子吗?

我有一个perl脚本,应该无限期地运行。 它正在被杀死……我如何确定是谁杀了它?

我在屏幕上运行perl脚本(我可以login并检查debugging输出)。 脚本的逻辑中没有任何东西应该能够杀死它。 我只是两个有权访问服务器的人之一,另一个人发誓,这不是他(我们都有相当多的钱骑在它继续顺利运行)。 我没有理由相信一些黑客已经设法得到一个壳或类似的东西。 我几乎没有理由怀疑主机操作的pipe理员(带宽/ CPU明智,这个脚本是相当轻量级的)。 屏幕继续运行,但在perl脚本的输出结尾,我看到“Killed”,并且已经回到提示。 我该如何去testing什么是重击该死的东西? 我已经检查过crontab,那里没有任何东西会杀死随机/非随机进程。 任何日志文件中都没有提供任何提示。 它将运行2到8小时,似乎(并在我家里的Mac,它将运行24小时以上没有问题)。 服务器运行的是Ubuntu版本的东西或其他东西,我可以看看,如果它很重要。

LDAP密码encryption(userPassword属性)

我试图将密码从LDAP导入到MySQL数据库。 当我看着已知密码test的userPassword属性,我得到这个: userPassword:: e01ENX1DWTlyelVZaDAzUEszazZESmllMDlnPT0= 在这个阶段的密码是base64编码,解码后我得到这个: {MD5}CY9rzUYh03PK3k6DJie09g== – 它看起来不像CY9….string是MD5哈希,因为它不是32个字符(实际上是128位)。 – 它似乎没有base64编码,因为我没有得到解码后的test 。 – 当我生成我自己的MD5哈希test我得到098f6bcd4621d373cade4e832627b4f6 。 我发现这个perl脚本 (页面上的第二个),它会从test中生成{MD5}CY9rzUYh03PK3k6DJie09g== ,但是当我查看脚本时,我看不到我所缺less的内容,因为它看起来像md5哈希base64在与{MD5}连接之前进行编码: $ctx = Digest::MD5->new; $ctx->add('secret'); $hashedPasswd = '{MD5}' . encode_base64($ctx->digest,''); 有人可以解释从test到CY9rzUYh03PK3k6DJie09g==的步骤吗?

Perlsearch和replace

如何使用search和replace来更改文件的内容。 我需要能够改变“全部为无”和/或“全无”,而不必每次都手动去做数百行。 下面是一个带有行号的示例文本文件。 我知道如何打开和closures已经写入的文件。 行 1 define_filter absolute_minimal_filter ——-全部 2 define_filter atma_basic_filter ——– —–无 3 define_filter atma_communication_filter – 全部 4 define_filter atma_health_filter ————-无 5 define_filter atma_misc_filter —————全部 6 define_filter atma_performance_filter —- none 7 define_filter atma_supplemental_filter —- none

由于Date :: Manip问题,无法运行logwatch

我试图在下面运行logwatch [root@machine cron.daily]# ./0logwatch ERROR: Date::Manip unable to determine TimeZone. Execute the following command in a shell prompt: perldoc Date::Manip The section titled TIMEZONES describes valid TimeZones and where they can be defined. 我的date如下 root@machine cron.daily]# date Thu Aug 23 06:25:21 GMT 2012 现在基于各种论坛的细节,我试图通过设置来解决这个问题 /etc/timezone to “+0800” 但它没有工作 我的/etc/localtime指向/usr/share/zoneinfo/GMT ,由puppetpipe理 我如何去解决这个问题? 我仍然希望所有的机器都在GMT时区。 编辑: 可悲的是, 这两个更改都不起作用: […]

perl相当于sh -e

在/bin/sh和/bin/bash (我想还有很多其他的shell),用#!/bin/sh -e启动脚本(或者在脚本的某个位置执行set -e )会导致脚本中止当脚本中的任何命令行退出时,状态码不是0。 是否有任何等效或解决方法来获得相同的行为在Perl脚本? (即,如果任何指令产生错误,或者如果使用system(…)执行的任何外部命令或反引号返回错误代码,则立即退出)

CPAN无法安装DateTime模块

我试图通过运行“cpan”并在提示符处input“install DateTime”来安装Perl DateTime模块。 经过大量的处理和打印后,我得到了这个消息: 在(eval 907)第3行的编译失败。 #看起来像是你的testing在输出任何东西之前就已经死亡了。 吨/ 41cldr_format ………可疑 testing返回状态255(wstat 65280,0xff00) 死了。 失败的testing1-101 失败101/101testing,0.00%好吧 吨/ 42duration_class …… OK T /荚覆盖……….跳过 全部跳过:Test :: Pod :: Coverage 1.08需要testingPOD覆盖率 吨/荚……………….跳过 全部跳过:testingPOD需要testing:: Pod 1.14 testing统计失败Wstat失败失败列表失败 ————————————————– —————————– t / 07compare.t 255 65280 26 18 69.23%18-26 t / 17set_return.t 255 65280 7 12 171.43%2-7 t / 19leap_second.t 255 65280 […]

Perl 5.10在CentOS 5上?

我想在我的服务器上运行一些需要perl 5.10的perl脚本。 Perl 5.10似乎在很多年前就已经发布了,而且现在还不能用于CentOS5。 在#rhel我build议安装RHEL6,但我使用CentOS。 在#centos,我被开玩笑地推荐安装CentOS-6。 这让我想知道…除了CentOS之外,我所知道的所有其他Linux发行版已经支持perl 5.10。 我应该手动安装perl 5.10? 或者这可能最终导致我的服务器混乱? 还是应该尝试重build基于Fedora源码包的软件包?