• shell


    1. 查看内存 
     free -m
     free -m|awk '/^Mem/ {print $3/$2*100}'
    2. 监控内存使用超过80 报警
    free_use = free -m|awk '/Mem/ {print $3/$2*100}'
    echo ${free_use%.*}   # 从后往前删,用%
    if [ ${free_use%.*} -gt 80];then
    	echo "内存超80"
    fi
    
    3. 创建10个文件,将txt 改为txt.bak, 把bak文件打包为123, 还原文件的名字
    touch /backup/file{1..10}.txt
    find /backup -iname "*.txt"
    new_file = $(find /backup -iname "*.txt"|sed -r 's#(.*)#mv 1 1.bak#g')|bash
    打包
    tar czf /backup/123.tar.gz $(find /backup -iname "*.bak")
    还原
    find /backup -iname "*.bak"|sed -r 's#(.*).bak#mv 1.bak 1#g'|bash
    4 rename 修改名称
    rename jpg jpeg *.jpg
    5. string="Bigdata process is Hadoop,Hadoop,hadoop is open source project"
    -- 1. 打印string 长度
    -- 2. 删除字符串所有的Hadoop
    -- 3. 替换第一个Hadoop 为linux
    -- 4. 替换全部Hadoop 为Linux
    用户输入1,2,3,4执行对应的功能,输入 q|Q 退出
    
    

    shell 变量的运算

    1. 整数运算, expr, $(()), $[]
    + - * / %
    # expr $num1 + $num2
    # echo $(( $num + $num1 ))
    # $[ $num + $num1 ]
    2. 小数运算
    echo "2^4" |bc
    echo "scale=1;6/4" |bc
    echo "scale=2;6/4" |bc  
    awk 'BEGIN{print 1/2}'
    

    流程控制

    if [ ];then
    	echo
    else
    	echo
    fi
    
    if [ ];then
    elif[ ];then
    elif[ ];then
    else
    fi
    #例1
    #!/usr/bin/bash
    if [ $# -ne 1 ];then
            echo "only one paramter"
            exit
    fi
    if grep "$1" /etc/passwd;then
            echo 'ok'
    else
    fi    
    

    if语句中的文件比较

    -r 文件存在且可读为真
    -w 文件存在且可写
    -x 文件存在且可执行
    -d 文件存在且为目录
    -f 文件存在且为普通文件
    -e 文件或目录存在为真
    -s 文件存在且至少有一个字符
    加 ! 取反
    if [ -f /etc/hosts ]; then
    	echo $?
    fi
    [ -f /etc/hosts ] && echo $? || echo '不存在'
    
    dir=/ect1/;[ -d $dir ] && tar zcf etc.tar.gz $dir || echo "$dir不存在"
    
    
    # 备份mysql , 手动输入要备份的库名称
    1. 提示用户输入 read
    2. 输入数据库名称,执行mysqldump 备份
    3. 备份到哪, /backup/mysql
    
    User=root
    Pwd=123
    [ -d /backup/mysql ] || mkdir -p /backup/mysql
    read -p " database name: " db
    usr/bin/mysqldump -u$User -p$Pwd --single-transaction -R -B $db >/backup/mysql/db01_$(date +%F).sql
    

    例: 检查服务是否运行的脚本

    # 判断服务是否运行
    #systemctl status sshd
    # $# 表示传参的个数
    if [ $# -ne 1 ];then
        echo "please enter 服务名"
        exit
    fi 
    systemctl status "$1" &>/dev/null
    rc=$?
    if [ $rc -eq 0 ];tehn
    	echo "在运行"
    else
    	echo "没在运行"
    fi
    

    磁盘使用率超过80% 发邮件报警

    # 查看磁盘
    df -h
    disk_use=$(df -h|grep "/$"|awk '{print $(NF-1)}')
    if [ ${disk_use/\%/} -ge 80 ];then
    	echo "大于80"
    else
    	echo "正常"
    fi
    
  • 相关阅读:
    CF981D
    CF883H
    Hdu 5884
    全排列
    二叉搜索树实现
    my.ini配置详解
    主元素问题
    排序算法(还需补充)
    迷宫问题(DFS,BFS)
    算法导论4--求最大和数组
  • 原文地址:https://www.cnblogs.com/Afrafre/p/11405712.html
Copyright © 2020-2023  润新知