近來參加面試,遇到幾個運維編程題,在這裏作一些記錄。html
使用for循環在/oldboy目錄下經過隨機小寫10個字母加固定字符串oldboy批量建立10個html文件。面試
#!/bin/bash letter=(`echo {a..z}`) function create_filename() { filename=`for i in $(seq 10) do echo -n ${letter[$((RANDOM%24))]} done`_oldboy.html } fori in $(seq 10) do create_filename touch $filename done
用兩種將以上文件名中的oldboy所有改爲oldgirl(用for循環實現),而且html改爲大寫編程
#!/bin/bash filelist=`ls |grep ".html$"` for i in $filelist do mv $i ${i%%_*}_oldgirl.HTML done
#!/bin/bash filelist=`ls | grep ".html$"` for i in $filelist do newfile=`echo $i | awk -F'_' '{print $1"_oldgirl.HTML"}'` mv $i $newfile done
批量建立10個系統賬號oldboy01-oldboy10並設置密碼(密碼爲隨機8位字符串)。bash
#!/bin/bash for i in `seq 10` do if [[ $i -lt 10 ]];then useradd oldboy0$i && echo `cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | strings -n 8 | head -n 1` | passwd oldboy0$i --stdin else useradd oldboy$i && echo `cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | strings -n 8 | head -n 1` | passwd oldboy$i --stdin fi done
寫一個腳本,實現判斷10.0.0.0/24網絡裏,當前在線用戶的IP有哪些網絡
單進程運維
#!/bin/bash for i in `seq 2 255` do ping 10.0.0.$i -c 1 1>/dev/null && echo 10.0.0.$i: live || echo 10.0.0.$i: dead done
多進程dom
#!/bin/bash tmp_fifofile="/tmp/$$.fifo" mkfifo $tmp_fifofile exec 6<>$tmp_fifofile rm -rf $tmp_fifofile thread=254 for ((i=0;i<$thread;i++)) do echo "" done >&6 for ((i=1;i<254;i++)) do read -u6 { ping 10.0.0.$i -c 1 1>/dev/null && echo 10.0.0.$i: live || echo 10.0.0.$i: dead echo "">&6 } & done wait exec 6>&- exit 0
bash for循環打印下面這句話中字母數不大於6的單詞ide
#!/bin/bash content="I am oldboy teacher welcome to oldboy training class." new_content=`echo $content |sed 's/\.//'` echo $new_content arg=(`echo $new_content`) for i in ${arg[@]} do if [[ ${#i} -le 6 ]] ;then echo $i fi done
已知下面的字符串是經過RANDOM隨機數變量md5sum|cut-c 1-8截取後的結果,請破解這些字符串對應的md5sum前的RANDOM對應數字?spa
210292993d
00205d1c
a3da1677
1f6d12dd
890684b
1 #!/bin/bash 2 declare -a array 3 4 for i in $(seq 0 32767) 5 do 6 array[$i]=`echo $i | md5sum | cut -c 1-8` 7 done 8 9 keys=([0]=21029299 [1]=00205d1c [2]=a3da1677 [3]=1f6d12dd [4]=890684b) 10 echo "number ------- md5sum" 11 for key in ${keys[@]} 12 do 13 for i in `seq 0 32767` 14 do 15 if [[ "${array[i]}" == "$key" ]];then 16 echo $i ------- $key 17 fi 18 done 19 done