linux shell 学习脚本笔记

[[email protected] C07]# cat 7_1.sh

#!/bin/bash

if [ -f /etc/hosts ]

  then

    echo "[1]"

fi

if [[ -f /etc/hosts ]]

  then

    echo "[[1]]"

fi

if test -f /etc/hosts

  then

    echo "test1"

fi

[[email protected] C07]# cat 7_2.sh

#!/bin/bash

FreeMem=`free -m|awk ‘NR==3 {print $NF}‘`

CHARS="Current memory is  $FreeMem."

if [ $FreeMem -lt 1000 ]

  then

    echo $CHARS|tee /tmp/messages.txt

    #mail -s "`date +%F-%T`$CHARS" [email protected] </tmp/messages.txt

fi

if (($FreeMem<1000))

  then

    echo $CHARS|tee /tmp/messages.txt

    #mail -s "`date +%F-%T`$CHARS" [email protected] </tmp/messages.txt

fi

if [[ $FreeMem -lt 1000 ]]

  then

    echo $CHARS|tee /tmp/messages.txt

    #mail -s "`date +%F-%T`$CHARS" [email protected] </tmp/messages.txt

fi

if test $FreeMem -lt 1000 

  then

    echo $CHARS|tee /tmp/messages.txt

    #mail -s "`date +%F-%T`$CHARS" [email protected] </tmp/messages.txt

fi

[[email protected] C07]# cat 7_3_1.sh

#!/bin/sh

read -p "pls input two num:" a b

if [ $a -lt $b ];then

    echo "yes,$a less than $b"

    exit 0

fi

if [ $a -eq $b ];then

    echo "yes,$a equal $b"

    exit 0

fi

if [ $a -gt $b ];then

    echo "yes,$a greater than $b"

    exit 0

fi

[[email protected] C07]# cat 7_3_2.sh

#!/bin/sh

read -p "pls input two num:" a b

if [ $a -lt $b ];then

    echo "yes,$a less than $b"

elif [ $a -eq $b ];then

    echo "yes,$a equal $b"

else [ $a -gt $b ]

    echo "yes,$a greater than $b"

fi

[[email protected] C07]# cat 7_3_3.sh

#!/bin/sh

a=$1

b=$2

#read -p "pls input two num:" a b

if [ $a -lt $b ];then

    echo "yes,$a less than $b"

    exit 0

fi

if [ $a -eq $b ];then

    echo "yes,$a equal $b"

    exit 0

fi

if [ $a -gt $b ];then

    echo "yes,$a greater than $b"

    exit 0

fi

[[email protected] C07]# cat 7_3_4.sh

#!/bin/sh

a=$1

b=$2

#read -p "pls input two num:" a b

if [ $a -lt $b ];then

    echo "yes,$a less than $b"

elif [ $a -eq $b ];then

    echo "yes,$a equal $b"

else [ $a -gt $b ]

    echo "yes,$a greater than $b"

fi

[[email protected] C07]# cat 7_4_1.sh

#!/bin/sh

echo method1-------------------

if [ `netstat -lnt|grep 3306|awk -F "[ :]+" ‘{print $5}‘` -eq 3306 ]

then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method2-------------------

if "`netstat -lnt|grep 3306|awk -F "[ :]+" ‘{print $5}‘`" "3306" ]

then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method3-------------------

if [ `netstat -lntup|grep mysqld|wc -l` -gt 0 ]

then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method4-------------------

if [ `lsof -i tcp:3306|wc -l` -gt 0 ]

then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method5-------------------

[ `rpm -qa nmap|wc -l` -lt 1 ] && yum install nmap -y &>/dev/null

if [ `nmap 127.0.0.1 -p 3306 2>/dev/null|grep open|wc -l` -gt 0 ]

  then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method6-------------------

[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/null

if [ `nc -w 2  127.0.0.1 3306 &>/dev/null&&echo ok|grep ok|wc -l` -gt 0 ]

  then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

echo method7-------------------

if [ `ps -ef|grep -v grep|grep mysql|wc -l` -ge 1 ]

  then

    echo "MySQL is Running."

else

    echo "MySQL is Stopped."

    /etc/init.d/mysqld start

fi

[[email protected] C07]# cat 7_4_2.sh

#!/bin/sh

echo http method1-------------------

if [ `netstat -lnt|grep 80|awk -F "[ :]+" ‘{print $5}‘` -eq 80 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method2-------------------

if "`netstat -lnt|grep 80|awk -F "[ :]+" ‘{print $5}‘`" "80" ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method3-------------------

if [ `netstat -lntup|grep nginx|wc -l` -gt 0 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method4-------------------

if [ `lsof -i tcp:80|wc -l` -gt 0 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method5-------------------

[ `rpm -qa nmap|wc -l` -lt 1 ] && yum install nmap -y &>/dev/null

if [ `nmap 127.0.0.1 -p 80 2>/dev/null|grep open|wc -l` -gt 0 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method6-------------------

[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/null

if [ `nc -w 2  127.0.0.1 80 &>/dev/null&&echo ok|grep ok|wc -l` -gt 0 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method7-------------------

if [ `ps -ef|grep -v grep|grep nginx|wc -l` -ge 1 ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method8-------------------

if [[ `curl -I -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1` =~ [23]0[012] ]]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method9-------------------

if [ `curl -I http://127.0.0.1 2>/dev/null|head -1|egrep "200|302|301"|wc -l` -eq 1  ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

echo http method10-------------------

if "`curl -s http://127.0.0.1`" "oldboy"  ]

  then

    echo "Nginx is Running."

else

    echo "Nginx is Stopped."

    /etc/init.d/nginx start

fi

[[email protected] C07]# cat 7_6.sh

#!/bin/bash

a=$1

b=$2

#no.1 judge arg nums.

if [ $# -ne 2 ];then

    echo "USAGE:$0 arg1 arg2"

    exit 2

fi

#no.2 judge if int

expr $a + 1 &>/dev/null

RETVAL1=$?

expr $b + 1 &>/dev/null

RETVAL2=$?

if [ $RETVAL1 -ne 0 -a $RETVAL2 -ne 0 ];then

    echo "please input two int again"

    exit 3

fi

if [ $RETVAL1 -ne 0 ];then

    echo "The first num is not int,please input again"

    exit 4

fi

if [ $RETVAL2 -ne 0 ];then

    echo "The second num is not int,please input again"

    exit 5

fi

#no.3 compart two num.

if [ $a -lt $b ];then

    echo "$a<$b"

elif [ $a -eq $b ];then

    echo "$a=$b"

else

    echo "$a>$b"

fi

[[email protected] C07]# cat 7_9.sh

#!/bin/sh

if [ $# -ne 1 ]

  then

    echo $"usage:$0{start|stop|restart}"

    exit 1

fi

if "$1" "start" ]

  then

     rsync --daemon

     if [ `netstat -lntup|grep rsync|wc -l` -ge 1 ]

       then

         echo "rsyncd is started."

         exit 0

     fi

elif "$1" "stop" ]

  then

    pkill rsync

    if [ `netstat -lntup|grep rsync|wc -l` -eq 0 ]

      then

        echo "rsyncd is stopped."

        exit 0

    fi

elif "$1" "restart" ]

  then

    pkill rsync

    sleep 2

    rsync --daemon

else

    echo $"usage:$0{start|stop|restart}"

    exit 1

fi

时间: 2024-12-14 18:21:46

linux shell 学习脚本笔记的相关文章

Linux Shell 学习笔记

2.return与exit区别 return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用. exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 . main函数中exit(0)等价于return 0. 1. Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0 === 成功执行 非0 === 执行过程

【转】十分有用的linux shell学习总结

在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中 予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参 阅和查

Linux shell 自启动脚本写法

# ********************************************************************** # Linux shell 自启动脚本写法 # 说明: # 我们在做系统的时候,写自启动脚本是常有的事,下面是一个样板分析. # # 2017-1-10 深圳 南山平山村 曾剑锋 # ********************************************************************** #!/bin/sh # 脚本

linux shell学习笔记二---自定义函数(定义、返回值、变量作用域)介绍

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. retu

Linux Shell 学习笔记 一 目录结构

以Red Hat Enterprise Linux 各版本为例,RHEL中目录具体作用如下, /bin       存放普通用户使用的命令 /sbin     存放管理员可以执行的命令 /home   存放普通用户的家目录 如zhangshan家目录为/zhangshan /root     管理员的家目录 /etc       存放配置文件的目录 /boot     存放跟启动相关的文件 /usr       用户自定义的相关程序文件 /porc     内核,硬件参数相关的目录 /var  

Linux Shell学习之基础篇

在学习Linux和OpenStack过程中,感觉不管是大规模部署部署还是运维,Shell脚本都已经是标配,所以学好脚本很有必要. 以下仅为Linux Shell的一些基础笔记,这里作为笔记记下. ===============linux shell简介====================== 1.命令补全:连续按两次Tab   文件或者文件夹补全:一次Tab   命令帮助:--help 2.chmod u=rwx,g+w,o+r filename   chown root.root file

linux shell学习之shell流程控制

在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构   6.while循环 2.if then else语句 7.until循环 3.case 语句  8.break控制 5.for循环    9.continue控制 1,if then else  if 条件1 如果条件1为真  then 那么  命令1 执行命令1  elif 条件2 如果条件1不成

linux shell学习计划

因为工作需要,所以打算把linux shell系统学一下子,毕竟shell比较实用,且门槛似乎比其他编程语言要简单一点.大概定的路线就是如下:(1)linux shell 背景以及shell运行执行的机制(2)基础语法A(变量,表达式,参数传递,数量类型,算数运算,逻辑运算等)(3)基础语法B(循环判断之类的控制结构,函数等)(4)正则表达式3大法宝(5)正则表达式进阶(6)linux shell脚本实战(譬如一些监控系统资源的脚本,批量配置下发,批量配置检查脚本,压力测试执行脚本等等~) 原文

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器