`
jsczxy2
  • 浏览: 1253927 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

CentOS详细安装之十九:Linux的简单shell脚本-crontab定时任务检查网络状态并email报警

阅读更多

由于没有按照规范写以下的shell脚本导致执行失败。。。以后一定注意:

第一:先env一下看一下系统默认shell是哪个,然后再在shell脚本开始的地方打上该shell地址,如我的env是SHELL=/bin/bash,那么shell脚本开始就应该如下:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

 

第二:由于启动脚本用的是系统的crontab所以必须定义sh文件的目录以及具体日志的具体路径

 

第三:注意使用加减法使用((num=$line+1))两个括号来进行弱类型转换

 

第四:注意if判断大小于使用[[]]来进行,例如:if [[ $count > 0 ]],等于则可以使用一个[]即可

 

---------------------------------------------------分割线----------------------------------------------------

 

下来看一下如何crontab,一般我们可以直接应用其自检查的文件来进行编辑: vim /etc/crontab

 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
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
*/1 * * * * root sh /sh/checkConnection.sh

##run-parts使用的是文件夹执行 去掉则执行文件
##root表明了类似crontab -u root -e的效果,显示了调用脚本的用户
##一共5个*,第一个是分然后是小时天月年

 或者直接使用crontab -u root -e进入vi编辑

加入*/1 * * * * sh /sh/checkConnection.sh即可 不需要写root了

这种方式可以使用crontab -l进行查询

service crond restart

 

好了,接下来贴一段我的定时检测网络发邮件的脚本配合上面的定时器就算完成了。

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH


savedir=/sh/
cd "$savedir"
wget http://www.xx.com/servlet/urlConServlet
file="/sh/urlConServlet"
log="/sh/connect.log"
flag=0
num=0
count=0

for line in `cat $file | grep "1"`
do
flag=1
done


if [ $flag == 0 ];then
for line in `cat $log`
do
((count=$line-4))
if [[ $count > 0 ]];then
echo "网站访问出错" | mutt -s "网站访问出错" xxx@163.com
echo 0 > $log
echo $count
echo $line
else
echo $line
((num=$line+1))
echo $num
echo $num > $log
fi
done
fi
rm -rf $file

 具体的mutt的使用方式请见前2章。

 

分享到:
评论

相关推荐

    linux进程监控与自动重启的简单实现方法

    由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。 crontab修改 # crontab -e */5 * * * * /mnt/bindmonitor.sh /mnt/bindmonitor.sh 的实现 #! /bin/sh host_dir=`echo ~` #...

    redhat/centos/linux系统上zookeeper和kafka进程监控脚本

    如下所示,手动指定zookeeper和kafka的bin目录、配置文件以及需要添加定时任务的周期几个参数后,执行当前脚本,脚本会自动添加定时任务并开始监控zookeeper及kafka进程,如果进程不存在则重启并放入后台,存在则...

    centOS6中使用crontab定时运行执行jar程序的脚本

    1、编写一个简单的java程序 public class testshell { public static void main(String[] args) { int count = 0; for (String arg : args) { System.out.println(第 + (++count) + 个参数: + arg); } } } ...

    解决Centos7下crontab+shell脚本定期自动删除文件问题

    利用shell脚本来定期删除文件夹内的任务 1、创建shell文件 [root@zabbix script]# vim backup_sql_clean.sh #!/bin/sh find /data1/backup/KDKDA\$AGKDPAYKT/XNAKSD/FXUIJ -mtime +10 -name *.bak -exec rm -rf {} ...

    Linux命令笔记

    系统管理/系统定时任务 1:crond服务管理与访问控制 语法:crontab [选项] 系统管理/系统资源查看 1:vmstat命令监控系统资源 语法: vmstat 刷新延时 刷新次数 2:dmesg开机时内核检测信息 语法: dmesg 3:free查看...

    Linux中使用crond工具创建定时任务的方法

    crond工具提供crontab命令来设置定时任务,属于守护进程,只能精确到分钟,可以设定周期性执行Linux命令或者Shell脚本,每分钟crond都会检查是否有定时任务需要执行 本次实验系统为CentOS 7 操作步骤 (1) 检查crond...

    centos 设置定时任务执行指定脚本的方法

    vim /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .—————- minute (0 – 59) # | .————- ...

    用shell脚本防ssh和vsftpd暴力破解的详解讲解

    脚本需求如下:此SHELL脚本放在crontab计划任务里,每隔6小时(此时间根据实际情况来定义)就去读取/var/log/secure脚本,取出里面恶意猜测IP,如果单位时间内(一星期)的连接数是高于一个阀值,例如100(此阀值也...

    Nginx日志切割清理脚本

    利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用

    Shell脚本中实现切换用户并执行命令操作

    今天公司同事来找到我说要在服务器上用另外一个用户执行python脚本,但设置到crontab里却老是root用户来执行,为了省事我就想了一个偷懒的办法,就是用shell脚本切换到那个用户,然后去执行那个python脚本.好了,这篇文章...

    CentOS下编写shell脚本来监控MySQL主从复制的教程

    目的:定时监控MySQL主从数据库是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1、创建脚本文件 vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码 #!/bin/sh # check_mysql_slave...

    aprs:php 上的 aprs api

    在课堂上,APRS 在 APRS 服务器上发布了身份验证,并使用当前位置...###用于在 Linux(CentOS) 上添加到 cron:### 打开 cron 配置: crontab -e 添加行: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin

    centos MYsql 备份计划

    mysql 自动备份计划 crontab 中设定脚本执行计划就行

    zabbix_app_named:zabbix模板来监视bind9命名服务

    zabbix_app_named zabbix模板来监视bind9命名服务使用方法(在CentOS7上测试) 监控脚本需要使用zabbix-sender yum install zabbix-sender在选项部分配置named.conf: statistics-file "/var/named/data/named_stats...

Global site tag (gtag.js) - Google Analytics