第八週作業

1、用shell腳本實現自動登錄機器

#!/usr/bin/expect
set ip 192.168.2.192
set user root
set password root
spawn ssh $user@$ip
expect {
"yes/no" { send "yes\n";exp_cotinue}
"password" {send "$password\n"}
}
interact

2、shell 判斷一個值bone是否在數組arrayZ=( one two three four five five )中
#!/bin/bash
var=( "one" "two" "three" "four" "five" "five" )
for i in seq $[${#var[*]}-1];do
echo ${var[$i]}
if [ ${var[$i]} == bond ];then
echo yes
else
echo no
fi
done
unset var

3、用命令或者腳本實現 0057AF051EFF 變爲 00:57:AF:05:1E:FF

a=0057AF051EFF
echo ${a:0:2}:${a:2:2}:${a:4:2}:${a:6:2}:${a:8:2}:${a:10:2}

4、a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 ! \@ # \$ \% \^ \& * ( ) - _ \= + \ \/ \' \" \; \: [ ] { } \, . \?
用以上字符,結合數組,實現一個隨機生成20位密碼的腳本

#!/bin/bash
declare -a a
a=(a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 ! \@ # \$ \% \^ \& * ( ) - _ \= + \ \/ \' \" \; \: [ ] { } \, . \?)
for i in seq 0 19;do
let i=$[$RANDOM%${#a[*]}]
echo -e "${a[$i]:0:20}\c"
done

5、詳細敘述centos7開機流程
第一步:POST加電自檢
主要實現的功能是檢測各個外圍硬件設備是否存在而且能夠正常運行起來,實現這一自檢功能的是固化在主板上的ROM(主要代表爲CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS會檢測CPU、Memory以及I/O設備是否能夠正常運行,如果是個人計算機的話可能還會檢測一下顯示器。只要一通電,CPU就會自動去加載ROM芯片上的BIOS程序,是這樣來實現的。而檢測完成之後就進行硬件設備的初始化
第二步:Boot Sequence(選擇啓動設備以加載MBR)
主要實現的功能是選擇要啓動的硬件設備,選擇了之後就可以讀取這個設備上位於MBR裏頭的bootloader了。這一步的實現是這樣的:根據BIOS中對啓動順序的設定,BIOS自己會依次掃描各個引導設備,然後第一個被掃描到具有引導程序(bootloader)的設備就被作爲要啓動的引導設備。
第三步:加載bootloader(MBR)
這一步實現起來的步驟比較多,前面的BIOS通過讀取並執行啓動設備的MBR中的bootloader,而bootloader要實現的功能就是提供一個菜單給用戶,讓用戶去選擇要啓動的系統或不同的內核版本,然後把用戶選擇的內核版本加載至RAM中的特定空間,接着在RAM中解壓、展開,而後把系統控制權移交給內核。
第四步:Kernel自身初始化
Kerenl在得到系統控制權之後,首先要進行自身初始化,而初始化的主要作用是:
(1)探測可識別到的所有硬件設備
(2)加載硬件驅動程序,即加載真正的根文件系統所在設備的驅動程序
(3)以只讀方式掛載根文件系統(4)運行用戶空間的第一個應用程序:/sbin/init.
(4)運行用戶空間的第一個應用程序:/sbin/init.
第五步:init管理用戶空間服務進程
這一步的流程是:/sbin/init --> 根據init配置文件設置默認運行級別 --> 運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化 --> 關閉或啓動用戶選定的默認運行級別所對應的服務 --> 啓動終端,打印登錄提示符
根據init配置文件設置默認運行級別
對於CentOS 5來說,初始化程序init是SysV init,其配置文件爲:/etc/inittab;
對於CentOS 6來說,初始化程序init是upstart,其配置文件爲:/etc/inittab, /etc/init/.conf,也就是upstart將配置文件拆分成多個,在/etc/init/目錄下以conf結尾的都是upstart風格的配置文件,而/etc/inittab僅用於設置默認運行級別;
對於CentOS 7來說,初始化程序init是systemd,其配置文件爲:/usr/lib/system/systemd/
, /etc/systemd/system/*;

6、編寫Nginx的systemd配置文件, 實現nginx進程開機啓動
首先安裝 yum install -y gcc-c++ && pcre && pcre-devel && zlib && zlib-devel && openssl && openssl-devel

然後./configure && make && make install
cd /lib/systemd/system/
vim nginx.service
systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
systemctl start nginx.service
systemctl status nginx.service

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章