我在屏幕上运行 perl 脚本(我可以登录并检查调试输出)。脚本逻辑中的任何内容都不能杀死它。
我是仅有的两个可以访问服务器的人之一,另一个人发誓不是他(我们都有很多钱可以继续顺利运行)。我没有理由相信某些黑客已经设法获得了一个 shell 或类似的东西。我几乎没有理由怀疑主机操作的管理员(带宽/cpu 方面,这个脚本非常轻量级)。
Screen 继续运行,但在 perl 脚本的输出结束时,我看到“Killed”并且它已回落到提示。我如何去测试什么是该死的东西?
我检查了 crontab,里面没有任何东西可以杀死随机/非随机进程。任何日志文件中都没有任何提示。它将运行 2 到 8 小时,看起来(在我家里的 Mac 上,它可以运行 24 小时以上没有问题)。服务器正在运行 Ubuntu 版本,如果重要的话,我可以查一下。
我已经使用 cpanm 在我的系统上安装 cpan perl 模块,但是 .cpanm/work 目录是 100 兆字节,我想删除它。
我可以删除这个目录而不会对我的 cpanm 安装产生不利影响吗?
所以我塞了一个debian的升级,upgrade和dist-upgrade。我更习惯于 yum 但这不是借口。
现在事情变得愚蠢了。大多数事情都有效,但是,我的 bugzilla 安装失败。在加载 bugzilla 时,我收到 500 错误,并记录在 error.log 中;
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Can't locate Email/Address.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at Bugzilla/Mailer.pm line 48.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla/Mailer.pm line 48.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at Bugzilla/Token.pm line 35.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Red Hat Enterprise Linux 5.5 上的主目录中编译 Perl 5.12.1。但是,当我尝试制作时,最终收到以下错误:
Making IO (all)
make[1]: Entering directory `/users/rmi1/build/perl-5.12.0/dist/IO'
make[1]: Leaving directory `/users/rmi1/build/perl-5.12.0/dist/IO'
Making all in dist/IO
make all PERL_CORE=1 LIBPERL_A=libperl.a LINKTYPE=dynamic
make[1]: Entering directory `/users/rmi1/build/perl-5.12.0/dist/IO'
cc -c -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.25_02\" -DXS_VERSION=\"1.25_02\" -fPIC "-I../.." IO.c
IO.xs: In function ‘XS_IO__Poll__poll’:
IO.xs:249: error: invalid application of ‘sizeof’ to incomplete type ‘struct pollfd’
IO.xs:253: error: invalid use of undefined type ‘struct pollfd’
IO.xs:253: error: dereferencing pointer to incomplete type
IO.xs:255: error: …Run Code Online (Sandbox Code Playgroud) 我只是想知道是否有人可以告诉我如何在 debiab 上安装以下 perl 模块:
install LWP
install DBI
install DBD::mysql
install GD
Run Code Online (Sandbox Code Playgroud)
我尝试使用 CPAN 虽然当我跑步时
perl -MCPAN -e shell
install LWP
Run Code Online (Sandbox Code Playgroud)
它告诉我我缺少目标文件操作数。
任何的想法?
我正在一台新的 Ubuntu 服务器上安装 Bugzilla,并且 ./checksetup.pl 找到了另一个我需要安装的库。
所以它告诉我运行这个命令:
/usr/bin/perl install-module.pl Math::Random::Secure
Run Code Online (Sandbox Code Playgroud)
当我运行它时,出现以下错误:
ERROR: Using install-module.pl requires that you install "make".
Run Code Online (Sandbox Code Playgroud)
Make 已安装(apt-get install make),我知道它在我的 $PATH(在 /usr/bin/ 中)中,但我仍然从 install-module.pl 中得到该错误。
我是否必须做一些特殊的事情来确保它有正确的路径,还是应该使用我的 shell 中的路径?“make”是指我安装的 make 还是可以指代某个 perl 模块?
谢谢!
我希望自动将给定目录中的文件从一台服务器传输到另一台服务器。他们都在同一个网络上,可以互相ping通,甚至可以从一个到另一个ssh。
目前我的方法是 SSH 到服务器 A,将文件拉下来,SSH 到服务器 B 并上传它们......
我已经在这里看到了一篇文章,但我想问你们什么是从服务器到服务器传输文件、嵌入到 cron-job 或自动化的最佳方式。
这是我的限制:
两个服务器都不能有任何公共 Web 服务(没有端口 80,没有 apache,没有任何悲伤的脸)
两个服务器都不能使用任何类型的 FTP 连接(尽管我们可以 ssh)
预先感谢大家的帮助
我刚刚将 Debian Lenny box 升级到 Wheezy,发现 suidperl 不见了。谷歌搜索显示上游维护者删除了它;
我需要suidperl 来运行我们的邮件安装,Open Webmail。
我没有时间做这个。
谷歌搜索没有发现简单的解决方法。
这里有人知道如何在 wheezy 上获得 suidperl 吗?简单地?谢谢。
每当消息发送到特定地址时,我都会使用 Postfix 运行脚本。该脚本是一个 Perl 脚本,它使用Log4perl将日志写入文件。Log4perl 每天轮换日志文件。
除了一个小角落之外,它运行良好。当日志文件大小超过 50MB 时,脚本无法写入日志文件。
对 Postfix 进行一些研究后,看来这可能是 Postfix 设置的限制。postconf这是可能相关的部分输出。
$ postconf | grep size
berkeley_db_create_buffer_size = 16777216
berkeley_db_read_buffer_size = 131072
body_checks_size_limit = 51200
bounce_size_limit = 50000
header_size_limit = 102400
mailbox_size_limit = 51200000
message_size_limit = 10240000
tcp_windowsize = 0
$ postconf | grep virtual_mailbox_limit
virtual_mailbox_limit = 51200000
Run Code Online (Sandbox Code Playgroud)
是否有任何选项可以更改以消除从脚本创建的日志文件的文件大小 50MB 限制?
以下是 Log4perl 设置的完整性。
$ cat /some/path/to/my/log4perlsettings.cfg
log4perl.logger.mylog = DEBUG,LOGGER
log4perl.appender.LOGGER = Log::Dispatch::FileRotate
log4perl.appender.LOGGER.TZ=PST
log4perl.appender.LOGGER.DatePattern=yyyy-MM-dd
log4perl.appender.LOGGER.filename = /some/path/to/my/logs/logfile.log
log4perl.appender.LOGGER.mode = append
log4perl.appender.LOGGER.max …Run Code Online (Sandbox Code Playgroud) 几个月前,我创建了一个用于将用户添加到 Active Directory 的 perl 脚本。在 Windows 7 上它运行良好。在 Windows 10 上,perl 无法运行“dsquery”或“dsadd”,但我真的无法理解这一点。
当我从同一命令行运行“dsquery”时,它可以工作。尝试使用 perl 脚本...不会!
Der Befehl "C:\Windows\System32\dsquery.exe" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Run Code Online (Sandbox Code Playgroud)
(= 无法找到命令 dsquery...)
perl 脚本中的一些代码片段:
$datetime = strftime("%d.%m.%Y %H:%M:%S", localtime);
&GetOptions ("-v=s" => \$fname,
"-n=s" => \$sname,
"-u=s" => \$uname,
"-p=s" => \$pwd,
"-noshare" =>\$noshare,
"-test" =>\$test,
"-noquota" =>\$noquota,
"-sshpw=s" =>\$sshpw );
unless ($fname) {
print "Vorname: ";
$fname = <STDIN>;
chomp $fname;}
unless ($sname) {
print "Nachname: ";
$sname = <STDIN>; …Run Code Online (Sandbox Code Playgroud)