博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第7章核心代码《跟老男孩学习Linux运维:Shell编程实战》
阅读量:5998 次
发布时间:2019-06-20

本文共 4588 字,大约阅读时间需要 15 分钟。

和市面书籍不同,本书是作者经过15年以上运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者。

《跟老男孩学习Linux运维:Shell高级编程实战》第7章,本书已于2017年1月出版,为了答谢读者,特将本章的部分代码分享如下:

有关代码的思路分析和详细注释,请支持作者购买正版书籍获得。

购作者签名书请访问下面地址:

如果你觉得看书枯燥乏味,可以购买本书配套视频和老男孩隔空对话学习。

2017跟老男孩学Linux运维:Shell编程实战书籍视频-第1-20章

最后更新日期2017年2月2日

[root@oldboy C07]# cat 7_1.sh#!/bin/bashif [ -f /etc/hosts ]  then     echo "[1]"fiif [[ -f /etc/hosts ]]  then    echo "`1`"fiif test -f /etc/hosts  then    echo "test1"fi[root@oldboy C07]# cat 7_2.sh#!/bin/bashFreeMem=`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" 490004487@qq.com /dev/nullif [ `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 startfiecho method6-------------------[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/nullif [ `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 startfiecho 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 startfi[root@oldboy C07]# cat 7_4_2.sh#!/bin/shecho 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 startfiecho 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 startfiecho 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 startfiecho 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 startfiecho http method5-------------------[ `rpm -qa nmap|wc -l` -lt 1 ] && yum install nmap -y &>/dev/nullif [ `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 startfiecho http method6-------------------[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/nullif [ `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 startfiecho 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 startfiecho 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 startfiecho 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 startfiecho 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 startfi[root@oldboy C07]# cat 7_6.sh#!/bin/basha=$1b=$2#no.1 judge arg nums.if [ $# -ne 2 ];then    echo "USAGE:$0 arg1 arg2"    exit 2fi#no.2 judge if intexpr $a + 1 &>/dev/nullRETVAL1=$?expr $b + 1 &>/dev/nullRETVAL2=$?if [ $RETVAL1 -ne 0 -a $RETVAL2 -ne 0 ];then    echo "please input two int again"    exit 3fiif [ $RETVAL1 -ne 0 ];then    echo "The first num is not int,please input again"    exit 4fiif [ $RETVAL2 -ne 0 ];then    echo "The second num is not int,please input again"    exit 5fi#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[root@oldboy C07]# cat 7_9.sh#!/bin/shif [ $# -ne 1 ]  then    echo $"usage:$0{start|stop|restart}"    exit 1fiif [ "$1" = "start" ]  then     rsync --daemon     if [ `netstat -lntup|grep rsync|wc -l` -ge 1 ]       then         echo "rsyncd is started."         exit 0     fielif [ "$1" = "stop" ]  then    pkill rsync    if [ `netstat -lntup|grep rsync|wc -l` -eq 0 ]      then        echo "rsyncd is stopped."        exit 0    fielif [ "$1" = "restart" ]  then    pkill rsync    sleep 2    rsync --daemonelse    echo $"usage:$0{start|stop|restart}"    exit 1fi

书不是看会的,而是不断练习会的! 看书过程中遇到勘误错误,可以发到下面地址。

转载地址:http://qswmx.baihongyu.com/

你可能感兴趣的文章
PHP动态属性和stdclass
查看>>
推荐一个.NET下转Json的利器,FastJson
查看>>
快速构建Windows 8风格应用25-数据绑定
查看>>
VMware vSphere常见问题汇总(十三)
查看>>
镭速RaySync VS FTP 系列(8) - 阿里云法兰克福到阿里云深圳
查看>>
用JMock实现对基于接口编程的类进行单元测试的简单步骤
查看>>
改善Objective-C的日志输出
查看>>
华为OSPF多区域实验
查看>>
Linux pkill 踢在线用户
查看>>
技术成就梦想,51CTO成就你我!
查看>>
入门书籍推荐
查看>>
SCDPM2012配置及客户端安装(二)
查看>>
<linux shell 攻略> 庖丁解牛 mysql数据库脚本管理系统
查看>>
解决Excel打开UTF-8编码的CSV文件乱码的问题
查看>>
Puppet基础篇3-安装Puppet前期的准备工作
查看>>
使用WPF技术实现基于MSN协议的五子棋程序
查看>>
9月第2周安全回顾:跨站脚本取代SQL注入 成Web漏洞王
查看>>
slplunk原始数据和索引数据大小比较
查看>>
加密工作原理
查看>>
Scoket:TCP通讯模型
查看>>