[打印] [收藏] [本帖文本页] [推荐此主题给朋友]ccie-li新手帖子4 主题1 精华0 可用积分7 专家积分0 (本版:0)在线时间1 小时 注册时间2010-04-27 最后登录2010-07-23 状态:...当前离线...[微博] [博客] [短信][倒序看帖][评分][报告][回复][引用]1楼 发表于 2010-07-23 10:49 | 只看该作者求助,,,一个shell编程中的循环问题。。例如一直监控httpd服务,,,查看服务用ps aux|grep httpd.实现目标。在脚本中使用循环语句一直监控httpd服务,,如果发现httpd服务down了,,立即启动/etc/init.d/heartbeat。。我了解到循环语句有for,while等,,但参数不知道是什么,,,求各位大侠了啊~~~服务器选型调查送4G闪存| Linux下安全分析与技巧!纯免费 | 2010系统架构师大会门票会员特价 | SAP仪表盘功能有奖体验活动!mgqw大天使帖子1859 主题75 精华0 可用积分1391 专家积分75 (本版:0)在线时间1044 小时 注册时间2007-09-29 最后登录2010-07-25 状态:...当前离线...[微博] [博客] [短信][评分][报告][回复][引用]2楼 发表于 2010-07-23 10:56 | 只看该作者本帖最后由 mgqw 于 2010-07-23 11:07 编辑#!/bin/shwhile [ 1 ]do a=$(pgrep httpd) if [ -z $a ] then /etc/init.d /heartbeat else echo "The httpd is running" fi sleep 1done复制代码服务器选型调查送4G闪存| Linux下安全分析与技巧!纯免费 | 2010系统架构师大会门票会员特价 | SAP仪表盘功能有奖体验活动!ccie-li新手帖子4 主题1 精华0 可用积分7 专家积分0 (本版:0)在线时间1 小时 注册时间2010-04-27 最后登录2010-07-23 状态:...当前离线...[微博] [博客] [短信][评分][报告][回复][引用]3楼 发表于 2010-07-23 10:58 | 只看该作者这个我试过了while [ $program ]do echo :"The httpd is running"done但不行,,关键是[ ] 里面的参数变成$program后还有那些参数需要添加???服务器选型调查送4G闪存| Linux下安全分析与技巧!纯免费 | 2010系统架构师大会门票会员特价 | SAP仪表盘功能有奖体验活动!mgqw大天使帖子1859 主题75 精华0 可用积分1391 专家积分75 (本版:0)在线时间1044 小时 注册时间2007-09-29 最后登录2010-07-25 状态:...当前离线...[微博] [博客] [短信][评分][报告][回复][引用]4楼 发表于 2010-07-23 11:00 | 只看该作者回复 3# ccie-li 全部的程序都给你写出来了, 你的思路有问题服务器选型调查送4G闪存| Linux下安全分析与技巧!纯免费 | 2010系统架构师大会门票会员特价 | SAP仪表盘功能有奖体验活动!mgqw大天使帖子1859 主题75 精华0 可用积分1391 专家积分75 (本版:0)在线时间1044 小时 注册时间2007-09-29 最后登录2010-07-25 状态:...当前离线...[微博] [博客] [短信][评分][报告][回复][引用]5楼 发表于 2010-07-23 11:03 | 只看该作者本帖最后由 mgqw 于 2010-07-23 11:07 编辑回复 1# ccie-li 或者是这样也行#!/bin/shwhile [ 1 ]do pgrep httpd if [ $? -eq 1 ] then /etc/init.d /heartbeat else echo "The httpd is running" fi sleep 1done复制代码服务器选型调查送4G闪存| Linux下安全分析与技巧!纯免费 | 2010系统架构师大会门票会员特价 | SAP仪表盘功能有奖体验活动!rdcwayx天使帖子1051 主题86 精华0 可用积分2118 专家积分10 (本版:10)在线时间354 小时 注册时间2006-08-25 最后登录2010-07-25 状态:...当前离线...[微博] [博客] [短信][评分][报告][回复][引用]6楼 发表于 2010-07-23 11:04 | 只看该作者放到cronjob中#! /usr/bin/bashif [[ `/usr/ucb/ps aux|grep httpd|grep -v grep` ]] ; then echo "fine"else echo /etc/init.d/heartbeatfi复制代码成功后,去掉第二个echo.其实我以前更喜欢用pidof 功能和pgrep一模一样, 唯一的区别就是 pidof必须要有root权限和root的环境变量才能执行