1悯蝉、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)骗卜。(使用expect和shell腳本兩種形式)骇陈。
使用expect
#!/usr/bin/expect
set ip 192.168.138.139
set user root
set password 890312
set timeout 10
spawn ssh $user@$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" {send "$password\n"}
}
interact
使用shell腳本
#!/bin/bash
IP=192.168.138.139
USER=root
PASSWORD=890312
expect <<EOF
set timeout 10
spawn ssh $USER@$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" {send "$PASSWORD\n"}
}
expect eof
EOF
2震庭、生成10個隨機(jī)數(shù)保存于數(shù)組中,并找出其最大值和最小值
#!/bin/bash
#定義一個數(shù)組
declare -a randomNumberArray
#循環(huán)生成10個隨機(jī)數(shù)
for ((i=0;i<10;i++));do
randomNumberArray[$i]=$RANDOM;
done
#打印數(shù)組中的10個隨機(jī)數(shù)
echo -e "數(shù)組中的元素為\n${randomNumberArray[*]}"
#定義默認(rèn)最大和最小數(shù)
MAX=${randomNumberArray[0]}
MIN=${randomNumberArray[0]}
#循環(huán)比較數(shù)組中的數(shù)你雌,求出最大和最小值
for ((i=0;i<10;i++));do
if [ ${randomNumberArray[$i]} -gt $MAX ];then
MAX=${randomNumberArray[$i]}
elif [ ${randomNumberArray[$i]} -lt $MIN ];then
MIN=${randomNumberArray[$i]}
fi
done
#打印最大最小值
echo -e "數(shù)組中最大的數(shù)為:$MAX"
echo -e "數(shù)組中最小的數(shù)為:$MIN"
執(zhí)行腳本random.sh
[root@centos7localdomain ~]# bash random.sh
數(shù)組中的元素為
17702 27838 22681 9814 31411 12163 20723 3137 9674 2148
數(shù)組中最大的數(shù)為:31411
數(shù)組中最小的數(shù)為:2148
3器联、輸入若干個數(shù)值存入數(shù)組中,采用冒泡算法進(jìn)行升序或降序排序
冒泡升序排序
#!/bin/bash
#定義一個數(shù)組
numberArray=(2 4 10 9 6 8 12 1 5)
echo -e "冒泡升序前的數(shù)組中的元素為\n${numberArray[*]}"
declare -i temp
for ((j=0;j<${#numberArray[*]}-1;j++));do #數(shù)組中元素個數(shù)
for ((i=0;i<${#numberArray[*]}-1-j;i++));do #每個元素需要比較的次數(shù)
#比較前后兩個數(shù)婿崭,如果左邊大于右邊拨拓,則交換這兩個數(shù)
if [ ${numberArray[$i]} -gt ${numberArray[$i+1]} ];then
temp=${numberArray[$i]}
numberArray[$i]=${numberArray[$i+1]}
numberArray[$i+1]=$temp
fi
done
done
#打印冒泡算法升序后數(shù)組中的數(shù)
echo -e "冒泡升序后數(shù)組中的元素為\n${numberArray[*]}"
[root@centos7localdomain ~]# bash bubblesort.sh
冒泡升序前的數(shù)組中的元素為
2 4 10 9 6 8 12 1 5
冒泡升序后數(shù)組中的元素為
1 2 4 5 6 8 9 10 12
4、總結(jié)查看系統(tǒng)負(fù)載的幾種命令氓栈,總結(jié)top命令的指標(biāo)大概什么含義(不要求全部寫出來)
uptime, top, htop, w, vmstat, mpstat, iostat, dstat, glances
top命令指標(biāo)
top - 11:05:23 up 1:07, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863032 total, 1547776 free, 184392 used, 130864 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1533552 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2412 root 20 0 162108 2232 1540 R 0.7 0.1 0:00.10 top
31 root 20 0 0 0 0 S 0.3 0.0 0:06.61 kworker/0:1
1 root 20 0 193444 6576 4144 S 0.0 0.4 0:02.87 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
5 root 20 0 0 0 0 S 0.0 0.0 0:00.29 kworker/u256:0
6 root 20 0 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.05 migration/0
us:用戶態(tài)進(jìn)程占用CPU時間百分比
sy:內(nèi)核占用CPU時間百分比
ni:renice值為負(fù)的任務(wù)的用戶態(tài)進(jìn)程的CPU時間百分比渣磷。nice是優(yōu)先級的意思
id:空閑CPU時間百分比
wa:等待I/O的CPU時間百分比
hi:CPU硬中斷時間百分比
si:CPU軟中斷時間百分比
KiB Mem :
total:物理內(nèi)存總數(shù)
used: 使用的物理內(nèi)存
free:空閑的物理內(nèi)存
cached:用作緩存的內(nèi)存
KiB Swap:
total:交換空間的總量
used: 使用的交換空間
free:空閑的交換空間
cached:緩存的交換空間
PID:進(jìn)程ID
USER:進(jìn)程的所有者
PR:進(jìn)程的優(yōu)先級
NI:nice值
VIRT:占用的虛擬內(nèi)存
RES:占用的物理內(nèi)存
SHR:使用的共享內(nèi)存
S:進(jìn)行狀態(tài) S:休眠 R運(yùn)行 Z僵尸進(jìn)程 N nice值為負(fù)
%CPU:占用的CPU
%MEM:占用內(nèi)存
TIME+: 占用CPU的時間的累加值
COMMAND:啟動命令
5、編寫腳本授瘦,使用for和while分別實(shí)現(xiàn)192.168.0.0/24網(wǎng)段內(nèi)醋界,地址是否能夠ping通,若ping通則輸出"success!"提完,若ping不通則輸出"fail!"
for 循環(huán)實(shí)現(xiàn)
#!/bin/bash/
IP=192.168.0.
for ((i=1;i<255;i++));do
ping -w 5 $IP$i >& /dev/null
if [ $? -eq 0 ];then
echo "success"
else
echo "fail"
fi
done
while循環(huán)實(shí)現(xiàn)
#!/bin/bash
IP=192.168.0.
i=1
while (($i<255));do
ping -w 5 $IP$i >& /dev/null
if [ $? -eq 0 ];then
echo "success"
else
echo "fail"
fi
let "i++"
done
6形纺、每周的工作日1:30,將/etc備份至/backup目錄中徒欣,保存的文件名稱格式 為“etcbak-yyyy-mm-dd-HH.tar.xz”逐样,其中日期是前一天的時間
使用crontab進(jìn)行定時任務(wù)
30 1 * * 1-5 cp -r /etc/ /backup/etcback-`date -d "1 days ago" +%F`-HH.tar.xz