gpt4 book ai didi

windows - 监控脚本并在崩溃时发送电子邮件

转载 作者:行者123 更新时间:2023-12-03 16:55:22 25 4
gpt4 key购买 nike

我有一些使用 Windows 2003 R2 和 2008 中的任务调度程序安排的 perl 脚本。这些脚本直接使用 perl.exe 或通过批处理文件调用。

有时这些脚本无法执行(可能会崩溃),我们不知道这些崩溃。

当这些脚本崩溃时,有什么方法可以发送邮件吗?或多或少像监控这些脚本

提前致谢

卡尔提克

最佳答案

当您可以让插件监控自己时,为什么还要从外部监控脚本?首先你可以使用评估 为了捕捉错误,如果发生错误,您可以发送一封带有 的电子邮件Net::SMTP 模块 正如 rpg 建议的那样。但是,我强烈建议您使用某种日志文件,以便跟踪错误之前发生的事情以及导致错误的原因。您的主要目标应该是避免错误。这当然需要您修改脚本,如果由于任何原因您不能这样做,那么情况可能会稍微复杂一些,因为您需要另一个脚本。

Win32::Process::Info模块,您可以检索 Windows 上正在运行的进程并检查您的插件是否正在运行。

while(1) {
my $found = false;
my $p = Win32::Process::Info->new;
foreach my $proc ($pi->GetProcInfo) {
if ($proc->{Name} =~ /yourscriptname/i ) {
found = true;
}
}
if ($found eq 'false') {
# send email
my $smtp = Net::SMTP->new("yoursmtpserver");
eval {
$smtp->mail("sender@test.it");
$smtp->recipient("recipient@test.it");
$smtp->data;
$smtp->datasend("From: sender@test.it");
$smtp->datasend("\n");
$smtp->datasend("To: recipient@test.it");
$smtp->datasend("\n");
$smtp->datasend("Subject: Plugin crashed!");
$smtp->datasend("\n");
$smtp->datasend("Plugin crashed!");
$smtp->dataend;
$smtp->quit;
};
}
sleep(300);
}

我没有测试这段代码,因为我没有在 Windows 上安装 Perl,但逻辑应该没问题。

关于windows - 监控脚本并在崩溃时发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10595859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com