使用linux计划任务自动拉起停止的通达OA服务apache和mysql服务
概述:
数据库或web服务器瞬时并发过大时,可能面临宕机的危险,用类似开门狗的程序自动监控程序是否正常运行,在服务停止时自动启动服务,可临时解决该问题
监控apache服务的脚本:
每两分钟执行脚本检查apache程序是否正常运行,如果不正常则自动启动服务
vi /usr/sbin/startpache
加入如下内容:
#检查apache服务是否正常运行,如果停止了则拉起服务
#!/bin/sh
web=`/usr/bin/pgrep httpd`
if [ "$web" == "" ]
then
echo "the apacheserver not running"
/opt/lampp/lampp startapache
else
echo "the apacheserver is running"
fi
3、修改文件属性,使其可执行
chmod +x /usr/sbin/startpache
4、修改/etc/crontab
vi /etc/crontab
#两分钟执行脚本检查程序是否正常运行
*/2 * * * * root /usr/sbin/startpache
5、重新启动crond
/etc/rc.d/init.d/crond restart
监控mysql服务的脚本:
作用:每两分钟执行脚本检查mysql数据库是否正常运行,如果不正常则自动启动mysql服务
vi /usr/sbin/startmysql
加入如下内容:
#检查mysql服务是否正常运行,如果停止了则拉起服务
#!/bin/sh
mysql=`/usr/bin/pgrep mysqld`
if [ "$mysql" == "" ]
then
echo "the mysql not running"
/opt/lampp/lampp startmysql
else
echo "the mysql server is running"
fi
3、修改文件属性,使其可执行
chmod +x /usr/sbin/startmysql
4、修改/etc/crontab
vi /etc/crontab
#两分钟执行脚本检查程序是否正常运行
*/2 * * * * root /usr/sbin/startmysql
5、重新启动crond
/etc/rc.d/init.d/crond restart
==================================================
计划任务每天早上执行PHP脚本:
编写PHP脚本修改员工手册的通知置顶uppper_notify_ygsc.php,放到opt/lampp/htdocs/MYOA/webroot/se_widget/mail_remind目录下
<?php
include_once("inc/conn.php");
include_once("inc/utility_all.php");
include_once("inc/utility_file.php");
include_once("inc/utility_org.php");
header('content-type:text/html;charset=gbk');
/**
* 1.HR的员工手册在OA公告栏中需要置顶,每天8点运行一次
*/
$today = date('Y-m-d');
$sql = "update NOTIFY set BEGIN_DATE = '{$today}' where SUBJECT like '%员工手册V1.1版本已于2014年7月X日发布,请查点查看详情%' and notify_id='3877'";
exequery($connection,$sql);
// 关闭浏览器(调试时禁用)
echo "<script type=\"text/javascript\">";
echo "self.opener=null;";
echo "self.open('', '_self');";
echo "self.close();"; echo "</script>";
?>
添加脚本可执行权限
chmod +x /opt/lampp/htdocs/MYOA/webroot/se_widget/mail_remind/uppper_notify_ygsc.php
编辑计划任务
vi /etc/crontab
将以下内容拷入计划任务文件中
#每天早上8点运行PHP脚本,修改员工手册的通知置顶
* 8 * * * root /opt/lampp/bin/php /opt/lampp/htdocs/MYOA/webroot/se_widget/mail_remind/uppper_notify_ygsc.php
重启计划任务
/etc/rc.d/init.d/crond restart