運維shell腳本經常使用實現

用於記錄nginx

1.壓縮目錄下文件並刪除原文件centos

 1 ZIP_DAY=7
 2 function zip {
 3     local dir=$1
 4     if [ -d $dir ];then
 5            local file_num=`ls -l $dir |grep "^d"|wc -l`
 6            if [ $file_num -ge $ZIP_DAY ];then
 7                 local tar_name=`ls -lt $dir | grep -v *.tar.gz | grep -v total | head -n 1 |awk '{print $9}'`
 8                 cd $dir
 9                 tar -czvPf $tar_name.tar.gz * --exclude=*.tar.gz >/dev/null 2>&1
10                 if [[ $? -eq 0 ]];then
11                      find $backup_dir/* -type d -exec rm -rf {} \; >/dev/null 2>&1
12                 else
13                      echo "失敗"
14                 fi
15            fi
16      fi
17 }

 

2,過濾文件夾下不須要的文件bash

filter_array=()
all=`ls $dir | grep .log`  //目錄下全部的文件
gv=`ls -lt $dir | grep .log | awk '{print $9}' | head -5` //留前五條記錄
function filter_array {
     declare -a result_list
     t=0
     flag=0
     all_array=(${all//\ / })
     gv_array=(${gv//\ / })
     for a in ${all_array[@]}
     do 
          for g in ${gv_array[@]}
          do
               if [ "$a" == "$g" ]; then
                   flag=1
               fi
          done 
          if [ $flag -eq 0 ]; then
               result_list[t]=$a
               t=$((t+1))
          else
               flag=0
          fi
   done 
   filter_array=${result_list[*]}
}

 

3.遠程服務器執行命令服務器

ssh root@$IP >/dev/null 2>&1 <<EOF
   cd /usr/local
   ls
exit
EOF

4.centos 7流量轉發ssh

 1 #!/bin/bash
 2 function add {
 3    firewall-cmd --zone=trusted --add-forward-port=port="本地端口":proto=tcp:toaddr= "目標主機ip":toport="目標主機端口" --permanent
 4    firewall-cmd --reload
 5    firewall-cmd --zone=trusted --list-all
 6 }
 7 
 8 function remove {
 9    firewall-cmd --zone=trusted --remove-forward-port=port="本地端口":proto=tcp:toaddr="目標ip":toport="目標主機端口" --permanent
10    firewall-cmd --reload
11    firewall-cmd --zone=trusted --list-all
12 }

 

5.循環檢測進程是否被殺tcp

 1 times=10
 2 while(( "$times > 0" ))
 3 do
 4     pid=`ps -aef | grep "nginx" | awk '{print $2}'`
 5     if [[ -z $pid ]] ; then
 6        return 0
 7     fi
 8     sleep 1
 9     let "times--"
10 done
相關文章
相關標籤/搜索