解决问题场景: 使用while守护进程的方式,每隔10秒确定一次网站是否正常。
脚本 website_mon.sh 如下:
#!/bin/bash
. /etc/init.d/functions #引入函数库
check_count=0
# 定义检测的URL数组,包含多个URL地址
url_list=(
http://www.baidu.com
http://www.baidu100.com
http://127.0.0.1
)
function wait()
{
echo -n '3秒后,执行检查URL操作.';
for ((i=0;i<3;i++))
do
echo -n "."; sleep 1
done
echo
}
function check_url() #<==定义检测URL的函数
{
wait #<==执行倒计时函数
for((i=0;i<`echo ${#url_list[*]}`;i++)) #<==循环数组元素
do
wget -o /dev/null -T 3 --tries=1 --spider ${url_list[$i]} >/dev/null 2>&1
#<==检测是否可以访问数组元素的地址
if [ $? -eq 0 ] #<==如果返回值为0,则表示访问成功
then
action "${url_list[$i]}" /bin/true #<==优雅地显示成功结果
else
action &