Articles of perl

批量禁用OTRS中的客户

问题是关于OTRS客户。 我不能使用外部客户后端,所以我想通过CSV文件更新客户数据库。 我已经写了一个脚本来通过otrs.AddCustomerUser.pl添加新的客户。 但是,我怎么能通过一个脚本批量禁用老客户?

Perl模块未安装在Amazon Linux AMI(centOs 6.5)中

我正在configurationcloudwatch自定义指标,这需要安装一些perl模块。 这里是我试图安装perl模块的命令。 yum install perl-Switch perl-Sys-Syslog perl-LWP-Protocol-http 我正在AWS上运行CentOs 6.5。 这是我得到的回应。 [root@ip-10-21-1-38 aws-scripts-mon]# yum install perl-Switch perl-Sys-Syslog perl- LWP-Protocol-http Loaded plugins: fastestmirror, presto Loading mirror speeds from cached hostfile * base: mirror.es.its.nyu.edu * extras: mirror.ash.fastserv.com * updates: mirror.ash.fastserv.com Setting up Install Process No package perl-Switch available. No package perl-Sys-Syslog available. No package perl-LWP-Protocol-http available. Error: Nothing […]

Gentoo出现套餐冲突

我试图在我的Gentoonetworking服务器上安装git。 命令“emerge dev-vcs / git”返回以下结果: * IMPORTANT: 12 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. * IMPORTANT: 5 config files in '/etc/portage' need updating. * See the CONFIGURATION FILES section of the emerge * man page to learn how to update config files. Calculating dependencies… done! […]

如何从ps -ef命令查看所有进程的详细信息

大家好 我在我的bash脚本中使用ack.pl来在Linux操作系统中searchIP 只是举个例子,只是为了说明这个问题我会在这里举个简短的例子 # ( ./ack.pl -Q -a -l –max-count=1 –ignore-dir=log –ignore-dir=logs –ignore-dir=lib 1.1.1.1 /etc/sysconfig ) & [2] 25014 在这个例子中,我运行ack.pl来查找/ etc / sysconfig下的IP 1.1.1.1 但是当我想要看到过程细节如下 # ps -ef | grep 25014 root 25014 13283 1 14:46:53 pts/1 0:06 perl ./ack.pl -Q -a -l –max-count=1 –ignore-dir=log –ignore-dir=logs –ignor 那么我没有看到在过程中的“/ etc / sysconfig”? 我的准备是: 我需要做什么才能在打开的进程中看到PATH – / […]

Postfix,SPF和Perl:警告:在读取input属性名称时,私密/策略的提前结束input

我遵循本指南( http://www.thenoccave.com/2013/05/08/centos-6-postfix–spf-checking/ ),但在maillog出现以下错误: May 8 22:15:13 ip-172-31-15-65 postfix/smtpd[1999]: warning: premature end-of-input on private/policy while reading input attribute name May 8 22:15:14 ip-172-31-15-65 postfix/spawn[2037]: warning: command /usr/bin/perl exit status 2 May 8 22:15:14 ip-172-31-15-65 postfix/smtpd[1999]: warning: premature end-of-input on private/policy while reading input attribute name May 8 22:15:14 ip-172-31-15-65 postfix/smtpd[1999]: warning: problem talking to server private/policy: […]

CGI错误(无法打开Perl脚本/权限被拒绝)

操作系统:CentOS 7 / Apache:2.4 我正在升级机器和软件,其中一部分涉及从Apache 2.2.x升级到Apache 2.4.x. 它的很好的一部分工作正常,包括PHP脚本和纯HTML文件,但我有很大的问题,试图让Perl CGI脚本运行。 暂时,在排除故障时,我已经禁用了Selinux的httpd,(作为宽容:即。semanage permissive -a httpd_t),所以我知道这不是问题。 我已经尝试了很多东西,但底线是我不能从/ cgi-bin /运行任何东西。 这个特定的站点,由于遗留的原因,不在/ var / www /下,但在/ home / www / htdocs /下,但是我认为这只是Selinux的一个问题,目前它被禁用。 所以,我在Apache错误日志中得到的错误消息的例子如下: AH01215: Can't open perl script "/home/www/htdocs/zac/cgi-bin/test.cgi": Permission denied 我尝试了不同的东西,但是我现在有一个“apache”作为/ cgi-bin /的组拥有者,拥有777的权限,以及作为所有者和组的脚本的apache,权限为777.脚本非常简单, (只是打印一些文本来testing),我已经删除并重新添加每个脚本(即#!/ usr / bin / perl)中的第一行,以确保没有任何可笑的字符。 我知道在2.4的conf文件中的一些语法是不同的,但我认为我有一切可以,请看下面: <VirtualHost *> DocumentRoot "/home/www/htdocs/zac/" ServerName www.zacserver.pc ServerAlias zacserver ScriptAlias […]

命令行perl不会破坏符号链接

我想用perl编辑原始文件,当我有一个数字序列的别名。 任务是在命令行上使用perl,例如 perl -pe 's/apples/oranges/' 但是要编辑文件: perl -i.bak -i选项不适用于符号链接 ln -s fs fruitSalad 用-i ,perl将会重写一个新的文件,replace(破坏)前面的符号链接。 即它不会编辑原文。 有一个解决方法( https://unix.stackexchange.com/questions/9318/is-there-a-way-to-make-perl-i-not-clobber-symlinks )就是这样的: perl -i.bak -pe 's/apples/oranges/' $(readlink fs) 这是我的问题 。 我想就地编辑一系列符号链接中的原始文件。 ln -s fs.1 fruitSalad-1 ln -s fs.2 fruitSalad-2 使用正常的文件,Perl将使用范围,例如 perl -i.bak -pe 's/apples/oranges/' fs.{1..2} 但是,这不符合$(readlink __)技巧。 这是不可能的,我宁愿避免xargs。 任何想法如何通过命令行中的符号链接编辑文件的范围? 我错过了什么?

参数列表与grep太长

通常要search和replaceselect的文件中的string,我会发现: grep -rl 'pattern' . 这工作正常,除非你有很多比赛。 无论如何,我环顾四周,发现了一个使用find的build议: find /root/path -type f -exec grep -l 'FIND' {} + 这工作正常,但是当我尝试将它传递到Perl来做replace,我仍然得到错误: perl -p -i -e 's|FIND|REPLACE|g' `find /root/path -type f -exec grep -l 'FIND' {} +` -bash: /usr/local/bin/perl: Argument list too long 有没有办法解决?

pipe道发送电子邮件到Perl脚本

我一直在试图将传入的电子邮件传递给perl脚本,以便我可以通过发送电子邮件的发票来监视潜在的问题,而且没有太多的运气。 使用Red Hat Linux 2.6.32-696-6.3.el6.x86_64,cPanel 56.0(build 51)和Exim 4.87 使用cPanel,我已经将[email protected]收到的电子邮件转发到|/home/myuser/emailtest.pl 。 我从不同search拼凑的脚本看起来像这样(脚本权限设置为755): #!/usr/bin/perl # This is a test! use strict; use warnings; use File::Touch; use File::stat; use Time::localtime; my $file_list = ('/home/myuser/testfile'); touch $file_list; my $timestamp = ctime(stat($file_list)->mtime); #print $timestamp; #print "\n"; 我最初得到一个反弹的错误,经过一些阅读,我看到它可能是因为我打印的时间戳。 我并不需要打印时间戳,我只是在自己运行脚本的时候这样做,以validation是否可以“触摸”文件,还可以读取date。 在注释掉打印命令之后,不再有反弹。 当从shell运行脚本时,脚本仍然有效,并且我可以从'ls'validation时间戳,但是当我发送电子邮件到我的testing帐户时,仍然没有运气。 但是,当电子邮件到达时,脚本似乎没有成功地触摸文件。 我没有得到反弹,但'testfile'永远不会改变,除非我从shell手动运行脚本。 我已经尝试将脚本移动到/ home / myuser / public_html以及相同的结果。 我想最终能够在接收到电子邮件时“触摸”文件,然后使用每日cron作业来检查文件的时间戳。 如果4天没有更改文件,我想让它给我发一封电子邮件,让我知道可能有问题。 […]

通过程序检查,如果在Linux操作系统上的eth连接已经启动或closures…和内核2.4

我需要通过程序(使用c或perl)来检查eth连接状态(链接和链接)的变化。 现在我使用Keepalive的方式,但是我有时会松开通知。 在消息文件内部,我看到了'eth0 link down'的内核通知,这个笔记总是正确的,所以我正在寻找一个方法,可能是一个系统调用来检查eth状态。