• shell脚本


    md5.sh

    #!/bin/bash
    
    function showHelp()
    {
        echo "Usage: md5.sh [OPTION] ..."
        echo "         -create          create md5 sums to L.MD5.CHECK"
        echo "         -check           read MD5 sums from FILEs and check them"
    }
    
    function createMD5()
    {
        if [ -f ./$md5_file_name ]; then
            echo -e "md5 file already exist: $md5_file_name
    "
            exit 1
        fi
        
        md5sum `find ./ -type f` > $md5_file_name
        echo "$md5_file_name CREATED SUCCESS"
    }
    
    function checkMD5()
    {
        echo "CHECK FILE BEGIN..."
        md5sum -c --quiet $md5_file_name
        echo "CHECK FILE END."
    }
    
    # ----------------------------------------------------------------------------
    
    echo -e "
    "
    
    md5_file_name=L.MD5.CHECK
    
    case $1 in
        "-cr" | "-create" )
            createMD5
            ;;
        "-c" | "-ch" | "-check" )
            checkMD5
            ;;
        * )
            showHelp
            ;;
    esac
    
    echo -e "
    "
    
    

    tomcat重启

    check.sh

    #!/bin/bash
    shell_home=$(cd `dirname $0`;pwd)
    shell_name=`basename $0`
    shell=${shell_home}/${shell_name}
    function print() {
        echo -e "e[36;1m  $1$(tput sgr0)"
    }
    print "
    begin ${shell_name}"
    # --------------------------------------------------------------------
    
    app_home=${TOMCAT_HOME}
    count=$(jps -lvm | grep ${app_home} | wc -l)
    jps -lvm | grep --color ${app_home}
    
    # --------------------------------------------------------------------
    print "end ${shell}! count=${count}
    "
    exit ${count}
    

    start.sh

    #!/bin/bash
    shell_home=$(cd `dirname $0`;pwd)
    shell_name=`basename $0`
    shell=${shell_home}/${shell_name}
    function print() {
        echo -e "e[36;1m  $1$(tput sgr0)"
    }
    print "
    begin ${shell_name}"
    # --------------------------------------------------------------------
    export JAVA_OPTS="-server -Xms800m -Xmx800m"
    export JPDA_ADDRESS=7878
    # export JPDA_SUSPEND=y
    # --------------------------------------------------------------------
    
    app_home=${TOMCAT_HOME}
    app_log=${app_home}/logs/catalina.out
    
    print "rm -rf ${app_home}/work/*"
    rm -rf ${app_home}/work/*
    print "rm -rf ${app_home}/temp/*"
    rm -rf ${app_home}/temp/*
    
    echo -e "
      `date "+%F %H:%M:%S"` start  ---> bash ${app_home}/bin/catalina.sh jpda start <--- 
    " >> ${app_log}
    print "bash ${app_home}/bin/catalina.sh jpda start"
    bash ${app_home}/bin/catalina.sh jpda start
    
    print "tail -10f ${app_log}"
    tail -10f ${app_log}
    
    # --------------------------------------------------------------------
    print "end ${shell}
    "
    

    kill.sh

    #!/bin/bash
    shell_home=$(cd `dirname $0`;pwd)
    shell_name=`basename $0`
    shell=${shell_home}/${shell_name}
    function print() {
        echo -e "e[36;1m  $1$(tput sgr0)"
    }
    print "
    begin ${shell_name}"
    # --------------------------------------------------------------------
    export JAVA_OPTS="-server -Xms800m -Xmx800m"
    export JPDA_ADDRESS=7878
    # export JPDA_SUSPEND=y
    # --------------------------------------------------------------------
    
    app_home=${TOMCAT_HOME}
    app_log=${app_home}/logs/catalina.out
    
    echo -e "
      `date "+%F %H:%M:%S"` stop  ---> jps -lvm | grep ${app_home} | awk 'print $1' | xargs -I {} kill -9 {} <--- 
    " >> ${app_log}
    print "jps -lvm | grep ${app_home} | awk '{print $1}' | xargs -I {} kill -9 {}"
    jps -lvm | grep ${app_home} | awk '{print $1}' | xargs -I {} kill -9 {}
    
    # --------------------------------------------------------------------
    print "end ${shell}
    "
    

    restart.sh

    #!/bin/bash
    shell_home=$(cd `dirname $0`;pwd)
    shell_name=`basename $0`
    shell=${shell_home}/${shell_name}
    function print() {
        echo -e "e[36;1m  $1$(tput sgr0)"
    }
    print "
    begin ${shell_name}"
    # --------------------------------------------------------------------
    
    bash ${shell_home}/check.sh
    bash ${shell_home}/kill.sh
    bash ${shell_home}/start.sh
    
    # --------------------------------------------------------------------
    print "end ${shell}
    "
    

    查看系统运行状态信息

    #!/bin/bash
    
        clear
        echo -e 
    
        # 显示颜色
        reset_terminal=$(tput sgr0)
        colour='e[1;32m'
        
        # vmstat系统资源刷新次数
        vmstat_refresh_time=3
        
        # 测试网络状态时,ping的IP或地址
        ping_url=baidu.com
        
        # tomcat根目录,用于获取PID
        tomcat_home="/home/chencye/tomcat/apache-tomcat-8.5.9"
        # 查看tomcat版本的tomcat自带脚本
        tomcat_version_shell=$tomcat_home"/bin/version.sh"
        # tomcat的http端口,用于统计并发连接数
        tomcat_port=8080
        # app的链接,用于测试tomcat是否正常
        tomcat_url=http://192.168.1.104:8080
        # 查看tomcat的GC情况,刷新次数
        tomcat_gc_refresh_time=5
        
    # 系统信息-------------------------------------------------------
        # 系统与内核相关信息  
        system_uname=$(uname -a)
        echo -e $colour " 系统与内核(uname -a):" $reset_terminal $system_uname
        
        # 当前Linux系统的发行版本
        os_name=$(cat /etc/issue | sed 's/\//g')
        echo -e $colour " 当前Linux系统的发行版本(/etc/issue):" $reset_terminal $os_name
        echo -e 
        
        # 系统资源
        echo -e $colour " 系统资源(vmstat 1 $vmstat_refresh_time):" $reset_terminal
        vmstat 1 $vmstat_refresh_time
        echo -e 
        
        # 当前登录用户
        # echo -e $colour " 当前登录用户:" $reset_terminal
        # who
        
    # 磁盘-------------------------------------------------------
    
        # 磁盘使用量
        diskavege=$(df -P | grep -vE 'Filesystem|tmpfs|文件系统' | awk '{print $1 " " $5 ",	" }')
        echo -e $colour " 磁盘使用量(df -P):" $reset_terminal $diskavege
        # 磁盘IO
        echo -e $colour " 磁盘IO情况(iostat):" $reset_terminal
        iostat
        echo -e 
        
    # 内存-------------------------------------------------------
    
        mem_usages=( $(awk '
            /MemTotal/ { total = $2 }
            /MemFree/ { free = $2 }
            /^Cached/ { cached = $2 }
            /Buffers/ { buffers = $2 }
            END {
                allUsage = total - free;
                appUsage = allUsage - (cached + buffers);
                
                total = total / 1024;
                total_s = total < 1024 ? (total)"M" : (total / 1024)"G";
                
                allUsage = allUsage / 1024;
                allUsage_s = allUsage < 1024 ? (allUsage)"M" : (allUsage / 1024)"G";
                
                appUsage = appUsage / 1024;
                appUsage_s = appUsage < 1024 ? (appUsage)"M" : (appUsage / 1024)"G";
    
                print total_s;
                print allUsage_s;
                
                all_percent = (allUsage / total) * 100;
                print all_percent"%";
                
                print appUsage_s;
                
                app_percent = (appUsage / total) * 100;
                print app_percent"%";
            }
            ' /proc/meminfo
        ))
        echo -e $colour " 总内存(/proc/meminfo):" $reset_terminal ${mem_usages[0]}
        echo -e $colour " 总使用内存, 总使用占比:" $reset_terminal ${mem_usages[1]}", "${mem_usages[2]}
        echo -e $colour " 应用使用内存, 应用使用占比:" $reset_terminal ${mem_usages[3]}", "${mem_usages[4]} "	(减去Cached与Buffers)"
        echo -e 
        
    # 负载-------------------------------------------------------
        loadaverge=$(uptime)
        echo -e $colour " 平均负载(uptime):" $reset_terminal $loadaverge
        echo -e 
    
    # 网络-------------------------------------------------------
        # 内网IP
        # internalip=$(hostname -I)
        # echo -e $colour " 内网IP:" $reset_terminal $internalip
        
        # 公网IP
        # externnalip=$(curl -s http://ipecho.net/plain)
        # echo -e $colour " 公网IP:" $reset_terminal $externnalip
        
        # DNS
        # nameservers=$( cat /etc/resolv.conf | grep -E "<nameserver[ ]+" | awk '{print $NF}' )
        # echo -e $colour " DNS:" $reset_terminal $nameservers
        
        # 判断网络是否通畅 (公网IP)
        netstatus=$(ping -c 2 $ping_url &> /dev/null && echo " 通畅 " || echo " ping不通 ")
        echo -e $colour " 网络状态(ping $ping_url): " $reset_terminal $netstatus
        echo -e 
        
        # 网络连接状态统计
        echo -e $colour " 网络连接状态统计(netstat -n):" $reset_terminal 
        netstat -n | awk '
        BEGIN { print "连接状态	连接数" }
        /^tcp/ { ++states[$NF] }
        END {
            for (key in states) {
                print key, "	", states[key];
            } 
        }
        '
        echo -e 
    
    # tomcat-------------------------------------------------------
        # 获取tomcat的PID
        tomcat_pid=$(jps -lvm | grep $tomcat_home | awk '{print $1}')
        
        # tomcat并发连接数
        tomcatLinkNumber=$(netstat -na | grep ESTAB | grep $tomcat_port | wc -l)
        echo -e $colour " tomcat并发连接数:" $reset_terminal $tomcatLinkNumber
        echo -e 
        
        # tomcat是否通畅
        tomcat_status_code=$(curl -m 5 -s -w %{http_code} $tomcat_url -o /dev/null)
        echo -e $colour " tomcat链接($tomcat_url)返回码:" $reset_terminal $tomcat_status_code
        echo -e 
        
        # tomcat版本信息
        echo -e $colour " tomcat版本信息($tomcat_version_shell):" $reset_terminal
        sh $tomcat_version_shell
        echo -e 
        
        # tomcat对应的jvm信息
        echo -e $colour " tomcat对应的jvm信息(jinfo $tomcat_pid):" $reset_terminal
        jinfo $tomcat_pid &> /tmp/$tomcat_pid".jinfo"
        
        jvminfos="java.version|java.vendor|java.vm.version|java.vm.vendor|java.vm.name|java.runtime.version|java.class.version|java.io.tmpdir|user.dir|user.name|user.home|user.language|file.encoding|catalina.home|catalina.base|VMsflags|Commandsline"
        grep -Pi $jvminfos /tmp/$tomcat_pid".jinfo"
        echo -e 
        
        rm -f /tmp/$tomcat_pid".jinfo"
        
        # tomcat的GC情况
        echo -e $colour " tomcat的GC情况(jstat -gc $tomcat_pid 1000 $tomcat_gc_refresh_time):" $reset_terminal
        jstat -gc $tomcat_pid 1000 $tomcat_gc_refresh_time
        echo -e 
    
    
  • 相关阅读:
    STL Allocator
    Several NeedToKnow(assert/stdin/stdout/CString/Standard C++ Library)
    VS Project Property Sheet
    进度总结(3)
    进度总结(2)
    进度总结(4)
    进度总结(7)
    进度总结(1)
    进度总结(5)
    进度总结(6)
  • 原文地址:https://www.cnblogs.com/chencye/p/6171858.html
Copyright © 2020-2023  润新知