zoukankan      html  css  js  c++  java
  • shell笔记

    1. awk使用,取出df中大于50%的文件系统

    我编了一个文件如下:

    root@wis-virtual-machine:/wis/testdir1# cat df.txt 
    Filesystem      Size  Used Avail Use% Mounted on
    udev            482M     0  482M   0% /dev
    tmpfs           100M  5.5M   95M  70% /run
    /dev/sda1       19G  8.3G  9.4G   48% /
    /dev/mapper/vgw_lv_name
                    19G  8.3G  9.4G   58% /wis
    

      想把大于50%的文件系统输出,了如下代码:

    root@wis-virtual-machine:/wis/testdir1# cat df.txt |awk 'BEGIN{limit=50}NR==1{print}NF==1{lvname=$1}NF==6{if($5+0>limit)print}NF==5{if($4+0>limit)print lvname"
    "$0}' 
    Filesystem      Size  Used Avail Use% Mounted on
    tmpfs           100M  5.5M   95M  70% /run
    /dev/mapper/vgw_lv_name
                    19G  8.3G  9.4G   58% /wis
    

      这里主要是用($5+0)把70%这样的字符串改成整数的。

    1. telnet自动登录:
    (sleep 1;echo username;sleep 1;echo password; sleep 1;echo cmd;sleep 1;)|telnet hostname
    

      3. 两个文件按列合并

    paste
    

       4. 主机名取最后一位数字

    echo ${HOSTNAME##*-}
    ansible beijing-114 -m shell -a "/tmp/net.sh ${HOSTNAME##*-} eth0 eth2" -f 100

           5. find正则

    find /opt/mydata -mtime +3 -type d -regextype sed -regex "/opt/my_data/[0-9]*"
    

      6. keepalived钉钉告警

    cat /etc/keepalived/keepalived.conf |tail -5
      notify_master "/etc/keepalived/keepalived_notify.sh master"
      notify_backup "/etc/keepalived/keepalived_notify.sh backup"
      notify_fault "/etc/keepalived/keepalived_notify.sh fault"
      notify_stop "/etc/keepalived/keepalived_notify.sh stop"
    
    cat /etc/keepalived/keepalived_notify.sh
    #!/bin/bash
    curl "https://oapi.dingtalk.com/robot/send?access_token=token" -H "Accept: application/json" -H "Content-Type:application/json" --data @<(cat <<EOF
    {
            "msgtype": "text",
            "text": {
                "content": "$HOSTNAME:$1"
            }
      }
    EOF
    )
    

       7. mac sed 替换

    sed -i '' -e  's/old/new/g' *
    

       8. 我写的最长的 awk

    for file in /ops/*log
    do
    cat <<EOF | curl --data-binary @- http://192.168.56.11:9091/metrics/job/firewall/instance/$(echo $file|sed 's@/ops/@@g'|sed 's@.log@@g')
    $(awk 'BEGIN{print "# TYPE snat_rule gauge";print "# TYPE snat_rule_max gauge";print "# TYPE snat_rule_current gauge"}/snat/{snat_id=$NF}{}{sub(/ports:/,"")} /%/{gsub("id:", "", snat_id);printf "snat_rule{id="%s",protocol="%s"} %s
    ",snat_id,$1,$2;gsub("\(", "", $3);gsub(/[ 	]+$/,"", $3); printf "snat_rule_max{id="%s",protocol="%s"} %s
    ",snat_id,$1,$5;  printf "snat_rule_current{id="%s",protocol="%s"} %s
    ",snat_id,$1,$3}' $file  |sed 's@/ops/@@g'|sed 's@.log@@g' |sed 's@%@@g' )
    EOF
    done
    

      9. kubernetes 配置 PS1 使其显示当前集群和命令空间

    tail .zshrc
    export PS1='%{$fg[magenta]%}%n@%{$fg[magenta]%}%m%{$reset_color%} %{$fg[blue]%}% $cluster:$(grep namespace $KUBECONFIG|cut -d":" -f 2) $PWD~%{$reset_color%}$'
    
    alias aliqak8s01="export KUBECONFIG=~/.kube/config && cluster=aliqak8s01"
    
    alias tengxunk8s02="export KUBECONFIG=~/.kube/tengxunk8s02 && cluster=tengxunk8s02"
    alias tengxunk8s01="export KUBECONFIG=~/.kube/tengxunk8s01 && cluster=tengxunk8s01"
    
    aliqak8s01

     

  • 相关阅读:
    剑指offer(29):最小的K个数(pop_heap函数的使用)
    C++ partition(STL partition)算法使用
    rvm离线安装
    解决redis requires ruby version 2.3.0
    vim 中如何替换选中行或指定几行内的文本
    Vue.js框架:官方命令行工具的安装和使用(三)
    Node.js:windows下安装配置(一)
    Redis开发:windows下的redis安装记录(一)
    Vue.js框架:计算属性computed的用法(二)
    面试知识(一)
  • 原文地址:https://www.cnblogs.com/WisWang/p/6086797.html
Copyright © 2011-2022 走看看