一键自动往crontab添加条目脚本

脚本的优点:

只要将 监控脚本 被监控程序 和重启脚本放在同一个目录下,并将被监控程序运行起来,即可自动添加到crontab中,建议配置mooon提供的process_monitor.sh一起使用。

#!/bin/sh # writed by yijian on 2013/1/19 # generic script used to install an iterm into crontab # http://code.google.com/p/mooon/source/browse/trunk/common_library/shell/install_crontab.sh # $monitor_name used to monitor the process named by $process_name, # if $process_name is hangup, $monitor_name will reboot it by $start_name. # before using $monitor_name, $process_name should be running, # the installation will get the path information automatically. # **PLEASE NOTE**: all files must be placed in the same directory. process_name=$1    # the fullname of process monitored (but not included directory) monitor_name=$2    # the path of monitor script (maybe included directory) start_name=$3      # the path of start script (maybe included directory) timedate_fields=$4 # five time and date fields me=`whoami` # check cmdline if test $# -ne 4; then echo "usage: process_name monitor_name start_name time_date" echo "EXAMPLE1: $0 mooon process_monitor.sh start_test.sh \"* * * * *\"" echo "EXAMPLE2: $0 mooon /tmp/process_monitor.sh /tmp/start_test.sh \"* * * * *\"" echo "monitor_name or start_name must be in the same directory with process_name, " echo "if monitor_name or start_name don't include directory" exit 1 fi # get pid & username eval $(ps -C $process_name h -o pid,euser | awk -F" " '{ printf("pid=%s\nuser=%s\n",$1,$2); }') if test $? -ne 0; then echo "$process_name NOT RUNNING now" exit 1 fi if test "X$me" != "X$user"; then echo "$process_name NOT RUNNING now" exit 1 fi # get file path filepath=`readlink /proc/$pid/exe` if test $? -ne 0; then exit 1 fi # get directory path binpath=`dirname $filepath` # check files if test -x $monitor_name; then monitor_path=$monitor_name else monitor_path=$binpath/$monitor_name fi if test -x $start_name; then start_path=$start_name else start_path=$binpath/$start_name fi if test ! -x $monitor_path; then echo "$monitor_path not exist" exit 1 fi if test ! -x $start_path; then echo "$start_path not exist" exit 1 fi # install crontab if not exist crontab -l | grep "$start_path" > /dev/null 2>&1 if test $? -ne 0; then crontab -l > crontab.tmp echo -e "\n# the following monitor added by `basename $0`($process_name) on `date +"%Y-%m-%d %H:%M:%S"`" >> crontab.tmp echo "$timedate_fields $monitor_path $process_name $start_path" >> crontab.tmp crontab crontab.tmp if test $? -ne 0; then exit 1 fi rm crontab.tmp fi exit 0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何在Kerberos环境下使用Flume采集Kafka数据写入HBase

23220
来自专栏性能与架构

体验 MySQL InnoDB Cluster

Mysql高可用环境的搭建比较麻烦,这使很多人都不去搭建高可用环境,等到有问题时再说 最近Mysql的动作很快,新版本的发布频繁,推出很多新的好用功能及插件,其...

89180
来自专栏十月梦想

MongoDB数据库备份与恢复

-h 数据库服务器地址127.0.0.1或者可以指定端口号127.0.0.1:27017

16030
来自专栏我的博客

TP字段缓存

TP字段缓存DB_FIELDS_CACHE,默认开启 1、影响(减少数据库查询) 2、但是也会有一个问题,保存规则是按照数据库+model名字(小写)来的,这样...

37750
来自专栏JavaEE

springData Jpa 快速入门前言:一、简介:二、JPA核心概念:三、springboot集成jpa案例:总结:

数据持久化的操作,一般都要由我们自己一步步的去编程实现,mybatis通过我们编写xml实现,hibernate也要配置对应的xml然后通过创建session执...

9220
来自专栏乐沙弥的世界

ERROR 2002 (HY000): Can't connect to local MySQL server through socket

    在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't c...

9810
来自专栏公有云大数据平台弹性 MapReduce

EMR上Hive ACL配置

到目前为止,hive就已经支持acl功能了。现在来看看如果使用acl功能(常用命令)。

30430
来自专栏微信公众号:Java团长

超详细图解从0搭建SSM框架【intellij idea】

文章链接:http://blog.csdn.net/w8897282/article/details/71215591

1.3K10
来自专栏zhangdd.com

Zabbix监控-使用JMX功能监控tomcat安装配置

zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Javagateway”;它是用java写的一个程序。

15040
来自专栏散尽浮华

Centos6下使用yum安装MariaDB

1)增加mariaDB的yum源 [root@centos6-test08 ~]# cd /etc/yum.repos.d/ [root@centos6-tes...

30470

扫码关注云+社区

领取腾讯云代金券