【检查linux网络状态的两个脚本】教程文章相关的互联网学习教程文章

linux-为什么用Nagios调用ps时,ps在Perl脚本中仅返回一行输出?【代码】

我正在运行:if (open(PS_ELF, "/bin/ps -eLf|")) {while (<PS_ELF>) {if ($_ =~ m/some regex/) {# do some stuff}} }如果在本地调用,则循环运行得很好,对于ps -eLf的每个输出行 现在,如果从Nagios通过NRPE调用了相同的脚本,则PS_ELF仅包含一行(ps输出的第一行). 这使我感到困惑;可能是什么原因? 也许这完全不限于Nagios /由Nagios引起,为了完整起见,我仅将其包括在内. 我正在使用SUSE Enterprise Linux 10 SP2和perl v5.8.8.解...

linux-Erlang:守护程序“ init.d”脚本无法启动【代码】

我有一个管理Erlang守护程序的python脚本.系统初始化后,通过外壳使用时一切正常. 现在,当我在“ /etc/init.d”下包含相同的脚本,并在“ /etc/rcX.d”中正确设置了符号链接时,python脚本仍然可以工作,但是我的Erlang守护程序无法启动,并且没有明显的痕迹(例如crash_dump,dmesg等) 我也尝试通过’erl -env HOME / root’来设置环境变量“ HOME”,但是还是没有运气. 有什么线索吗?解决方法:要以与系统相同的方式手动运行脚本,请使用s...

linux-具有命令行参数和空格的Perl脚本【代码】

我觉得我在这里似乎遗漏了一些明显的东西,但是我似乎无法弄清楚发生了什么.我有一个从C代码调用的perl脚本.脚本参数是这样的:my_script "/some/file/path" "arg" "arg with spaces" "arg" "/some/other/file"当我在Windows中运行它时,Perl正确地将其标识为5个参数,而当我在SunOS Unix计算机上运行它时,它标识为8,将带有空格的arg拆分为单独的args. 不知道它是否有任何区别,但是在Windows中,我像这样运行它:perl my_script <args>...

为什么在shell中键入与在脚本中使用时,Linux中的time命令输出不同?【代码】

问题是,当我在shell中使用时间时,会得到如下输出:1.350u 0.038s 0:01.45 95.1% 0+0k 0+72io 1pf+0w当我在脚本中使用它时,我得到:real 0m1.253s user 0m1.143s sys 0m0.047s我的意思是为什么?在开始的shell脚本中我写:#!/bin/bash解决方法:Bash有一个内置的命令时间,您的系统还应该在/usr/bin/time有一个单独的二进制文件:$help time time: time [-p] pipelineReport time consumed by pipelines execution.Exec...

linux-挂init.d脚本【代码】

我有一个init.d脚本,如下所示:#!/bin/bash # chkconfig 345 85 60 # description: startup script for swapi # processname: swapiLDIR=/var/www/html/private/daemon EXEC=swapi.php PIDF=/var/run/swapi.pid IEXE=/etc/init.d/swapi### BEGIN INIT INFO # Provides: swapi # Required-Start: $local_fs # Required-Stop: # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: startup script for swapi # Desc...

Linux脚本启动,停止,重新启动【代码】

谁能告诉我这个脚本的作用是什么?#! /bin/sh test –f /usr/bin/sshd || exit 0 case “$1” instart)echo –n “Starting sshd: sshd”/usr/sbin/sshdecho “.”;;stop) echo –n “Stopping sshd: sshd”kill `cat /var/run/sshd.pid`echo “.”;;restart)echo –n “Stopping sshd: sshd”kill `cat /var/run/sshd.pid`echo “.”echo –n “Starting sshd: sshd”/usr/sbin/sshdecho “.”;;*)echo “Usage: /etc/init.d/sshd...

linux-Shell脚本错误:“ head:无效的尾随选项-1”【代码】

我的shell(bash)脚本中有以下代码,用于将文件拆分为较小的部分:for (( i=$start; i<=$lineCount; i=i+$interval)) dotemp=`expr $i + $interval`;if [ $temp -le $lineCount ]thencommand="head -$temp $fileName | tail -$interval > $tmpFileName";echo "Creating Temp File: $command";elselastLines=`expr $lineCount - $i`;command="head -$temp $fileName | tail -$lastLines > tmpFileName";echo "Creating Temp File: $co...

linux-为什么我的Perl脚本在“〜/”上失败,但是在“ $ENV {HOME}”下工作?【代码】

我一直在使用我的FOREVER脚本,也一直在使用“?/”扩展主目录.我今天开始工作,但它停止了工作:#if ( $output eq "" ) { $output = "~/tmp/find_$strings[0].rslt" } # BROKEN if ( $output eq "" ) { $output = "$ENV{HOME}/tmp/find_$strings[0].rslt" } #WORKS... open OUT_FILE, ">$output" or die "cant open $output : $!";关于为什么突然停止工作的任何想法? 错误看起来像:cant open stephen/tmp/find_coverp.rslt...

Linux-Shell脚本无法识别heredoc分隔符【代码】

我正在尝试在Linux中编写一个非常简单的shell脚本.我想实现的方案是: 在内部创建用户帐户并为其提供密码(为此,不允许与用户进行任何交互).成功后,只需向用户显示成功消息即可.其余的都不应该显示. 在RHEL上,这很简单,因为passwd命令接受–stdin选项,该选项帮助我通过Pipe传递输入.我将标准输出重定向到日志文件中. [不共享该代码,因为它有点简单,并且在StackExcahnge上针对不同的问题在此进行了多次解释.] 但是,Ubuntu不接受passw...

linux-为什么这个awk脚本看不到shell变量?【代码】

请告诉我为什么该程序无法正常工作??帮助我改善它.for i in $(seq 2 30); do awk '{if ($i < 0.05) print $1,$i}' test.txt > phen_$i.txt; done文件test.txt如下所示:name phen1 phen2 rs549 0.02 0.02 rs699 0.03 0.03 rs701 1 1 rs751 0.449 0.449 rs884 1 1 rs923 0.9775 0.02 rs970 0.9836 0.03 rs1085 0.0001 0.99 rs1220 0.9316 0.9316根据条件,输出文件应为两个不同的文件,即phen...

linux-iptables脚本可阻止除所需应用程序以外的所有Internet访问【代码】

背景: 我想拥有一个shell脚本,该脚本可以阻止所有进入我计算机的入站/出站流量,除非我决定要使用浏览器或其他一些应用程序,在这种情况下,我会召唤它,只有那些应用程序可以运行. 我研究过以前由聪明人制作的脚本(最后是到资源的链接),并花了一些时间自己学习使用iptables(仍然在这方面工作). 这是完成的工作的结果: 结果: 在运行Shell脚本之前,创建了一个名为internet的组: 须藤groupadd互联网 Shell脚本:#!/bin/sh #only allo...

Linux-在Shell脚本中操作数组(由php-cli打印)【代码】

我是使用Shell脚本的新手,今天学到了很多东西.这是对该问题的扩展Assigning values printed by PHP CLI to shell variables 我得到了在shell脚本中读取变量的解决方案.现在如何操作数组?如果我在PHP代码中准备一个数组并进行打印,然后在我的shell中回显,它将显示Array.如何在shell脚本中访问该数组?我尝试了how to manipulate array in shell script中给出的解决方案 使用以下代码:-PHP代码$neededConstants = array("BASE_PATH...

linux-是否可以从bash脚本设置超时?【代码】

这个问题已经在这里有了答案: > How do I limit the running time of a BASH script 4个有时我的bash脚本在没有明确原因的情况下挂起并保持 因此它们实际上可以永远挂起(脚本过程将一直运行,直到我杀死它为止) 是否可以结合bash脚本超时机制,以便在例如1/2小时后退出程序?解决方法:这种仅使用Bash的方法通过将函数作为后台作业运行以强制执行超时,从而将所有超时代码封...

linux-通过bash脚本与多个目录中的文件进行交互【代码】

我生成了一个脚本,该脚本可循环访问多个.csv文件,并将相关文件转换为UTF-8:#!/bin/bashcd /home/user/prod/ charset="text/plain; charset=iso-8859-1"for file in *.csv; doif [[ $(file -i "$file") == "$file: $charset" ]]; theniconv -f ISO-8859-1 -t UTF-8 "$file" > "$file.new";mv -f "$file.new" "$file"; fi done那行得通,但是我真正想要的是遍历驻留在不同路径中的文件.我试图从设置一个路径开始(而不是定义当前目录)...

linux-检查bash脚本中是否有标准输出重定向【代码】

我需要检查程序的输出是否被重定向;如果是,我需要保留并通过邮件发送. 例:$myprogram -param1 -param2 -param3 > /home/polly/log.txtmyprogram.sh:if 'redirection is not empty'; then cat <redirection name> | mailx -s "This is a test email." polly@gmail.com fi 解决方法:您可以检查stdout是否为终端.当stdout重定向或通过管道传输时,它将不是终端.您可以将test命令与-t选项一起使用以获取以下信息:if [ -t 1 ] ; the...