2022-02-19

1妨托、編寫腳本實現(xiàn)登陸遠(yuǎn)程主機派诬。(使用expect和shell腳本兩種形式)陈轿。
expect

[root@centos8 data]# cat autologin
#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn ssh $user@$ip
expect {
    "yes/no" { send "y\n";exp_continue }
    "password" { send "$password\n" }
}
interact
[root@centos8 data]# ll
total 4
-rwxr-xr-x 1 root root 211 Feb 19 15:47 autologin
[root@centos8 data]# ./autologin 10.0.0.8 root '1111111'
spawn ssh root@10.0.0.8
root@10.0.0.8's password: 
Last login: Sat Feb 19 15:46:44 2022 from 10.0.0.17
[root@sakura:~] #

shell

[root@centos8 data]# cat autologin.sh 
#!/bin/bash
ip=$1
user=$2
password=$3

expect <<EOF
spawn ssh $user@$ip
expect {
    "yes/no" { send "y\n";exp_continue }
    "password" { send "$password\n" }
}
expect eof
EOF
[root@centos8 data]# chmod +x autologin.sh
[root@centos8 data]# ll
total 8
-rwxr-xr-x 1 root root 211 Feb 19 15:47 autologin
-rwxr-xr-x 1 root root 171 Feb 19 16:02 autologin.sh
[root@centos8 data]# ./autologin.sh 10.0.0.8 root '1111111'
spawn ssh root@10.0.0.8
root@10.0.0.8's password: 
Last login: Sat Feb 19 15:49:43 2022 from 10.0.0.17
[root@sakura:~] #

2圈纺、生成10個隨機數(shù)保存于數(shù)組中秦忿,并找出其最大值和最小值

[root@centos8 data]# cat array 
#!/bin/bash
declare -i min max
declare -a numb

for ((i=0;i<10;i++));do
    numb[$i]=$[RANDOM%100]
    [ $i -eq 0 ] && min=${numb[0]} && max=${numb[0]} && continue
    [ ${numb[$i]} -gt $max ] && max=${numb[$i]} && continue
    [ ${numb[$i]} -lt $min ] && min=${numb[$i]}
done
echo "all numbers are ${numb[*]}"
echo max is $max
echo min is $min
[root@centos8 data]# chmod +x array
[root@centos8 data]# ll
total 12
-rwxr-xr-x 1 root root 339 Feb 19 16:17 array
[root@centos8 data]# ./array 
all numbers are 26696 28140 10773 27791 23354 23733 4711 15482 3627 15597
max is 28140
min is 3627

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

[root@centos8 data]# cat bubblesort_up.sh
#!/bin/bash
declare -a num_arr

bubblesort_up(){
    for (( i=0; i<10; i++)); do
    numb[i]=$[RANDOM%100]
    done

    echo "numb are:${numb[*]}"

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

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

    echo "sort numb:${numb[*]}"
}
bubblesort_up

[root@centos8 data]#chmod +x bubblesort_up.sh
[root@centos8 data]# ./bubblesort_up.sh 
numb are:14 49 79 18 21 49 14 71 25 57
sort numb:14 14 18 21 25 49 49 57 71 79

降序

#!/bin/bash
declare -a num_arr

bubblesort_down(){
    for (( i=0; i<10; i++)); do
    numb[i]=$[RANDOM%100]
    done

    echo "numb are:${numb[*]}"

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

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

    echo "sort numb:${numb[*]}"
}
bubblesort_down

[root@centos8 data]# chmod +x bubblesort_done.sh
[root@centos8 data]# ./bubblesort_done.sh 
numb are:89 21 95 83 58 34 60 93 16 56
sort numb:95 93 89 83 60 58 56 34 21 16

4灯谣、總結(jié)查看系統(tǒng)負(fù)載的幾種命令,總結(jié)top命令的指標(biāo)大概什么含義(不要求全部寫出來)
uptime
系統(tǒng)平均負(fù)載(1蛔琅、5胎许、15分鐘的平均負(fù)載,一般不會超過1)

[root@centos8 data]# uptime 
 17:27:44 up 1 day,  9:03,  1 user,  load average: 0.00, 0.00, 0.00

mpstat
顯示CPU相關(guān)統(tǒng)計罗售,需先下載systat包

[root@centos8 data]#yum -y install systat
[root@centos8 data]# mpstat
Linux 4.18.0-348.el8.x86_64 (centos8.sakura.com)    02/19/2022  _x86_64_    (8 CPU)

05:28:56 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
05:28:56 PM  all    0.00    0.00    0.01    0.00    0.02    0.01    0.00    0.00    0.00   99.96

free
顯示內(nèi)存使用空間

[root@centos8 data]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.7Gi       252Mi       1.1Gi       8.0Mi       369Mi       1.3Gi
Swap:         2.0Gi          0B       2.0Gi

vmstat
虛擬內(nèi)存信息
procs:
r:可運行(正運行或等待運行)進(jìn)程的個數(shù)辜窑,和核心數(shù)有關(guān)
b:處于不可中斷睡眠態(tài)的進(jìn)程個數(shù)(被阻塞的隊列的長度)
memory:
swpd: 交換內(nèi)存的使用總量
free:空閑物理內(nèi)存總量
buffer:用于buffer的內(nèi)存總量
cache:用于cache的內(nèi)存總量
swap:
si:從磁盤交換進(jìn)內(nèi)存的數(shù)據(jù)速率(kb/s)
so:從內(nèi)存交換至磁盤的數(shù)據(jù)速率(kb/s)
io:
bi:從塊設(shè)備讀入數(shù)據(jù)到系統(tǒng)的速率(kb/s)
bo: 保存數(shù)據(jù)至塊設(shè)備的速率
system:
in: interrupts 中斷速率,包括時鐘
cs: context switch 進(jìn)程切換速率
cpu:
us:Time spent running non-kernel code
sy: Time spent running kernel code
id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
wa: Time spent waiting for IO. 2.5.41前寨躁,包括in idle.
st: Time stolen from a virtual machine. 2.6.11前, unknown

[root@centos8 data]# vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1196308   5208 372828    0    0     0     0   13   17  0  0 100  0  0

isostat
統(tǒng)計CPU和IO信息

[root@centos8 data]# iostat
Linux 4.18.0-348.el8.x86_64 (centos8.sakura.com)    02/19/2022  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.04    0.00    0.00   99.96

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1           0.18         2.53         3.12     303397     374199
scd0              0.00         0.01         0.00       1041          0

df
查看磁盤利用率

[root@centos8 data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        878M     0  878M   0% /dev
tmpfs           896M     0  896M   0% /dev/shm
tmpfs           896M  8.7M  887M   1% /run
tmpfs           896M     0  896M   0% /sys/fs/cgroup
/dev/nvme0n1p2   50G  2.0G   49G   4% /
/dev/nvme0n1p3   50G  390M   50G   1% /data
/dev/nvme0n1p1 1014M  206M  809M  21% /boot
tmpfs           179M     0  179M   0% /run/user/0

top

[root@centos8 data]# top
top - 20:22:24 up 1 day,  9:22,  1 user,  load average: 0.00, 0.00, 0.00
# 系統(tǒng)當(dāng)前時間穆碎,啟動時間,在線用戶职恳,平均負(fù)載(等同于uptime)
Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
# 任務(wù)數(shù)(線程數(shù))200所禀,1個在運行,199個休眠放钦,0個停止色徘,0個僵尸進(jìn)程
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
# us:用戶空間
# sy:內(nèi)核空間
# ni:調(diào)整nice時間
# id:空閑
# wa:等待IO時間
# hi:硬中斷時間
# si:軟中斷(模式切換)時間
# st:虛擬機偷走(占用)的時間
MiB Mem :   1790.0 total,   1167.3 free,    253.2 used,    369.5 buff/cache
# 物理內(nèi)存(KB)總空間,空閑內(nèi)存(KB)操禀,已使用內(nèi)存(KB)褂策,緩存
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1380.6 avail Mem 
# 虛擬內(nèi)存(KB)總空間,空閑內(nèi)存(KB)床蜘,已使用內(nèi)存(KB)辙培,可用物理內(nèi)存(KB)大小
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+COMMAND
# PID進(jìn)程號蔑水,用戶邢锯,系統(tǒng)優(yōu)先級(0-39,數(shù)字越小優(yōu)先級越高)搀别,nice優(yōu)先級(-20-19丹擎,數(shù)字越小優(yōu)先級越高),占用虛擬內(nèi)存情況歇父,占用物理內(nèi)存情況蒂培,共享內(nèi)存空間,進(jìn)程狀態(tài)榜苫,cpu使用率护戳,內(nèi)存使用率,占用cpu時間(1%/s)垂睬,進(jìn)程關(guān)聯(lián)的程序名                                                                    
    827 root      20   0  352176  10716   8932 S   0.4   0.6   1:42.89 vmtoolsd                                                                           
  11211 root      20   0  153440   5512   4252 S   0.4   0.3   0:00.71 sshd                                                                               
      1 root      20   0  238204  10644   7896 S   0.0   0.6   0:01.91 systemd                                                                            
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.06 kthreadd                                                                           
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                             
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                         
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri                                                        
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                       
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/0                                                                        
     11 root      20   0       0      0      0 I   0.0   0.0   0:28.34 rcu_sched                                                                          
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                                                                        
     13 root      rt   0       0      0      0 S   0.0   0.0   0:00.33 watchdog/0                                                                         
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                                                            
     15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1                                                                            
     16 root      rt   0       0      0      0 S   0.0   0.0   0:00.37 watchdog/1                                                                         
     17 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/1                                                                        
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/1                                                                        
     20 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-events_highpri                                                        
     21 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2                                                                            
     22 root      rt   0       0      0      0 S   0.0   0.0   0:00.29 watchdog/2                                                                         
     23 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/2                                                                        
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.01 ksoftirqd/2                                                                        
     26 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0H-events_highpri                                                        
     27 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/3                                                                            
     28 root      rt   0       0      0      0 S   0.0   0.0   0:00.26 watchdog/3                                                                         
     29 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/3                                                                        
     30 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/3  

5媳荒、編寫腳本抗悍,使用for和while分別實現(xiàn)192.168.0.0/24網(wǎng)段內(nèi),地址是否能夠ping通钳枕,若ping通則輸出"success!"缴渊,若ping不通則輸出"fail!"
for

[root@centos8 data]# cat chknet.sh 
#!/bin/bash
net=192.168.0.
for i in {1..254};do
   {
     if
     ping -c1 -w1 ${net}.${i} &>/dev/null;then
       echo $net$i is success!
     else
       echo $net$i is fail!
     fi
   }&
 done
wait

while

[root@centos8 data]# cat chknet2.sh 
#!/bin/bash
net=192.168.0.
declare -i addr=1
while [ $addr -le 254 ];do
   {  
     ping -c1 -w1 ${net}.${addr} &> /dev/null
     if [ $? -eq 0 ];then
       echo $net$addr is success!
     else
       echo $net$addr is fail!
     fi
   } &
let addr++
done
wait

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

[root@centos8 data]# cat backup.sh 
#!/bin/bash
filename_tar=bak-`date -d '-1 day' +%Y-%m-%d-%H`.tar.gz
filename_log=bak-`date -d '-1 day' +%Y-%m-%d-%H`.log
[ ! -d $backup ] || mkdir -p /data/backup
tar -czvf /data/backup/${filename_tar} /etc/ > /data/backup/${filename_log}  &> /dev/null
[root@centos8 data]# crontab -l
30 1 * * 1-5    bash /data/backup.sh
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昔瞧,一起剝皮案震驚了整個濱河市指蚁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌自晰,老刑警劉巖欣舵,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缀磕,居然都是意外死亡缘圈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門袜蚕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糟把,“玉大人,你說我怎么就攤上這事牲剃∏卜瑁” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵凿傅,是天一觀的道長缠犀。 經(jīng)常有香客問我,道長聪舒,這世上最難降的妖魔是什么辨液? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮箱残,結(jié)果婚禮上滔迈,老公的妹妹穿的比我還像新娘。我一直安慰自己被辑,他們只是感情好燎悍,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盼理,像睡著了一般谈山。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宏怔,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天奏路,我揣著相機與錄音抗蠢,去河邊找鬼。 笑死思劳,一個胖子當(dāng)著我的面吹牛迅矛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播潜叛,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼秽褒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了威兜?” 一聲冷哼從身側(cè)響起销斟,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椒舵,沒想到半個月后蚂踊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡笔宿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年犁钟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泼橘。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡涝动,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出炬灭,到底是詐尸還是另有隱情醋粟,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布重归,位于F島的核電站米愿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鼻吮。R本人自食惡果不足惜育苟,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狈网。 院中可真熱鬧宙搬,春花似錦笨腥、人聲如沸拓哺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士鸥。三九已至,卻和暖如春谆级,著一層夾襖步出監(jiān)牢的瞬間烤礁,已是汗流浹背讼积。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脚仔,地道東北人勤众。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像鲤脏,于是被迫代替她去往敵國和親们颜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

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