gpt4 book ai didi

linux - 如果我在其中放入退出代码,脚本将不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:39 28 4
gpt4 key购买 nike

我的脚本有一部分:

x=`grep -i -o -P '.{0,28}BACKUP TO NASBACKUP stopped.' /var/log/nascad.log`  
if [[ $x == *"BACKUP TO NASBACKUP stopped."* ]]
then
echo "Backup Stopped!Something Wrong.." "$x"
echo -n "" > /var/log/nascad.log
exit 2
else
echo "All ok"
exit 0
fi

带有退出代码的 echo -n "">/var/log/nascad.log 命令不起作用,就好像它没有被执行一样。
没有它一切正常。

这是一个nagios 脚本,所以我需要退出代码。如果我手动启动它,它就可以工作。当从 nagios 执行时,它不起作用。

最佳答案

我认为这是一个权限问题。就个人而言,当我想用​​ nagios 尝试自制脚本时,我会以 nagios 用户的身份手动启动脚本:

su - nagios -s /bin/bash
./your_script

如果这是一个权限问题(对于日志文件),你必须将这个脚本的所有者更改为 nagios 用户:

chown nagios /var/log/nascad.log

告诉我我是否比 nagiosxi 支持更快(我知道他们可以多长时间......)

-- 编辑--

我尝试了这个为我工作的 perl 脚本。也许您必须根据需要调整正则表达式。

#!/usr/bin/perl
use strict;
use warnings;

my $filename="/var/log/nascad.log";

open(my $fh,"<",$filename);

foreach(<$fh>){
if ($_ =~ /(.*?BACKUP TO NASBACKUP stopped.*)/i){
print "Backup stopped! Something wrong... : $1\n";
open($fh, ">", $filename);
exit (2);
}
}

print "All ok!\n";
exit (0);

关于linux - 如果我在其中放入退出代码,脚本将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655354/

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