Linux下做定时启动服务

1.安装cron

通过命令“systemctl start cron”发现未找到cron.service。这时我们需要安装cron,在命令行中输入“yum -y install cron”等安装结束后再次启动cron服务“systemctl start cron”。

2.创建一个shell脚本

创建一个.sh文件,通过我们以前学习的vi命令对该文件进行编辑,并授予该文件可执行权限。具体代码如下所示:
下面使用tomcat为例:tomcatPath下的路径是你自己的具体路径

#!/bin/bash
. /etc/profile
tomcatPath="/data/tomcat-7"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"
echo "[info][$(date +'%F %H:%M:%S')]tomcat已经启动,准备使用shutdown命令关闭..."
$binPath"/shutdown.sh"
sleep 2
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭失败,准备kill进程..."
kill -9 $pid
echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
sleep 1
else
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭成功!"
fi
else
echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
fi
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/startup.sh"

3.编辑crontab定时执行sh文件

设置每天自动执行shell脚本:
vi /etc/crontab 在最后加入这样一行0 0 * * * root /bak/bakmysql/backup.sh
重启crontab:systemctl restart crond.service
如果没有设置crontab为开机自启动可以如下设置其开机自启动:chkconfig –level 35 crond on

总结

cron里的一些参数可以对定时有影响,改变这些参数的值可以使得定时任务在某年某月某日某时某分某秒执行,根据需要自行改变。

你可能感兴趣的:(Linux下定时启动服务,linux)