最近服务器总是apache进程卡死,找到原因是因为程序中没有释放mysql资源,于是我就想隔一段时间重启下mysqld和httpd服务,并且记录下是否apache正常启动。 1、首先编辑/etc/crontab 使用root用户输入vi /etc/crontab 在 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
之后加入
00 7,13,19 * * * root /root/serestart.sh (在这里介绍下00 7,13,19 * * * root /root/serestart.sh,从头到尾表示分钟、小时(可以使用“-”隔开表示一个整数范围,用“,”隔开表示一系列值,用正斜线“/”可以指定频率)、日期、月份、星期(可以使用0-7表示0、7表示周日,可以使用sun.mon)、要执行的命令)
补充:如果不需要记录启动记录,那么就可以直接 00 7,13,19 * * * root ‘service httpd restart’
serestart.sh脚本如下:
#!/bin/bash LANG=c
##本脚本作用是判断httpd服务是否正常运行 ##Joyous作品 ##最后修改时间2011年11月1日21时02分
service mysqld restart
service httpd restart
APACHE=`netstat -nutlp |grep :80 |grep httpd`
if [ “$APACHE” ];then echo -e “httpd start Ok! `date` \n” >> /root/serestart.log else echo -e “httpd start File! `date` \n” >> /root/serestart.log fi
文件说明:#表示注释
00 23 * * * root echo 3 > /proc/sys/vm/drop_caches
##强制释放内存,最近系统出问题了,总是内存溢出挂掉。于是就想到了这个解决办法。呵呵虽然有点暴力,但是可以顶一段时间,然后重装一个linux系统了。
如果需要开机启动自己写的程序可以加入到
在/etc/rc.d/rc.local 中加一句 source /root/myshell.sh 就可以开机自动启动脚本了。嘿嘿