我在Linux中使用超时值命令来调用具有特定超时的程序。
在超时命令指南中,如果发生超时,则返回退出代码124;如果没有超时,则返回程序退出代码。不幸的是,我所调用的程序在某些情况下也返回退出代码124。
因此,我只想问一问,我们是否有办法识别124是否来自超时值命令或程序?
代码:
timeout 10s program 2>&1 | tee log.txt
if [ "${PIPESTATUS[0]}" == 124 ]; then
# do something
fi
谢谢
我有一个问题,在DNS无效的情况下,ntpdate正好在80秒后超时(或者在本例中,主机被卡在防火墙后面)。我想把这个时间降到一些更合理的事情上,比如1到2秒。
# ntpdate -bud ntp.ubuntu.com
23 Sep 08:39:56 ntpdate[9554]: ntpdate 4.2.4p8@1.1612-o Tue Apr 19 07:08:19 UTC 2011 (1)
Looking for host ntp.ubuntu.com and service ntp
Error : Name or service not known 23 Sep 08:41:1
在bash脚本中,我运行一个激活脚本的命令。我在for循环中多次重复这个命令,因此希望等到脚本完成后再运行它。我的bash脚本如下
for k in $(seq 1 5)
do
sed_param='s/mu = .*/mu = '${mu}';/'
sed -i "$sed_param" brusselator.c
make brusselator.tst &
done
据我所知&在最后,让脚本知道等待命令完成,但这是行不通的。还有别的办法吗?
此外,有时命令会花费很长的时间,在这种情况下,我最大限度地希望等待
我想用程序Arlsumstat_64bit对上千个输入文件进行分析。
Arlsumstat_64bit读取输入文件(.arp)和写入结果文件(sumstat.out)。每个输入将根据参数"0 1“在结果文件(sumstat.out)上追加新行。
因此,我编写了一个shell脚本来执行同一个文件夹中的所有输入(*.arp)。但是,如果输入文件包含错误,则shell脚本将在没有后续进程的情况下被卡住。因此,我找到了一个带有“超时值”的命令来处理我的问题。我编写了一个shell脚本,如下所示
#!/bin/bash
for sp in $(ls *.arp) ;
do
echo
我创建了一个Bash脚本,它使用一个expect脚本来自动化ssh logins.The脚本,连接到多个服务器并运行一些命令。bash脚本提示输入一次登录凭据。
我想加入一个功能,其中脚本终止,如果第一个服务器登录失败,以避免脚本检查下一个服务器导致用户帐户被锁定。帐户锁定连续3次登录失败,脚本尝试连接的服务器数量超过3个。
这是调用expect脚本的bash脚本中的代码片段。
countu=0
for servername in $(cat $linux_host_list)
do
./script.expect $LUSERNAME $LPASS $servername Linux >
如果我的openvpn客户端不能每隔60秒ping一次目的地4.2.2.2,那么我正在尝试让它重新启动,如果它是这样的话,则什么也不做。这是我所拥有的。我也想继续运行,我正在高山Linux上运行这个程序。任何帮助都是非常感谢的。
#!/bin/sh
#This is a script to continuously do 5 pings to 4.2.2.2
#every 60 seconds to keep the tunnel up if pings fail,
#then it will restart the openvpn process. And record the
#time
我编写了一个简单的expect脚本来告诉我是否设置了无密码连接。
#!/usr/bin/expect -f
if {[llength $argv] < 2} {
puts "usage: test-nopass user server"
exit 1
}
set user [lindex $argv 0]
set server [lindex $argv 1]
set pwd_prompt "*assword:"
set prompt "*$ "
set rc 0
log_user 0
spawn ssh $u
我们有一个码头服务器‘码头版本17.03.0-ce,构建60ccb22’。我们有一些工人,大约10人,他们每个人执行一个非常简单的任务,需要几秒钟才能完成和退出。我们决定他们中的每一个都将启动一个码头容器,当脚本完成时,容器将被停止并移除。更重要的是,crontab处理运行,因此,我们为每个工作人员创建了一个bash脚本,它用标志--rm和-d实例化容器,并在bin/文件夹中启动脚本文件。
#! /bin/sh
f=`basename $0`
workerName=${f%.*} \\name of the bash script without the part after the .
我在build 上注意到,在标记存储库时,我忘记了增加补丁版本。然而,尽管npm发布由于已经存在的版本而失败,但构建报告为passing。
下面是日志的结尾:
Deploying application
NPM API key format changed recently. If your deployment fails, check your API key in ~/.npmrc.
http://docs.travis-ci.com/user/deployment/npm/
~/.npmrc size: 48
npm ERR! publish Failed PUT 403
npm ER
我正在尝试做一些非常简单的事情:让自己能够选择在引导上运行什么。这是在一个Raspberry Pi上,所以有时它是无头的,有时它不会。我认为一个简单的方法就是在引导时运行一个小脚本(甚至不知道它是否能工作--还没有达到那么远),要么让我混合键盘并启动GUI,要么暂停并启动python脚本。但是的,我在这个简单的任务上失败了。无论我尝试什么,if语句总是计算为true,并且我尝试过很多很多事情。这是我想使用的迭代..。
如果我让它超时,那么read命令的返回值应该大于128。如果按下某一项,则返回值应为零。所以..。
#!/bin/bash
# this gives the user the
我正在尝试在bash脚本中执行此命令expressvpn connect,以便在终端中执行。问题是,有时连接需要太长时间,我希望确保连接不会花费太多时间。我试过这个命令
some_command
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
但这是为了检查命令是否被执行,而我想确保如果它没有在10秒内执行,那么脚本必须停止并从头开始。我该怎么做?下面是完整的代码
#!/bin/bash
expressvpn disconnect
while (0<1); do
expressvpn connect smart
我正在使用SSH插件在Linux服务器上运行命令,我使用SSH启动了一个脚本,该脚本需要超过1小时的时间才能运行,我不想等待那么多时间,所以我在Exec超时时设置了30秒时间。但显示错误ERROR: Exception发布时,异常消息Exec超时或在30000毫秒后被中断,且不稳定。我不想让我的构建不稳定,因为我使用了Jenkins text finder来稳定这个构建。在jenkins文本查找器中,我在正则表达式中搜索到字符串是“发布时异常”。但我的构建仍然不稳定。请在这个问题上帮我。
我有一个使用curl和timeout的bash脚本。
for element in "${array[@]}"; do
if timeout 2s curl -v "telnet://$element:8888"; then
echo "'$element' connected" && break
fi
done
脚本没有进入if循环,我得到了以下输出:
* About to connect() to abc001 port 8888 (#0)
* Connected to ab
我有一个场景,文件将在11:30到11:40之间的任何时间到达。我可以安排一个脚本在11:30开始运行,以检查文件是否已经到达。这是我随身携带的东西。
i=0
while [ i -eq 0 ]
do
if [ ! -f $File_Check_Dir/$FILE_NAME ] ; then
echo " \n File has arrived at `date +'%d-%m-%Y %H:%M:%S'****" | tee -a ${LOGFILE}
i=1
fi
done
我可以让脚本在后台运行。但我需要检查s