1落包、編寫腳本實(shí)現(xiàn)登陸遠(yuǎn)程主機(jī)俊啼。(使用expect和shell腳本兩種形式)策幼。
- expect
#!/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 "yes\n";exp_continue }
"password" { send "$password\n" }
}
interact
expect
- shell
#!/bin/bash
ip=$1
user=$2
password=$3
expect <<EOF
set timeout 20
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
for i in {1..10}; do
number[$i]=`echo $RANDOM`
done
min=${number[1]}
max=${number[1]}
for j in ${number[*]}; do
[ $j -gt $max ] && max=$j && continue
[ $j -lt $min ] && min=$j
done
echo "numbers are ${number[*]}"
echo "minimum is $min, maximum is $max"
結(jié)果
3特姐、輸入若干個數(shù)值存入數(shù)組中,采用冒泡算法進(jìn)行升序或降序排序
#!/bin/bash
for i in `eval echo {1..$1}`; do
(( $1 > 1 )) && number[$i]=`echo $RANDOM`
done
echo ${number[*]}
for (( i=0;i<$1;i++ ));do
for (( j=0;j<$1-$i;j++ )); do
if [[ ${number[j]} -gt ${number[$((j+1))]} ]];then
temp=${number[j]}
number[j]=${number[$((j+1))]}
number[$((j+1))]=$temp
fi
done
done
echo ${number[*]}
升序
#!/bin/bash
for i in `eval echo {1..$1}`; do
(( $1 > 1 )) && number[$i]=`echo $RANDOM`
done
echo ${number[*]}
for (( i=0;i<$1;i++ ));do
for (( j=0;j<$1-$i;j++ )); do
if [[ ${number[j]} -lt ${number[$((j+1))]} ]];then
temp=${number[j]}
number[j]=${number[$((j+1))]}
number[$((j+1))]=$temp
fi
done
done
echo ${number[*]}
降序
4黍氮、總結(jié)查看系統(tǒng)負(fù)載的幾種命令唐含,總結(jié)top命令的指標(biāo)大概什么含義(不要求全部寫出來)
- CPU
- top或htop
- vmstat
- pidstat
- 內(nèi)存
- free
- sar
- ps
- 磁盤或文件系統(tǒng)
- iostat
- df
- lsof
- 網(wǎng)絡(luò)
- iftop
- iptraf-ng
- ss
top命令
top
第一行:uptime命令內(nèi)容,系統(tǒng)運(yùn)行時間沫浆,現(xiàn)在的用戶數(shù)捷枯,最近1、5专执、15分鐘的平均負(fù)載(單位時間內(nèi)淮捆,系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù),也就是平均活躍數(shù)本股,比較理想的狀態(tài)0.7*邏輯cpu核數(shù))
第二行:進(jìn)程總數(shù)攀痊、正在運(yùn)行、睡眠拄显、停止苟径、僵尸進(jìn)程數(shù)
第三行:CPU的信息 ,當(dāng)有多個CPU時躬审,內(nèi)容可能會超過兩行棘街,
us 用戶空間占用CPU的百分比
sy 內(nèi)核空間占用CPU百分比
ni 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級的進(jìn)程占用CPU百分比
id 空閑CPU百分比
wa IO等待占用CPU的百分比
hi 硬中斷占用CPU的百分比
si 軟中斷占用CPU的百分比
第四、五行:內(nèi)存信息 總共的承边,空閑的遭殉,使用的,緩存等
下面就是進(jìn)程信息
PID 進(jìn)程id
USER 進(jìn)程所有者
PR 進(jìn)程優(yōu)先級
NI nice值炒刁。負(fù)值表示高優(yōu)先級恩沽,正值表示低優(yōu)先級
VIRT 進(jìn)程使用的虛擬內(nèi)存總量,單位kb翔始。VIRT=SWAP+RES
RES 進(jìn)程使用的罗心、未被換出的物理內(nèi)存大小,單位kb城瞎。RES=CODE+DATA
SHR 共享內(nèi)存大小渤闷,單位kb
S 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程
%CPU 上次更新到現(xiàn)在的CPU時間占用百分比
%MEM 進(jìn)程使用的物理內(nèi)存百分比
TIME+ 進(jìn)程使用的CPU時間總計(jì)脖镀,單位1/100秒
COMMAND 進(jìn)程名稱(命令名/命令行)
5飒箭、編寫腳本,使用for和while分別實(shí)現(xiàn)192.168.0.0/24網(wǎng)段內(nèi),地址是否能夠ping通弦蹂,若ping通則輸出"success!"肩碟,若ping不通則輸出"fail!"
#!/bin/bash
for (( i=1;i<255;i++ ));do
{
ping -c 1 -W 1 192.168.0.$i &> /dev/null && echo "192.168.0.$i success!" || echo "192.168.0.$i fail!"
}&
done
wait
for
6、每周的工作日1:30凸椿,將/etc備份至/backup目錄中削祈,保存的文件名稱格式 為“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的時間
6.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
date=`date -d "yesterday" +%Y-%m-%d-%H`
tar -cJf /backup/etcback-$date.tar.xz /etc