shell脚本监控进程
① shell 脚本检测服务运行状态
由于服务器性能问题,通过shell脚本,定时检测进程运行状态。并自动重启。
check.sh
除此之外,还要设计linux的crontab定时任务
编辑内容:
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
cat /etc/crontab
② grep在shell脚本中使用,判断进程是否存在,进程不存在则重启
在shell中,判断一个进程是否存在,是判断进程数量
没有运行进程时,如下显示,只有一条,这条就是这条命令的进程。
如果进程存在就会显示多条进程信息,其中一条包括命令这条。
所以判断是否存在,只要判断数量即可,命令为
进程大于1,则进程存在正常,显示如下:
以下是最简单的判断内容,判断进程数量小于等于1,则进程不存在,然后重启即可。
shell判断相关参数:
需注意的坑:
grep 需要加上参数 -w ,意为精确匹配。如果不加上 -w ,判断进程数量会不准确。
例:判断一个名为 info.py 的脚本内容: ps -ef |grep info.py
不加 -w ,会把包括 info.py 都显示出来,如 info_py , info 之类的。所以显示数量远大于实际进程数量。
所以写脚本时必须加上 -w 参数,显示只有 info.py 的内容。
grep其他参数参考:
脚本完成后,需添加系统定时任务。
③ 如何用shell脚本监控域名
1)源程序(例如查找用户为 root,进程名为 CFTestApp 的进程 ID)
1
2
3
PID=`GetPID root CFTestApp`
echo $PID
2)结果输出
1
2
11426
[dyu@xilinuxbldsrv shell]$
④ 如何使用shell脚本监控是否挂死
本系统中,经常有几个进程无响应挂死,但是由于不能准确的进行重起,需要做一个脚本来执行这一工作!这几个进程平时是经常读写的!不知道哪位高手可以指教?如何才可以对UN.
⑤ 如何查看shell脚本是否正常运行,跪求liunx大神
因为不知道你的是什么脚本,不好判断。
bash -x 检测整个脚本实际运行过程是否正确
对脚本执行加以监控,你可以通过在脚本中加入一些脚本执行状态结果的语句比如导出个日志文件啦,或者对执行结果进行判断啦,如果脚本是驻留在进程里,判断进程中是否有脚本啦,然后给你发个执行结果邮件。还是得根据实际情况写。
⑥ 求:linux 监控shell脚本运行时间
你的意思是某个进程不能不能超过5分钟,否则触发某个事件比如发送邮件或短信?
如果是这样,脚本很好控制
直接在运行前记录一个时间,然后创建一个lock文件
如果脚本完成,删除pid
再sleep 300秒后判断lock文件是否存在,如果不存在,退出,如果存在,报警,退出。
⑦ 设计一个shell脚本程序,要求有如下功能: 实现自动备份功能和清理备份等
#!/bin/bash
TIME=`date+%Y%m%d|cut-b3-8`
#question1
tar-zcvf/home/bak/VAR_$TIME_BAK.gzip/var
#question2
ls-l/var>>/home/bak/VAR_$TIME_BAK.log
#question3
find/home/bak-name'*gzip'-mtime+1|xargsrm-rf
脚本名字backup.sh,放到/root下,然后用root创建cronjob
0 12 * * * /root/backup.sh
#question 4 (以redhat为例)
echo " /root/backup.sh " >> /etc/rc.local
#question 5
把下列代码写入cronjob中
#!/bin/bash
TIME=`date+%Y"/"%m"/"%d""%H":"%m`
if[-f/home/shell.log]
then
echo"$TIMErunning">/home/tmp.log
cat/home/shell.log>>/home/tmp.log
mv/home/tmp.log/home/shell.log
else
touch/home/shell.log
fi
脚本名字status.sh,放到/root下 (写的有点小问题,功能执行没问题)
0 * * * * /root/status.sh
⑧ 在linux下,如何用shell控制一个进程的内存使用上限,以及运行时间上限
需求有点奇怪。
使用多少内存是可执行文件本身决定的,shell脚本只有等程序开始运行了再去检查进程占用内存大小,没有办法先行控制。
而且任何脚本语言的通病就是,执行效率低(相对于高级语言)。脚本是解释执行的(如通过命令解释器bash),本身语句执行就需要时间。1s对脚本来说太短了,无法做到精确控制。
脚本的优点就是:不用编译;开发效率高(难度低,上手快);但能做的东西有限,很多操作需要调用外部工具来完成。
所以,根据要做的工作选取合适的工具,是很必要的。
⑨ 在安卓shell脚本中如何让它一直运行判断一个进程是否存在。 比如QQ进程 存在的话不进行任何操作
如果你是通过一个进程的名字作为关键词来查找进程是否存在的话,可使用
ps -ef | grep "<关键词>" | wc -l
输出为0表示不存在,输出大于0,表示存在,且数字就是这个关键词进程的个数;
如果你是通过进程号PID来查找进程是否存在,可以使用
ps --no-heading <PID> | wc -l
同样,
输出为0表示不存在,输出=1,表示存在,因为进程号不可能重复,所以输出肯定非0即1
⑩ 求Oracle EBS 中,用Linux监控frmweb进程,杀掉CPU占用超过40%,占用时间超过30分钟的进程的shell脚本
psaux|grepfrmweb|awk-va="0:30"'{if($10>a&&$4>40){print$2}}'psaux|awk-va="0:30"'$0~/frmweb/{if($10>a&&$4>40){print$2}}'这个意思?目的是获取它的PID,如果是这个意思,你再判断获取的PID是否为空,再kill就行了
