Linux筆記 -- Week06 Q&A

1乡小、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)卦绣。(使用expect和shell腳本兩種形式)第喳。

expect實(shí)現(xiàn):
預(yù)先yum安裝expect包

#!/usr/bin/expect

spawn ssh thomas@10.0.0.160
expect {
    "yes/no" { send "yes\n"; exp_continue; }
    "password" { send "mypasswd\n" }
}
interact
#expect eof

shell腳本:
需先yum安裝sshpass包

#read -p "Enter IP USER PASSWD: "  r_ip r_user r_passwd
r_ip="10.0.0.160"
r_user=thomas
r_passwd=mypasswd

sshpass -p "$r_passwd" ssh $r_user@$r_ip -o StrictHostKeyChecking=no

2街望、生成10個(gè)隨機(jī)數(shù)保存于數(shù)組中校翔,并找出其最大值和最小值

max_min_a(){
    i=1
    declare -a num_arr
    while (( i<= 10)); do
        if [ $i -eq 1 ]; then
            num_arr[i-1]=$RANDOM
            min=${num_arr[i-1]}
            max=${num_arr[i-1]}
        else
            num_arr[i-1]=$RANDOM
            [ $max -lt ${num_arr[i-1]} ] && max=${num_arr[i-1]}
            [ $min -gt ${num_arr[i-1]} ] && min=${num_arr[i-1]}

        fi
        let i++
    done
    #echo "Array is ${num_arr[*]}"  查看數(shù)組
    echo "Max number: $max"
    echo "Min number: $min"
}

max_min_a

3、輸入若干個(gè)數(shù)值存入數(shù)組中它匕,采用冒泡算法進(jìn)行升序或降序排序

升序或降序

declare -a num_arr

maopao_up(){
    for (( i=0; i<10; i++ )); do
        num_arr[i]=$RANDOM
    done

    echo "Original arr: ${num_arr[*]}"

    counts=$[${#num_arr[*]}-1]

    for (( i=$counts; i>=1; i-- )); do
        for (( j=1; j<=i; j++ )); do
            if [ ${num_arr[j-1]} -gt ${num_arr[j]} ]; then
                tmp=${num_arr[j]}
                num_arr[j]=${num_arr[j-1]}
                num_arr[j-1]=$tmp
            fi
        done
    done

    echo "Sorted arr: ${num_arr[*]}"
}



maopao_down(){
    for (( i=0; i<10; i++ )); do
        num_arr[i]=$RANDOM
    done

    echo "Original arr: ${num_arr[*]}"

    counts=$[${#num_arr[*]}-1]

    for (( i=$counts; i>=1; i-- )); do
        for (( j=1; j<=i; j++ )); do
            if [ ${num_arr[j-1]} -lt ${num_arr[j]} ]; then
                tmp=${num_arr[j]}
                num_arr[j]=${num_arr[j-1]}
                num_arr[j-1]=$tmp
            fi
        done
    done

    echo "Sorted arr: ${num_arr[*]}"
}

maopao_up
maopao_down

4展融、總結(jié)查看系統(tǒng)負(fù)載的幾種命令,總結(jié)top命令的指標(biāo)大概含義

uptime:主要查看系統(tǒng)平均負(fù)載(1豫柬,5告希,15分鐘平均負(fù)載)
free -h: 查看內(nèi)存使用情況
df -h: 查看磁盤【文件系統(tǒng)】利用率
iostat:監(jiān)控系統(tǒng)的IO負(fù)載,加參數(shù) -x 關(guān)注 %util(磁盤的的IO時(shí)間占比) 和 await(IO操作等待時(shí)間)
iotop:動(dòng)態(tài)查看磁盤讀寫
iotop:動(dòng)態(tài)查看IO負(fù)載占比
iftop:監(jiān)控網(wǎng)絡(luò)帶寬使用情況
nload:實(shí)時(shí)查看網(wǎng)卡流量吞吐情況
top命令說明:

top - 22:15:49 up  3:04,  2 users,  load average: 0.01, 0.02, 0.05
#系統(tǒng)當(dāng)前時(shí)間  啟動(dòng)時(shí)間 在線用戶 平均負(fù)載 -- 等同于uptime
Tasks: 128 total,   1 running, 127 sleeping,   0 stopped,   0 zombie
#線程或任務(wù)數(shù)128個(gè)烧给, 1個(gè)運(yùn)轉(zhuǎn)中燕偶,127個(gè)睡眠中,0個(gè)停止础嫡,0個(gè)僵尸進(jìn)程
%Cpu(s):  0.0 us,  3.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
#us 未調(diào)整過nice優(yōu)先級(jí)的用戶空間的運(yùn)行時(shí)間
#sy 系統(tǒng)內(nèi)核進(jìn)程運(yùn)行時(shí)間
#ni 調(diào)整過nice優(yōu)先級(jí)的用戶的運(yùn)行時(shí)間
#id 系統(tǒng)空閑時(shí)間
#wa 系統(tǒng)等待I/O的時(shí)間
#hi 硬終端時(shí)間
#si 軟中斷時(shí)間
#st 虛擬機(jī)監(jiān)視器hypervisor從虛擬機(jī)偷走(占用)的時(shí)間
KiB Mem :  2027896 total,  1147956 free,   256888 used,   623052 buff/cache
#物理總內(nèi)存(KB)空閑內(nèi)存 已使用內(nèi)存 緩存
KiB Swap:  2097148 total,  2097148 free,        0 used.  1598568 avail Mem 
#交換(虛擬)內(nèi)存 總大小指么、(KB)空閑大小、 已使用大小榴鼎、 可用物理內(nèi)存大小
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                         
#PID (進(jìn)程號(hào)) USER(進(jìn)程用戶) PR(系統(tǒng)優(yōu)先級(jí)伯诬,取值0-39,越小優(yōu)先級(jí)越高) NI(NICE優(yōu)先級(jí)巫财,取值-20-19盗似,越小優(yōu)先級(jí)越高) 
#VIRT(虛擬內(nèi)存使用) RES(  使用的物理內(nèi)存大小) SHR( 共享內(nèi)存空間平项,可共享給其他進(jìn)程) S(進(jìn)程狀態(tài)) %CPU(CPU利用率)
#%MEM(物理內(nèi)存使用占比) TIME+(以百分之一秒為單位顯示占用CPU時(shí)間) COMMAND(進(jìn)程啟動(dòng)或關(guān)聯(lián)的程序名稱)                                            
     1 root      20   0  191312   4344   2648 S   0.0  0.2   0:01.46 systemd                                                                                 
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                            
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.08 ksoftirqd/0                                                                             
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/0                                                                             
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                  
     9 root      20   0       0      0      0 S   0.0  0.0   0:00.63 rcu_sched                                                                               
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                           
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 watchdog/0

5赫舒、編寫腳本,使用for和while分別實(shí)現(xiàn)192.168.0.0/24網(wǎng)段內(nèi)闽瓢,地址是否能夠ping通接癌,若ping通則輸出"success!",若ping不通則輸出"fail!"

for實(shí)現(xiàn)shell:

read -p "請(qǐng)輸入IP網(wǎng)絡(luò)地址段[example: 1.1.1.0]: " ip_net


[[ "$ip_net" =~ ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.)$ ]] ||
{ echo $ip_net is invalid; exit; }

net_num1=`echo $ip_net | cut -d. -f1`
net_num2=`echo $ip_net | cut -d. -f2`
net_num3=`echo $ip_net | cut -d. -f3`

echo we are checking $net_num1.$net_num2.$net_num3.0/24...

for (( i=1; i<=254; i++ )); do
    ip_addr=$net_num1.$net_num2.$net_num3.$i
    ping -c1 $ip_addr &> /dev/null
    if [ $? -eq 0 ]; then
        echo $ip_addr successed!
    else
        echo $ip_addr faied!
    fi
done

while實(shí)現(xiàn)shell:

read -p "請(qǐng)輸入IP網(wǎng)絡(luò)地址段[example: 1.1.1.0]: " ip_net


[[ "$ip_net" =~ ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.)$ ]] ||
{ echo $ip_net is invalid; exit; }

net_num1=`echo $ip_net | cut -d. -f1`
net_num2=`echo $ip_net | cut -d. -f2`
net_num3=`echo $ip_net | cut -d. -f3`

echo we are checking $net_num1.$net_num2.$net_num3.0/24...

i=1
while (( i<=12 )); do
    ip_addr=$net_num1.$net_num2.$net_num3.$i
    ping -c1 $ip_addr &> /dev/null
    if [ $? -eq 0 ]; then
        echo $ip_addr successed!
    else
        echo $ip_addr faied!
    fi
    let i++
done

測(cè)試:

[root@centos7 shell_excercises]# bash ping_while.sh
請(qǐng)輸入IP網(wǎng)絡(luò)地址段[example: 1.1.1.0]: 192.168.0.0
we are checking 192.168.0.0/24...
192.168.0.1 successed!
192.168.0.2 faied!
192.168.0.3 faied!
192.168.0.4 faied!
192.168.0.5 faied!
192.168.0.6 faied!
192.168.0.7 faied!
192.168.0.8 faied!
192.168.0.9 faied!

6扣讼、每周的工作日1:30缺猛,將/etc備份至/backup目錄中,保存的文件名稱格式 為“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的時(shí)間

編輯定時(shí)任務(wù):crontab -e

30 1 * * 1-5     bash /data/shell_excercises/backup_etc.sh

自定義備份腳本backup_etc.sh內(nèi)容:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[ -d /backup ] || mkdir /backup

dates=`date -d "-1 day" +"%F-%H"`
names="etcback-$dates.tar.xz"

tar -cPf  "/backup/$names"   "/etc"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載枯夜,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者弯汰。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市湖雹,隨后出現(xiàn)的幾起案子咏闪,更是在濱河造成了極大的恐慌,老刑警劉巖摔吏,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸽嫂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡征讲,警方通過查閱死者的電腦和手機(jī)据某,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗箍,“玉大人癣籽,你說我怎么就攤上這事÷俗妫” “怎么了筷狼?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)匠童。 經(jīng)常有香客問我埂材,道長(zhǎng),這世上最難降的妖魔是什么汤求? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任俏险,我火速辦了婚禮,結(jié)果婚禮上扬绪,老公的妹妹穿的比我還像新娘竖独。我一直安慰自己,他們只是感情好挤牛,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布预鬓。 她就那樣靜靜地躺著,像睡著了一般赊颠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上劈彪,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天竣蹦,我揣著相機(jī)與錄音,去河邊找鬼沧奴。 笑死痘括,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纲菌,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼挠日,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了翰舌?” 一聲冷哼從身側(cè)響起嚣潜,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椅贱,沒想到半個(gè)月后懂算,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庇麦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年计技,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片山橄。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垮媒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出航棱,到底是詐尸還是另有隱情睡雇,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布丧诺,位于F島的核電站入桂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏驳阎。R本人自食惡果不足惜抗愁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呵晚。 院中可真熱鬧蜘腌,春花似錦、人聲如沸饵隙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽金矛。三九已至芯急,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驶俊,已是汗流浹背娶耍。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饼酿,地道東北人榕酒。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓胚膊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親想鹰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子紊婉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)喻犁。(使用expect和shell腳本兩種形式) 2.生成10個(gè)隨機(jī)數(shù)保存于數(shù)組中,并找...
    CodeAmmon閱讀 483評(píng)論 0 0
  • 一惩妇、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)株汉。(使用expect和shell腳本)expect腳本: 輸出結(jié)果:[root@cen...
    小霍吖閱讀 1,059評(píng)論 0 0
  • 1、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)歌殃。(使用expect和shell腳本兩種形式)乔妈。 shell腳本: 登錄: expec...
    鐺鈴叮閱讀 156評(píng)論 0 0
  • 1、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)氓皱。(使用expect和shell腳本兩種形式) 腳本形式: expect形式 2路召、生成...
    yabao11閱讀 241評(píng)論 0 0
  • Linux 學(xué)習(xí)筆記 1.認(rèn)識(shí)Linux shell 1.什么是Linux? Linux內(nèi)核 GNU工具(GNU'...
    CliviaLyu閱讀 542評(píng)論 2 1