实用shell编写案例

1.能够设置检查服务器的台数 和 要检查哪台服务器,把不在线主机的ip地址和对应不在线的时间,并统计不在线主机的台数保存的到文件里。然后把文件内容显示到屏幕上。

  1 #! /bin/bash
  2 read -p "请输入检测台数:" x
  3 s=0
  4 b=0
  5 for ((i=1;i<=x;i++))
  6 do
  7     read -p "请输入要检测的主机地址,输入后请稍后:" ip[$i]
  8 
  9         ping -c 1 192.168.1.${ip[$i]} &> /dev/null
 10         if [ $? -ne 0 ]
 11         then
 12                 date >> /root/shell/offline.txt
 13         echo "ip:192.168.1.${ip[$i]} is offline" >>/root/shell/offline.txt
 14         let s++
 15         else echo "192.168.1.${ip[$i]} is online"       
 16         fi
 17     done
 18 
 19         echo "本次不在线数:" $s  >>/root/shell/offline.txt
 20         tail -10 /root/shell/offline.txt

2.给源码http服务编写启动脚本

  1 #! /bin/bash
  2 # chkconfig: 2345 75 25
  3 # description: apache http
  4 # processname: httpd
  5 path="/usr/local/httpd/bin/apachectl"
  6 case $1 in
  7 start)
  8     $path start &> /dev/null
  9     sleep 1
 10     echo -n "apache is start..ok";;
 11 stop)
 12     $path stop
 13     sleep 2
 14     echo -n "apache is stop..ok";;
 15 restart)
 16     $path stop
 17     echo -n "apache is stop..ok"
 18     sleep 3
 19     $path start
 20     echo -n "apache is start..ok";;
 21 status)
 22     netstat -anptu | grep httpd$
 23     if [ $? -eq 0 ];then
 24     echo "apache is runing"
 25     else echo "apache is not run"
 26     fi;;
 27 *)
 28     echo "apache {start/stop/restart/status}"
 29 esac
 30 echo

3.当系统根分区的可以空间低于15G时,向系统所有终端发送警告信息“根分区磁盘空间不足”

  1 #! /bin/bash
  2 i=`df -h|grep /$|awk ‘{print $4}‘|awk -F "G" ‘{print $1}‘`
  3 if [ $i -lt 15  ];then
  4         wall "根分区可用空间为 $i G,空间不足" 
  5 fi

4.添加用户时 ,用户可以设置添加用户的个数,用户名前缀、用户的密码,用户的有效期。

  1 #! /bin/bash
  2 read -p "请输入用户个数" count
  3 read -p "请输入用户名前缀" user
  4 read -p "用户名密码" passwd
  5 read -p "有效期" shi
  6 s=85
  7 for((i=$s;i<=$s+$count-1;i++))
  8 do
  9     if [ $i -lt 10 ];then
 10         useradd "$user"0$i
 11         echo "$passwd" | passwd --stdin "$user"0$i &>/dev/null
 12         chage -d 0 "$user"0$i
 13         chage -M $shi "$user"0$i
 14     else
 15         useradd $user$i
 16         echo "$passwd" | passwd --stdin $user$i &>/dev/null
 17         chage -d 0 $user$i
 18         chage -M $shi $user$i
 19     fi
 20 done

5.在mysql主从同步中 slave服务器上运行脚本,监控 IO 进程 和 SQL 进程的状态 ,当有一个进程的状态是NO时,向终端发送警告信息 

  1 #! /bin/bash
  2 a=`mysql -uroot -p123456 -e "show slave status\G"|grep -iE "*io_runing"|awk ‘{print $2}‘`
  3 b=`mysql -uroot -p123456 -e "show slave status\G"|grep -iE "*sql_runing"|awk ‘{print $2}‘`
  4 while :
  5 do
  6         if [ $a = "NO" -o $b = "NO" ];then
  7         wall "mysql runing_status is NO"
  8         fi
  9 done

6.实用正则表达

    mac:([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}       
    ip:([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.){3}[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]

实用shell编写案例

时间: 2024-10-12 21:22:45

实用shell编写案例的相关文章

Java对象简单实用(计算器案例)

Java对象简单实用(计算器案例) 对 Java中的对象与属性,方法的使用,简单写了个案例 1 import java.util.Scanner; 2 class Calculste 3 { 4 int a; //定义两个整数 5 int b; 6 String option; //定义接收操作符的字符串 7 public void count(){ 8 9 //对操作符进行判断 10 switch(option){ 11 case "+": 12 System.out.println

看我如何利用Shell编写vsftpd管理软件

今天弄服务器的时候无意间用到此脚本,觉得当时写的虽然不咋样,但还是有点借鉴意义,就拿出来给大家看看.希望大家喜欢 先看看演示视频 看我如何利用Shell编写vsftpd管理软件 高清版下载: 百度云下载 OK然后我们来看看脚本的实现过程,时间有点久了当时的想法可能现在有点想不起来了,解释的不对的地方望见谅 脚本分为7个部分,这里我只做简单的解释 第一部分 脚本开始就利用awk提取日志中的用户名字段保存到tmp目录下的ftplog-userlist.txt文件中,方便后面查询 然后开始信息的展示,

通过跳板机建立信任,对多个tomcat服务统一安装部署(shell编写)

=========================================================== conf : 录入服务器IP.安装路径后,脚本自动获取需要修改配置.每个服务提供一个配置文件,方便管理与扩展. bin : 提供总执行与单一执行脚本,脚本通过自动化获取配置,便于维护与扩展. bak : 保留获取原配置文件,便于问题分析. temp : 临时文件将及时删除无任何冗积. tools: 常用配置与通用文件处理写入统一函数,具体服务只需调用. new : 服务器交互文

linux 下shell 编写脚本

linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个脚本,给定一个正整数,反序输出这个这个数. 例如:程序输入123,那么应该输出321. 3.Linux命令+shell编程:编写一个程序,实现定时文件备份的功能. 要求: 1.备份某个目录下的所有文件 2.对备份文件进行压缩 3.生成合理的日志文件 4.Shell下的gui(libnotify-bi

Shell编写字符菜单管理-8

第8章 Shell编写字符菜单管理 一.shell函数定义function menu(){ echo 'this is a func!!';} 二.shell函数使用menu 三.cat命令的heredoc使用方法cat << eof aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaeof 四.字符界面下字体的颜色控制echo -e "\033[30;47m tes

用Shell编写for循环和while循环案例

(1)Shell中的单引号和双引号区别 ??A="www.jfedu.net" ??B='$A' ?echo $B 注释:? ? ? ? ? ? ?把www.jfedu.net赋值给变量A,?把变量A的内容赋值给变量B,打印出变量B的结果,打印出的结果为$A ? ? ? ? ? ?因为变量A是一个弱引用,引用的结果只是一个字符 A="www.jfedu.net" B="$A" echo $B 注释: ? ? ? ? ? ??把www.jfedu.

使用shell编写一个检测系统参数的脚本

检测os的脚本 目的:学了shell语言后,根据已学编写一个shell的脚本实现检测部分系统参数实现邮件告警, (之前刚刚学习写的不怎么完善和实用!) [[email protected] scripts]# cat os.monitor.sh #!/bin/bash ########### #name=linux查看系统资源脚本 #auth=cml #time:2015 ########### DATE=`date "+%F %H:%M:%S"` HOST=`hostname` ##

Shell企业案例实战和企业面试题

shell企业面试题 1.批量创建带有随机小写字符文件程序 使用for循环在/pizza目录下创建10个html文件,其中每个文件包含10个随机小写字母加固定字母_pizza 1.思路分析: 核心是:创建10个随机小写字母 第一种:$RANDOM [root@web-01 /server/scripts]# echo $RANDOM 9839 范围0-32767 ,第一个容易被破解,使用的时候最好再加个字符串 第二种:openssl rand -base64 10 [root@web-01 /s

shell 编写脚本批量ping ip

最近做机房带宽检测.最近编写一个shell脚本批量ping各地机房的ip,返回失败率及平均响应时间 #!/bin/bash log=$1.log echo -n "" > $log for i in `cat $1` do   /bin/ping -s 1000 -f -c 100  $i > ip.txt echo "`curl ip.cn?ip=$i`  `cat ip.txt | grep transmitted  | gawk '{print $6}'`