Linux 找出谁/什么在调用脚本(cron)
我最近遇到了一个问题,有人的cron作业调用了一个脚本,该脚本在运行时向我发送警报。我想知道它是谁的作业,在哪个服务器上运行 这个问题已由其他人解决,但我想知道我可以做些什么来找出作业是从哪个主机/用户名运行的。我能想到的一件事是编辑脚本(Perl)并使用Sys::Hostname。还有别的吗Linux 找出谁/什么在调用脚本(cron),linux,perl,shell,unix,cron,Linux,Perl,Shell,Unix,Cron,我最近遇到了一个问题,有人的cron作业调用了一个脚本,该脚本在运行时向我发送警报。我想知道它是谁的作业,在哪个服务器上运行 这个问题已由其他人解决,但我想知道我可以做些什么来找出作业是从哪个主机/用户名运行的。我能想到的一件事是编辑脚本(Perl)并使用Sys::Hostname。还有别的吗 谢谢 除非您使用邮件发送警报,否则无法自动执行此操作。邮件的标题中包含主机名,因此您至少可以看到它来自何处(用户和主机)。然后,时间戳应该有助于定位cron作业 对于所有其他形式的警报(SMS、寻呼机等)
谢谢 除非您使用邮件发送警报,否则无法自动执行此操作。邮件的标题中包含主机名,因此您至少可以看到它来自何处(用户和主机)。然后,时间戳应该有助于定位cron作业
对于所有其他形式的警报(SMS、寻呼机等),您应该将用户和主机名包含在消息中作为一项策略。除非您使用邮件发送警报,否则无法自动执行此操作。邮件的标题中包含主机名,因此您至少可以看到它来自何处(用户和主机)。然后,时间戳应该有助于定位cron作业
对于所有其他形式的警报(SMS、寻呼机等),您应该将用户和主机名包含在消息中作为一项策略。正如您所说,您可以使用获取主机名。您还可以使用
getpwuid($获取用户名,正如您所说,您可以使用getpwuid($获取用户名,您还可以添加到脚本中:print`env | sort`;
——这将显示用户名或日志名。如果您不想干扰程序的输出,请将其记录到一个文件中:
use POSIX 'strftime';
open my $log, '>>', 'logfile' or die "can't append to logfile: $!\n";
print $log strftime(%Y-%m-%d %T", localtime), " - starting $0\n";
print $log `env|sort`;
close $log;
您还可以在脚本中添加:print`env|sort`
——这将显示用户名或日志名。如果您不想干扰程序的输出,请将其记录到一个文件中:
use POSIX 'strftime';
open my $log, '>>', 'logfile' or die "can't append to logfile: $!\n";
print $log strftime(%Y-%m-%d %T", localtime), " - starting $0\n";
print $log `env|sort`;
close $log;
你有电子邮件,检查电子邮件header@ajreal,他没有说警报是通过电子邮件发送的。我的错,我最初的意思是,如果警报是通过电子邮件发送的,你有电子邮件,请检查电子邮件header@ajreal,他没有说警报是通过电子邮件发送的。我的错,我最初的意思是如果警报是通过电子邮件发送的