N59030-第六周作業

  1. 编写脚本实现登陆远程主机

    • 使用 expect
    #!/usr/bin/expect -f
    set ip [lindex $argv 0]
    set user [lindex $argv 1]
    set passwd [lindex $argv 2]
    set timeout 30
    set force_conservative 1
    if {$force_conservative} {
       set send_slow {128 .1}
    }
    spawn ssh -p 2121 $user@$ip;
    expect {
        "*continue connecting (yes/no)?" { send -s "yes\r"; exp_continue }
        "*assword:" {
            send -s "$passwd\r";
        }
    }
    interact
    
  2. 生成10个随机数保存于数组中,并找出其最大值和最小值

    #!/bin/bash
    
    for ((i=0;i<10;i++))
    do
        nums[$i]=`echo $[$RANDOM%100]`
    
        [ "$i" -eq 0 ] && max="${nums[$i]}"  && min="${nums[$i]}"  && continue
        [ "${nums[$i]}" -gt "$max" ] && max=${nums[$i]} && continue
        [ "${nums[$i]}" -lt "$min" ] && min=${nums[$i]}
    done
    
    echo "總數: ${nums[*]}"
    echo "最大值: $max"
    echo "最小值: $min"
    
  3. 输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

    #!/bin/bash
    declare -a nums
    for ((i=0;i<10;i++))
    do
        nums[$i]=`echo $[$RANDOM%100]`
    
        [ "$i" -eq 0 ] && max="${nums[$i]}"  && min="${nums[$i]}"  && continue
        [ "${nums[$i]}" -gt "$max" ] && max=${nums[$i]} && continue
        [ "${nums[$i]}" -lt "$min" ] && min=${nums[$i]}
    done
    
    echo "總數: ${nums[*]}"
    echo "最大值: $max"
    echo "最小值: $min"
    
    count="${#nums[*]}"
    declare -i n=$count
    for ((x=0;x<"$count-1";x++))
    do
        for ((y=0;y<"$count-1-x";y++))
        do
                let z=$y+1
                if [ "${nums[$y]}" -lt "${nums[$z]}" ]; then
    
                tmp=${nums[$z]}
                nums[$z]=${nums[$y]}
                nums[$y]=$tmp
                fi
        done
    done
    echo "新排列的總數:${nums[*]}"
    
  4. 总结查看系统负载的几种命令,总结top命令的指标大概什么含义


    • 上半部資訊

      欄位 說明
      top 目前時間
      up 主機到目前的開機時間
      user 目前登入系統使用者數
      load average 有三筆資訊,分別是系統每1分鐘、5分鐘、15分鐘的負載情況
      Tasks 有五筆系統行程相關資訊,分別是所有行程(total),正在執行(running),休眠狀態(sleeping),已停止(stopped),僵屍狀態(zombie)
      %Cpu(s) 有八筆資訊:
      us:用戶空間佔用CPU的百分比
      sy:內核空間佔用CPU的百分比
      ni:改變過優先順序的進程佔用CPU的百分比
      id:
      wa:IO等待佔用CPU的百分比
      hi:硬中斷(Hardware IRQ)佔用CPU的百分比
      si:軟中斷(Software Interrupts)佔用CPU的百分比
      st:
      KiB Mem 記憶體使用狀況:
      total:實體記憶體容量
      free:剩餘記憶體容量
      used:已使用的記憶體容量
      buff/cach:暫存記憶體容量
      KiB Swap swap使用狀況
      total:swap總容量
      free:剩餘的swap容量
      used:已使用的swap容量
      avail Mem 暫存記憶體容量
    • 下半部資訊

      欄位 說明
      PID 行程id(Process ID)
      USER 該行程使用者
      PR 行程優先順序
      NI nice值(值越小優先權優高)
      VIRT 該行程使用的虛擬記憶體總量,單位kb(VIRT=SWAP+RES)
      RES 該行程程使用的、未被使用的實體記憶體大小,單位kb(RES=CODE+DATA)
      SHR 共用記憶體大小(單位kb)
      S 行程狀態:
      D=不可中斷的睡眠狀態
      R=運行
      S=睡眠
      T=跟蹤/停止
      Z=僵屍進程
      %CPU 上次更新到現在的CPU時間佔用百分比
      %MEM 行程使用的實體記憶體百分比
      TIME+ 行程使用的CPU時間總計,單位1/100秒
      COMMAND 行程名稱
  5. 编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

    • 使用 for 迴圈
    #!/bin/bash
    
    ip='192.168.0.'
    for ips in $(seq 254)
    do
        /bin/ping -c 2 -W 1 $ip$ips > /dev/null
        if [ "$?" -le "0" ]; then
                echo " $ip$ips Success!"
        else
                echo " $ip$ips Fail!"
        fi
    done
    
    • 使用 while 迴圈
    #!/bin/bash
    
    ip='192.168.0.'
    declare -i num=1
    while (( "$num" <= "254" ));
    do
        /bin/ping -c 2 -W 1 $ip$num > /dev/null
        if [ "$?" -le "0" ]; then
                echo " $ip$num Success!"
        else
                echo " $ip$num Fail!"
        fi
    
        let num++
        echo $num
    done
    
    exit
    
  6. 每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

    • 寫一個備份腳本(/root/crontab.sh),再放入 cronjob
    #!/bin/bash
    
    dir='/backup'
    file="etcbak-`date -d -1day +%F-%H`"
    if [ ! -e $dir ]; then
        echo '建立'$dir
        mkdir  $dir
    fi
    
    /usr/bin/tar zcvf  $dir/$file.tar.gz /etc/  > /dev/null
    
    $ sudo crontab  -e
    30 01 * * 1-5 sh /root/crontab.sh  > /dev/null
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容