zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/Afrafre/p/11405712.html
Copyright © 2011-2022 走看看