shell脚本实例-内存磁盘使用警告】的更多相关文章

1,磁盘使用警告并发送邮件 #!usr/bin/bash #df -Th|grep '/$' 这个是获取内存使用的那一条记录 #后面两句是获取内存的使用率 disk=`df -Th|grep '/$' |awk '{print $(NF-1)}'|awk -F"%" '{print $1}'` mail_user=natasha if [ $disk -ge 80 ];then echo "`date +%F-%H` disk:${disk}% "|mail -s…
概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 假设服务器环境为lnmp,近期访问经常出现502现象,且502错误在重启php-fpm服务后消失,因此需要编写监控脚本,一旦出现502,则自动重启php-fpm服务. #场景:#1.访问日志文件的路径:/data/log/access.log#2.脚本死循环,每10秒检测一次,10秒的日志条数为3…
概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现的方式,答案不是标准的,也存在一些可以继续完善的地方. 1.文件以日期命名,并写入磁盘使用情况 #!/bin/bash ##################################################文件以日期命名,并写入磁盘使用情况#######################…
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. #!/bin/bash a="/tmp/test.log" while [[ -f $a ]]; do sleep 1; size=`ls -lrt $a | cut -d " " -f 5` echo $size if [ $size -ge 1024 ]; then…
使用 http://www.weiruoyu.cn/?p=368 shell脚本监控硬盘空间剩余空间 邮件报警 1.先观察一下磁盘,和如何使用脚本 [root@localhost ~]# df -h 文件系统              容量  已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 8.9G  2.6G  5.9G  31% / /dev/sda1              99M   13M   82M  13% /boot tmpfs   …
备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个参数,如果要取超过9个参数${n}$* 所有的命令行参数,等于("$1 $2...""$@" 所有的命令行参数,等于("$1" "$2"...)$_ 前一个命令的最后一个命令行参数   1.     写一个脚本,利用循环计算10的…
shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` do ] then mv $"/"$file fi done } movefiles "/home/jimmyxu/TMPA" "/home/jimmyxu/TMPB" 脚本很简单,使用for循环遍历第一个输入路径下的文件,使用stat获取文件的属性值…
一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim  test.sh     ##shell脚本一般都是以.sh结尾三.执行方法  1.sh  test.sh              ##不执行开头的的命令  2.chmod +x  test.sh    /mnt/test.sh             ##执行的时候会先执行以#开头的第一句 四.脚本的调示  sh  -x  test.sh  …
#!/bin/bash # by dreamer Q # 巡检内存脚本 #总内存大小 mem_total=`free -m | sed -n '2p' |awk '{print $2}'` #已使用内存 mem_used=`free -m | sed -n '2p' |awk '{print $3}'` #剩余内存 mem_free=`free -m |sed -n '2p' |awk '{print $4}'` #使用内存百分比 Percent_mem_used=`echo "scale=2;…
在生产环境中,我们时常要注意主机的各种硬件状态,如果是规模较大的服务集群zabbix等健康工具当然好用,如果只是一些小规模的服务主机,shell就会表现的更灵活,也更适用,今天就和大家分享一个系统巡检脚本! #!/bin/bash function system(){ echo "#########################系统信息#########################" OS_TYPE=`uname` OS_VER=`cat /etc/redhat-release`…
cpu信息采集 cpu使用率 采集算法 通过/proc/stat文件采集并计算CPU总使用率或者单个核使用率.以cpu0为例,算法如下: 1. cat /proc/stat | grep ‘cpu0’得到cpu0的信息 2. cpuTotal1=user+nice+system+idle+iowait+irq+softirq 3. cpuUsed1=user+nice+system+irq+softirq 4. sleep 30秒 5. 再次cat /proc/stat | grep 'cpu0…
#!/bin/bashexport chknum=1 #shell搅拌存放目录(输出日志文件执行后也存于该目录)echo 3 > /wls/wls81/shellsyncwhile [ $chknum -ge 0 ]doecho "-------------------------------------------------------" >> trace.logmt=`free | tr [:blank:] \\\n | grep [0-9] | sed -n…
今天我给大家分享shell 安装mysql 多机部署的实例,本次实验是基于各个主机的公钥已经配置好了,如果还不会推送公钥的同学,可以看看我以前写的文章,那里面有写推公钥的实例,mysql 多机部署一般有两种办法,一种是远程ssh 安装,一种是将脚本推送到服务器本地安装,今天给大家分享的是ssh远程安装,回头了本地安装的方法我也给大家分享下. #!/usr/bin/bash while read ip do { #yum 配置yum源 ssh root@ip "rm -rf /etc/yum.re…
1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实现查看进程信息.查看当前登录系统的用户信息等功能.程序主界面颜色可以更改,也可以显示帮助信息.1.9.2 系统设计        根据需求,首先考虑到界面的美观性,将主界面设计为菜单形式.个系统管理功能作为其中的一个菜单项.当用户选择某项功能后,则执行相应的代码段完成功能并输出.输出结束后再返回主菜…
1.传给脚本一个参数:目录,输出该目录中文件最大的,文件名和文件大小 #!/bin/bash if [ $# -ne 1 -o ! -d $1 ];then echo "Args is error." exit 3 fi LC=`du -a $1 | wc -l` for I in `seq $LC` ;do size=`du -a $1 | sort -nr | head -$I | tail -1 | awk '{print $1}'` filename=`du -a $1 | s…
我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次,因为老伯们也不容易啊,屌丝何苦为难屌丝... 废话不多说了上脚本! 找出CPU占用超过90%的MATLAB进程,grep -v 去掉"grep"进程 pids=`ps aux|grep "MATLAB"|grep -v "grep"|awk '{i…
1.程序流程控制实例 程序流程控制,实际上就是改变程序的执行顺序.程序在执行过程中若流程被改变,就可能导致输出不同,因此利用这一特性就能够实现程序执行结果的控制.程序流程控制可分为“选择”和“循环”这两类,在需要根据实际需求的不同实现不同的输出时,就可以改变程序的执行流程. (1)for循环语句 基于for语句的循环,基于继续执行循环或者结束循环的方式.在for执行命令前,其会先检查所要执行的列表中所指定的值是否还有未使用的,若有未使用的就赋值并执行列表,直到列表中的值全部都使用过后才退出循环.…
如上的内存利用率 = [-/+buffers/cache:used]/[Mem:total ] =  6293404 / 16333656 对于free命令而言,有如下公式: total = used + free; (-buffers/cache) used = Mem:used - Mem:buffers - Mem:cached; (-buffers/cache) used= ( Mem:total - Mem:free ) -  Mem:buffers - Mem:cached (+bu…
http://bbs.chinaunix.net/thread-3580033-1-1.html shell游戏收集贴 #!/bin/bash # Tetris Game #APP declaration APP_NAME="${0##*[\\/]}" APP_VERSION="1.0" #颜色定义 cRed= cGreen= cYellow= cBlue= cFuchsia= cCyan= cWhite= colorTable=($cRed $cGreen $cY…
在群里也混了不少时间了.总结一些实例 #统计QQ消息里面某个用户改名字的记录# awk -f# 聊改名字记录#特殊例子 例如#2013-11-28 9:23:56 北京-AA-Vip<123456789@qq.com>#2013-11-28 9:23:42 中山-BB(10570765) /^[-]+ [-:]+ [<(].*[>)] ?$/{ next } /^[--]+ [-:]+ .*[<(].*[>)] ?$/{ QQ=gensub(/^[--]+ [-:]+…
#!/usr/bin/bash PS3="Your choice is: [10 for quit]" #检查是那个系统 os_check() { if [ -e /etc/redhat-release ]; then REDHAT=`cat /etc/redhat-release |cut -d' ' -f1` else DEBIAN=`cat /etc/issue |cut -d' ' -f1` fi if [ "$REDHAT" == "CentOS…
1.上次写了一个脚本我那次考虑不是很周全,这次我将脚本改动了一下,这次是判断三次, 希望关注我的人可以经常交流哈.下面我写上代码. #!/usr/bin/bash while read ip do fail_count=0 for count in {1..3} do ping -c1 -W1 $ip &>/dev/null if [ $? -eq 0 ];then echo "$ip ping is ok..." break else echo "$ip pi…
#!/usr/bin/bash #用途:跟踪网页是否有更新 if [ $# -ne 1 ];then echo -e "$Usage $0 URl " exit fi first_time=0 #非第一次运行这个脚本 if [ ! -e "last.html" ] ;then first_time=1 fi curl $1 -o recent.html #下载静态页面 if [ $first_time -ne 1 ];then change=$(diff -u la…
1,先通过ssh-keygen 生成公钥,然后将公钥推送到各个主机ssh-copy-id web1|ip 2简单的代码实现 #!/usr/bin/bash trap "" HUP INT OUIT TSTP#这个是linux的捕捉信息,这句话的意思是有这几个捕捉信号了就什么都不做 web1=192.168.234.137 web2=192.168.234.145 clear while : do cat <<-EOF 1. web1 2. web2 EOF #read -p…
在 if 语句里面,你可以使用另外一个 if 语句.只要你能逻辑管理 你就可以使用多层嵌套. 以下是一个测试闰年的例子: #!/bin/bash # This script will test if we're in a leap year or not. year=`date +%Y` if [ $[$year % 400] -eq "0" ]; then      echo "This is a leap year.  February has 29 days."…
1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read passwdif [ $name = "cht" -a $passwd = "abc" ];thenecho "the host and password is right!"else echo "input is error!"fi…
练习一:获得连通主机的ip和hostname1.脚本编写 vim  checkhost.sh #!/bin/bashAuto_conn(){/usr/bin/expect << EOFset timeout 2spawn ssh root@$1 $2expect {"yes/no" {send "yes\r";exp_continue }"password" {send "westos\r" }}expect eo…
练习题一:对已经存在的用户做密码的修改等操作 vim  user_ctrl.sh                 ##进行如下编写 #!/bin/bashShow(){        read -p "请输入您想操作的用户名或输入exit退出:" User        [ "$User" = "exit" ]&&{                echo bye!!                exit        }||{…
#!/bin/bash # 自动对磁盘分区.格式化.挂载 # 对虚拟机的 vdb 磁盘进行分区格式化,使用<<将需要的分区指令导入给程序 fdisk # n(新建分区),p(创建主分区),(分区编号为 ),两个空白行(两个回车,相当于将整个磁盘分一个区) # 注意: 后面的两个回车(空白行)是必须的! fdisk /dev/vdb << EOF n p wq EOF #格式化刚刚创建好的分区 mkfs.xfs /dev/vdb1 #创建挂载点目录,判断date目录是否存在,不存在则…
写一个配置文件保存被监控主机SSH连接信息,格式:IP User Port [root@Test ~]# cat host 10.10.10.10 root 22 10.10.10.11 root 22 配置防火墙规则 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 创建ssh免密通道 [root@Test ~]# ssh-keygen -t rsa -f ~/.ssh/id_dsa -P "" [roo…