shell思路

disk_comm="/bin/df -m |grep -v Filesystem |awk 'BEGIN{size=0} {for(i=1;i<=NR;i++){size=size+\$2}} END{print size/1024\"G\"}'"
ssh ip ${disk_comm}

#由於awk命令要在ssh遠程使用,所以在使用 $ 或者 " 時,需要加轉義

ss -ant |awk 'NR != 1 {s[$1]++} END{for(key in s) print s[key],key}'

#使用awk,將相同的列($1)存放到歸到s數組中,每遇到相同的key,s[key]則加一


exe_comm="/bin/ps -ef | grep EXEglobalserver | grep -v grep | awk -F"/" '{print \$NF}' | awk -F"_" '{print \$1\"-\"\$2}' | sort -n | tr \"\n\" \" \""
exe=(`ssh ip ${exe_comm}`)

#通過tr將換行符轉換爲空格,使之能導入 () 中以元組格式存放

#不需要將換行符轉化爲空格也可以存入元組


echo "select \`user\`,\`host\` from user" | mysql -uroot -p123 mysql > ./1.txt
cat ./1.txt | while read x
do
        echo $x
done
for y in `cat ./1.txt`
do
        echo $y
done

#由於 ` 在shell中爲獲取命令結果,所以在使用時需要轉義,使之在mysql可以防止關鍵字衝突

#在shell中使用mysql獲取結果集存在文件,在對其操作時,使用for i in `cat`每次遍歷的將是結果集一條數據中的一個字段,而不是單條數據;使用while read則可以獲取單行,且可以避免數據量過大導致內存溢出


while [[ -e domain_list.txt ]]
do
        read domain
        echo $domain >> domain_list.txt
        if [[ "${domain}" == "" ]]
        then
                break
        fi
done

#標準輸入中讀取數據複製給變量,再將變量寫入文件,直到輸入回車爲止

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章