運維編程題

近來參加面試,遇到幾個運維編程題,在這裏作一些記錄。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  
View Code
相關文章
相關標籤/搜索