`
jsczxy2
  • 浏览: 1269654 次
  • 性别: 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章。

 

分享到:
评论

相关推荐

    shell命令与定时任务

    ### CentOS 7 中 Shell 脚本的使用与定时任务创建 #### Shell 命令与脚本基础 - **Shell 脚本环境变量**: - **系统环境变量**:位于`/etc/profile`文件中,适用于系统中的所有用户。 - **用户环境变量**:位于...

    shell脚本100例.docx

    - **基础概念**:这是Shell脚本中最简单的示例之一,用于初学者快速上手。 - **语法详解**: - `#!/bin/bash`:指定此脚本使用bash shell解释器来执行。 - `echo "HelloWorld!"`:打印“HelloWorld!”到标准输出...

    crontab –e使用实操

    在本文中,我们将详细介绍 Crontab 的使用,并将其与 MySQL 的备份结合,实现自动定时启动 MySQL 备份 shell 脚本。 什么是 Crontab Crontab 是一个在 Unix 和类 Unix 系统中用于计划作业的工具。它允许用户在指定...

    linux笔记

    ### Linux快速掌握知识点详解 #### 一、虚拟机及Linux安装 ##### 1.1 虚拟机介绍 - **定义**: 虚拟机是通过软件模拟出来的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 - **作用**: 可以...

    linux培训资料.zip

    Linux是世界上最广泛使用的开源操作系统之一,它为个人用户、企业乃至超级计算机提供了强大的计算平台。这份"linux培训资料.zip"包含的"linux培训ppt资料"是学习Linux基础知识的理想资源,涵盖了从初学者到进阶用户...

    shell脚本100例(最新版).pdf

    Shell脚本是Linux系统中的一种强大工具,它允许用户通过编写简单的命令行指令组合来实现自动化任务。在《shell脚本100例(最新版).pdf》这本书中,作者详细介绍了各种实用的Shell脚本案例,涵盖了从基础语法到高级...

    Linux学习笔记.pdf,linux详解,LINUX

    - crontab:定时任务调度。 十、软件编译与构建 - make:自动化编译工具。 - autotools:一套用于构建跨平台软件的工具集。 - Docker:容器化技术,方便软件部署。 通过阅读“Linux学习笔记.pdf”,你可以系统地...

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

    总结一下,本文详细介绍了如何在CentOS6中使用crontab进行定时任务的配置,包括编写Java程序、Shell脚本以及设置crontab规则。这种方法适用于任何需要周期性执行的Java应用程序,不仅可以提高工作效率,还可以确保...

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

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

    使用shell调用php脚本

    在Linux环境中,shell是操作系统与用户交互的主要方式之一,它提供了命令行接口,允许用户执行各种操作。PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域中扮演着重要角色。当我们需要在Linux服务器上自动...

    linux(centos)中的cron计划任务配置方法.docx

    本文将详细介绍如何在Linux(CentOS)中配置cron计划任务。 1. **crontab命令及其选项** `crontab`命令是用于管理用户级cron任务的工具。你可以使用以下选项: - `-u`:指定要管理任务的用户。 - `-l`:列出指定...

    corntabs离线安装rpm资源文件

    - 如果你有一个RPM包需要定期更新,可以编写一个shell脚本来执行`rpm`安装命令,并将其添加到`crontab`中。 - 例如,假设有一个名为`my_package.rpm`的RPM包,你可以创建一个`install_package.sh`脚本,内容为`rpm...

    shell脚本100例.pdf

    本书《shell脚本100例》通过实例教学的方式,向读者展示了如何编写Linux下的shell脚本,以此来提高对Linux系统自动化和系统功能的运用能力。本书不仅适合于初学者熟悉Linux操作系统的自动化使用,同时也适用于有一定...

    【PDF版本】老男孩教育Linux高端运维及云计算架构师-就业班20170513V9.pdf

    - **Linux定时任务**:学会使用crontab等工具实现任务调度。 - **用户管理**:掌握用户账户的创建、删除、修改权限等操作。 - **磁盘与文件系统**:了解Linux下的磁盘管理和文件系统类型。 - **sed命令**:学习使用...

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

    在Linux系统中,尤其是CentOS 7环境下,定期自动化任务是非常常见的需求,这通常通过`crontab`和`shell`脚本来实现。本文将详细解释如何利用这两个工具来自动删除指定目录内的文件,以满足特定的保留策略,例如保留...

    linux环境下安装mysql脚本笔记

    在Linux环境下安装MySQL是一项常见的系统管理任务,尤其对于那些依赖数据库服务的应用程序来说更是必不可少。以下是一份详细的安装过程及相关的脚本知识。 首先,让我们深入理解Linux安装MySQL的步骤: 1. **更新...

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

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

    CentOS7通过Shell自动更新部署项目

    Shell脚本是Linux或类Unix系统中的命令行脚本,可以执行一系列命令,实现自动化任务。在我们的场景中,我们将编写一个Shell脚本来自动化项目的更新和部署过程。 1. **安装基础环境**: 在CentOS7上,首先确保安装...

    超级方便的linux命令手册.zip|超级方便的linux命令手册.zip

    - `crontab`:设置定时任务。 9. **其他实用命令**: - `history`:查看命令历史。 - `clear`:清空终端屏幕。 - `alias`:创建命令别名。 - `man`:查看命令的帮助文档。 通过这份"超级方便的Linux命令手册...

Global site tag (gtag.js) - Google Analytics