如何监控bash脚本?

时间:2014-01-07 21:27:35

标签: bash

我正在运行一个需要几个小时的bash脚本。我想知道是否有办法监控它在做什么?比如脚本当前正在运行的部分,运行整个脚本需要多长时间,如果它在脚本的哪一行停止工作时崩溃等等。我只想从脚本接收反馈。谢谢!!!

2 个答案:

答案 0 :(得分:1)

制作状态或日志文件。例如,在脚本中添加:

echo $(date) - Ok >> script.log

或者对于真正的监控,您可以在linux上使用strace来查看系统调用,例如:

$ while true ; do sleep 5 ; done &
[1] 27190
$ strace -p 27190

答案 1 :(得分:1)

来自bash的手册页,

set -x 
After expanding each simple command, for command, case command, select command, or arithmetic for command, display the expanded value of PS4, followed by the command and its expanded arguments or associated word list.

将这些添加到脚本的开头,

export PS4='+{${BASH_SOURCE}:$LINENO} '
set -x

实施例,

#!/bin/bash          

export PS4='+{${BASH_SOURCE}:$LINENO} '
set -x

echo Hello World  

结果,

+{helloworld.sh:6} echo Hello World
Hello World