【发布时间】:2016-06-08 03:47:51
【问题描述】:
我有一个 shell 脚本,通常一次运行将近 10 分钟,但我需要知道在脚本实例已经运行时是否有另一个运行脚本的请求出现,新请求是否需要等待现有的要完成的实例,否则将启动一个新实例。
只要同一脚本的请求可用,我就必须启动一个新实例。
怎么做...
shell脚本是一个轮询脚本,它在目录中查找文件并执行该文件。文件的执行需要将近10分钟或更长时间。但是在执行过程中如果有新文件到达,它也必须执行同时。
shell脚本如下,以及如何修改它以执行多个请求..
#!/bin/bash
while [ 1 ]; do
newfiles=`find /afs/rch/usr8/fsptools/WWW/cgi-bin/upload/ -newer /afs/rch/usr$
touch /afs/rch/usr8/fsptools/WWW/cgi-bin/upload/.my_marker
if [ -n "$newfiles" ]; then
echo "found files $newfiles"
name2=`ls /afs/rch/usr8/fsptools/WWW/cgi-bin/upload/ -Art |tail -n 2 |head $
echo " $name2 "
mkdir -p -m 0755 /afs/rch/usr8/fsptools/WWW/dumpspace/$name2
name1="/afs/rch/usr8/fsptools/WWW/dumpspace/fipsdumputils/fipsdumputil -e -$
$name1
touch /afs/rch/usr8/fsptools/WWW/dumpspace/tempfiles/$name2
fi
sleep 5
done
【问题讨论】:
-
显示shell脚本可能吗?
-
感谢您添加脚本。显然它还没有工作,但我也无法弄清楚它实际上是什么for。事情似乎从底部开始变得非常不稳定,您在其中分配
name1而不关闭报价。那是复制粘贴错误吗?您能否查看并修复它,并解释此脚本的上下文以及它应该实现的目标? -
实际上脚本在目录中查找新文件,然后它必须以新文件的名称创建一个新目录。name1 只不过是调用一个名为 fipsdumputil 并带有参数的 shell 脚本,完成执行几乎需要10分钟,在此期间如果有任何新文件也必须执行,如何完成。
-
fipsdumputil(name1) 几乎需要10分钟才能完成它的执行,是否可以将它从当前脚本中分离到一个单独的新脚本中,以便运行新文件的多个实例.
标签: shell