zoukankan      html  css  js  c++  java
  • shell基础语法以及监控进程不存在重新启动

    转码

    # dos2unix ./test.sh

    权限

    # chmod a+x ./test.sh


    语法
    变量
    var="111"
    echo $var
    echo ${var}


    运算
    no1=4;
    no2=5;
    let result=no1+no2
    echo $result;


    自增自降低
    let no++  
    let no--


    []和let相似
    result=$[ no1 + no2 ]
    result=$[ $no1 + 5 ]
    也能够使用(()),但使用(())时。变量名前须要加上$
    result=$(( $no1 + 5 ))


    expr也能够用于基本算术操作


    result=`expr 3+4`
    result=$(expr $no1 + 5)
    以上不支持浮点


    bc能够浮点
    echo "4*0.56" |bc  输出2.24


    文件描写叙述符
    0 1 2 标准输入 输出 标准错误


    重定向到文本
    echo "123" > temp.txt
    追加
    echo "123" >> temp.txt


    查看文件内容
    cat temp.txt
    cat 1.txt  2.txt  多个内容


    ls + 
    非法參数输出错误信息stderr


    命令错误并退回 返回非0的退出状态
    成功完毕返回数字0
    退出状态能够从特殊变量$?获得,在命令执行完后立马执行echo $?就能够打印退出状态


    ls + >out.txt   错误信息不能输出到文本
    ls + 2>out.txt   错误信息能输出到文本
    stderr和stdout各自
    cmd 2>stderr.txt  1>stdout.txt


    stderr转换为stdout
    cmd 2>&1 out.txt
    或者
    cmd &> out.txt


    stderr重定向到
    /dev/null




    读取日期
    date



    函数定义
    function fname()
    {


    return 0;返回值
    }


    函数调用
    $fname;
    $fname arg1 arg2;传參数


    一定要注意[]空格
    #! /bin/sh
    
    
    a=4;
    b=5;
    
    
    if [ "$a" = "$b" ]; then
    echo "1111"
    #####


    #! /bin/sh
    
    
    a=4;
    b=5;
    
    
    if [  "$a" -eq "$b"  ]
    then
    echo "yyyyyyyyyy"
    else
    echo "nnnnn"
    fi
    #####


    #! /bin/sh
    ps aux|grep  redis-stat | grep -v grep| wc -l
    a=11
    b=11
    if [ $a -eq $b ]
    then
    echo "start process....."
    else
    echo "runing....."
    fi
    #####



    注意<之类须要(())

    以下这个监控redis进程不存在就重新启动

    #! /bin/sh
    
    
    p="redis-server"
    proc_num()
    {
        num=`ps aux|grep  $p | grep -v grep| wc -l`
        return $num
    }
    
    
    proc_num
    n=$?

    if (( "$n" < 1 )) then echo $n echo "start redis-server process....." else echo $n echo "redis-server runing ok." fi #####

    crontab -e每分钟监控一次

    */1 * * * *  /redis.sh



    參考:《Linux Shell脚本攻略(第2版)》

    Shell中字符串、数值的比較

    linux 进程监控和自己主动重新启动的简单实现

  • 相关阅读:
    Transition 过渡/转场动画(一)
    动态创建类/ swizzle class
    Protocol协议分发器
    UITableView 支持左右滑动(二)
    UITableView 支持左右滑动(一)
    CATiledLayer显示超大图片的解决方案
    ReplicatorLayer 复制图层
    iOS OpenGL ES简单绘制纹理
    iOS OpenGL ES简单绘制三角形
    Mac定时执行脚本_服务launchctl
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7399680.html
Copyright © 2011-2022 走看看