linux中shell脚本监控网站80端口与网站是否正常

监控网站80端口

很多时候我们不知道网站80端口是否正常,当然我以前的shell监控网站状态(续)这篇文章也可以监控网站,这里只是给大家提供另外一个思路去监控网站.

脚本内容:

 代码如下 复制代码

vi check-80.sh

#!/bin/bash
nmap -P0 -p80 -sS -vv blog.slogra.com|grep 80 |tail -n1>/tmp/nmap.txt
check_80=`cat /tmp/nmap.txt|awk '{print $2}'`
if [ "$check_80" != "open" ]; then
 body="www.111cn.net port 80 is error!"
 subject="blog.slogra.com port 80 down,check it now!@from monitor `date +%T`"
 echo "${body}"| mutt -s "${subject}" rocdk@163.com
fi

shell脚本监控网站是否正常

1. 编写Shell脚本,保存到/opt/http_monitor

 代码如下 复制代码

#!/bin/bash

#网站url地址
URL="http://www.111cn.net/"

#获取http响应代码
HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"`
#echo $HTTP_CODE

#服务器能正常响应,应该返回200的代码
if [ $HTTP_CODE != 200 ];then
#重启服务
service httpd restart
fi

2. 增加到crontab,使用crontab -e命令添加新的任务:

Shell代码

 代码如下 复制代码
#每分钟运行一次
*/1 * * * * /opt/http_monitor

3. 停掉服务,测试,cool!一分钟后自动启动了!可是中文乱码了,查了一下原来是没有加载系统变量,好办,在http_monitor中加入locale环境变量就可以了:

Shell代码

 代码如下 复制代码

export LC_ALL=zh_CN.UTF-8

注意

很多朋友使用dnspod监控,但它只能监控服务器是否可连接,如果网站中毒了可能就无法监测了。

时间: 2024-08-30 23:37:02

linux中shell脚本监控网站80端口与网站是否正常的相关文章

应用-Linux中shell脚本问题

问题描述 Linux中shell脚本问题 ]我有shell脚本,放在/bin/目录下,内容如下: #!/bin/sh cd /usr /sbin/insmod s3c_ts.ko ./digitpic ./MSYH.TTF & 当我开发板上电以后我手动执行手动执行test.sh 我的digitpic应用程序能够正常启动 当我在/etc/init.d/rcS 文本里面最后添加exec test.sh 提示说这个触摸屏读取错误,也就是/sbin/insmod s3c_ts.ko这部分错误了,就只有触

linux中shell脚本实现下载完关机_linux shell

用mint 有一段时间了,下载基本用firefox,有时下载几个G的游戏.可是firefox没有找到下载完关机的选择.处于这个原因,写了这个. download_shutdown.sh #!/bin/bash # Created By: Demo <demo@demo.com> # Created Time: 2015-01-30 12:36:44 # Modified Time: 2015-01-30 12:54:21 dir=$1 while [ "1" ] do if

Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考.   1.监控磁盘的空闲空间shell脚本 robin@SZDB:~/dba_scripts/custom/bin> more ck_fs_space.sh #!/bin/bash # -----------------------------------------------------------------------------

linux中shell脚本进行MySQL数据库定时备份

具体方法  代码如下 复制代码 #!/bin/bash #Shell Command For Backup MySQL Database Everyday Automatically By Crontab #Author : Carlos Wong #Date : 2010-08-24 #配置参数  代码如下 复制代码 USER=root #数据库用户名" >用户名 PASSWORD=××××× #数据库用户密码 DATABASE=TIENIUZAI    #数据库名称 WEBMASTER

linux中shell脚本导出备份mysql数据库

最近公司有个需求需要从mysql数据库中查询状态为60的数据并导出. 实例代码如下: #!/bin/bash   dir="/cache1" ##要存到导出数据的目录名 open="open" ##导出数据的文件名称 open_dir="${open}.$(date +%Y%m%d)" ##导出数据的文件名称,按日期区分 db="/opt/trustedm/mysql/current/bin/mysql -uroot -pmv_XQ_m

linux中SHELL脚本中的数组用法

在Shell中(我这里是Bash),其实没有传统意义上的"数据类型",把任何变量中存的值都是作为字符组成的"字符串".当然,通过declare可以声明某个变量是整型.数组等类型.其中,数组就是本文要专门讲的了.在Bash中,仅支持一维数组,当然通过关联数组(associative array)的形式可以模拟多维数组. 1. 数组的声明 用 declare -a array 声明array是一个数组,用declare -A a_array 声明a_array是一个关联

linux中shell脚本数组的操作教程

数组赋值:a=(1 2 3 4 5) a[1]=1 数组长度:echo ${#a[@]} 或者 echo ${#a[*]} 读取数组:echo ${a[@]} 或者 echo ${a[*]} echo ${a[0]}                             PS: 数组下标从0开始 删除数组:unset a unset a[1] 数组分片:echo ${a[@]:0:3}                  显示为1,2,3                ps:截取前3个数组值显示

linux中Shell脚本分割Nginx日志,并定期清理例子

一:新建脚本文件 vim cut_nginx_log.sh #!/bin/bash #nginx access log segmentation shell script #www.webyang.net #日志目录 log_dir="/usr/local/nginx/logs/" cd $log_dir time=`date +%Y%m%d --date="-1 day"` #nginx启动目录 nginx_dir="/etc/init.d/nginx&

linux中Shell脚本所在目录的绝对路径

 代码如下 复制代码 baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd) echo "full path to currently executed script is : ${baseDirForScriptSelf}" 或者 FULLPATH=$(cd "$(dirname "$0")"; pwd) echo "full path to curr