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

#标准输入中读取数据复制给变量,再将变量写入文件,直到输入回车为止

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