常見運維面試題
1、windows遠端登入的幾種方法
答案 : Xshell、FTerm, PuTTY, SecureCRT。
2、Linux的遠端登入方式 : SSH(全稱OpenSSH)、dbclient
服務程式 : dropbear —> sshd
客戶程式 : dbclient —> ssh
金鑰生產程式 :dropbearkey
編譯安裝 : # ./configure --prefix=/usr/local/dropbear --sysconfdir=/etc/dropbear --disable-pam
# make PROGRAMS-"dropbear dropbear dbclient dropbearkey dropbearconvert scp" # make PROGRAMS-"dropbear dropbear dbclient dropbearkey dropbearconvert scp" install
配置檔案
sshd : /tc/ssh/sshd_config
獲取幫助 :man sshd_config
ssh : /etc/ssh/ssh_config
獲取幫助 :man ssh_config
命令遠端連線工具 :Xshell、SecureCRT、Putty、SSH Secure Shell Client等
圖形遠端連線工具 :xmanager(需安裝配置服務並開啟177埠)、VNC-Viewer(linux需安裝vncserver)、windows自帶的遠端桌面(linux需安裝xrdp和vnc)
3、ping結果中TTL是什麼意思
答案 : TTL是生存時間的意思,就是說這個ping的資料包能在網路上存在多少時間。
linux系統常用監控工具 : top , htop,iotop ,iftop
LINUX系統軟體安裝和解除安裝的常見方法 :
A 、rpm -e XXX.rpm B、yum remove XXX.rpm 非常不建議使用,解除安裝過程會將待解除安裝的軟體包所依賴的軟體包一併解除安裝掉,很容易造成系統缺少某些包而崩潰等問題 C、原始碼包解除安裝:cd命令進入編譯後的軟體目錄,即安裝時的目錄,執行make uninstall命令即可;或者直接刪除安裝目錄
4、檢視cpu的命令
more /proc/cpuinfo grep "model name"
grep “model name” /proc/cpuinfo
top -n 2 | grep Cpu
# free -m
# vmstat -t 1
cat /proc/cpuinfo # 檢視CPU資訊
檢視CPU資訊(型號)
檢視CPU型號和頻率
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
(看到有8個邏輯CPU, 也知道了CPU型號)
檢視cpu的數量和cpu的具體核心是多少
cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
(說明實際上是兩顆4核的CPU)
檢視總記憶體的方法
(1)、第一種方法:top命令法
PID:程序的ID USER:程序所有
PR:程序的優先級別,越小越優先被執
NInice:
VIRT:程序佔用的虛擬內
RES:程序佔用的物理內
SHR:程序使用的共享內
S:程序的狀態。S表示休眠,R表示正在執行,Z表示僵死狀態,N表示 該程序優先值為負
%CPU:程序佔用CPU的使用
%MEM:程序使用的實體記憶體和總記憶體的百分
TIME+:該程序啟動後佔用的總的CPU時間,即佔用CPU使用時間的累加值
COMMAND:程序啟動命令名稱
(2)、第二種方法:free命令法
(3)、第三種方法:通過proc虛擬檔案系統,來直接獲取總記憶體數。
head /proc/meminfo
注意 : 檢視RAM使用情況最簡單的方法是通過/proc/meminfo。
(4)、第四種方法:
輸入:gnome-system-monitor
GNOME System Monitor 是一個顯示最近一段時間內的CPU、記憶體、交換區及網路的使用情況的檢視工具。它還提供了一種檢視CPU及記憶體使用情況的方法。
(5)、第五種方法:輸入:ps aux --sort -rss
(6)、第六種方法:輸入:vmstat -s
vmstat命令顯示實時的和平均的統計,覆蓋CPU、記憶體、I/O等內容。例如記憶體情況,不僅顯示實體記憶體,也統計虛擬記憶體。
檢視目錄和檔案佔用空間–du
檢視各掛載點空間–df
檢視記憶體可用情況–free
檢視程序的記憶體使用情況–pmap
檢視虛擬記憶體統計資訊–vmstat
檢視程序間關係–pstree
上面的命令,共同點 : 都是從系統檔案中獲取的,例如/proc/meminfo儲存了記憶體相關資訊,/proc/net/dev儲存網路流量相關資訊。只是,它們都是靜態數值。
watch命令來動態地觀察這些資訊,例如:
watch -n 1 cat /proc/meminfo
watch -n 1 cat /proc/net/dev
上面的命令表示,每隔一秒執行一次cat /proc/meminfo或cat /proc/net/dev,因此我們可以看到記憶體資訊或網絡卡流量資訊在實時重新整理。
ps -A 顯示所有程序資訊
ps -ef 顯示所有程序基本資訊
ps -u root 顯示指定使用者的程序
ps -ef|grep java 檢視指定程序名相關資訊
ps -aux 檢視程序佔用記憶體,cpu利用率等資訊
ps -elf 顯示執行緒相關資訊
ps -ejH 檢視程序間的關係
ps -aux|more 程序太多時分頁顯示
ls -lh 以易讀方式列出當前目錄檔案大小
ls -lR 遞迴列出當前目錄以及子目錄的檔案
ls -lt #按檔案修改時間排序
ls -alS #按檔案大小排序
ls -X #按副檔名排序
ls -l | grep “^-” | wc -l #計算當前目錄下檔案數量
ls -lR | grep “^-” | wc -l #包括子目錄
ls -lR | grep “^d” | wc -l #計算當前目錄下的目錄數量,且不包括.和…
ls -lR | grep “^l” | wc -l #計算當前目錄下的連結數量
pgrep命令 ——查詢程序資訊
pstree -aup 命令可以檢視當前系統的程序樹
列出目錄下所有檔案的完整路徑
ls -lR |grep ‘^-’ |awk ‘{print “/LTE/” $9}’ #列出LTE目錄下所有檔案完整路徑,$9代表第9列,即檔名,-R,遞迴子目錄
ls -lR |grep ‘^-’ |awk ‘{print “/LTE/” $1 " " $9 }’ ##列印第一列和第九列
^-也可以改為以下幾種:
^l 列出目錄下所有連結
1 列出目錄下所有檔案和連結
^d 列出目錄下所有目錄
參考連結 : https://jingyan.baidu.com/article/ea24bc39e6e090da62b33191.html
5、Linux中限制使用者訪問許可權的3種方法?
答案 :第一種:使用chmod更改特定目錄的許可權。這能起到限制特定目錄被某些人訪問的作用,限定某個使用者的目的也能達到,但是會誤傷其他使用者。
第二種:使用linux容器,例如lxc。耗費空間,設定稍顯麻煩。
第三種:使用setfacl命令設定訪問控制。
更多介紹連結 : https://blog.csdn.net/zzg1229059735/article/details/50846602/
6、linux禁止使用者遠端登入的方法
答案 : 1.在新新增一個新使用者的時候就指定這個使用者不能遠端登入
或者 禁止個別使用者登入。比如禁止zgsj使用者登入。
2、通過修改/etc/passwd檔案中使用者登入的shell來實現linux禁止使用者登入
vi /etc/passwd
7、SSH限制遠端登入的 方法?
答案 : 1、修改SSH預設埠
//修改防火牆配置
vi /etc/sysconfig/iptables
//啟用888埠
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 888 -j ACCEPT
//重啟防火牆
/etc/init.d/iptables restart
2、禁止ROOT遠端登入
//先增加一個普通許可權的使用者
useradd phpha_com
passwd phpha_com
//禁止ROOT遠端SSH登入
vi /etc/ssh/sshd_config
//修改
PermitRootLogin yes
//改為
PermitRootLogin no
//重啟sshd服務
service sshd restart
遠端管理用普通使用者phpha_com登入,然後用 su root 切換到root使用者拿到最高許可權
3、限制SSH登入IP地址
<1> 新增允許訪問的IP
vi /etc/hosts.allow
sshd: 115.183.13.130
<2> 禁止其它的所有IP
vi /etc/hosts.deny
sshd: ALL
8、路由器處理資料包的兩個過程 ?
答案 : 一、Routing Process
二、Switching Process:
程序與執行緒的區別
執行緒是程式執行的最小單位,而程序是作業系統分配資源的最小單位;
一個程序由一個或多個執行緒組成,執行緒是一個程序中程式碼的不同執行路線;
程序之間相互獨立,但同一程序下的各個執行緒之間共享程式的記憶體空間(包括程式碼段、資料集、堆等)及一些程序級的資源(如開啟檔案和訊號),某程序內的執行緒在其它程序不可見;
排程和切換:執行緒上下文切換比程序上下文切換要快得多。
如何修改LINUX的IP地址、閘道器和主機名 :
9、Quidway系列路由器在執行資料包轉發時2,下列那些沒有發生變化?
答案 : 源網路地址
10、在PPP的 協商過程中,本端路由器合適驗證對路由器相應介面工在MP方式?
答案 : LCP協商過程中
11、isdn b通道速率是?
答案 : 64kbps
12、dhcp客戶端是使用地址()來申請一個新的IP地址的?
答案 : 0.0.0.0
13、路由器中,IPX地址0XFFFFFFFE表示 ()
答案 : 網內廣播地址
14、在Quidway路由器上如何檢視e0IPX介面 ()
答案 : show ipx interface
15、乙太網交換機埠的工作模式
答案 : 全雙工、半雙工、自動協商。
16、交換機乙太網埠共有三種鏈路型別 ?
答案 : Access、Trunk和Hybrid。
Access型別的埠只能屬於1個VLAN,一般用於連線計算機的埠;
Trunk型別的埠可以屬於多個VLAN,可以接收和傳送多個VLAN的報文,一般用於交換機之間連線的埠;
Hybrid型別的埠可以屬於多個VLAN,可以接收和傳送多個VLAN的報文,可以用於交換機之間連線,也可以用於連線使用者的計算機。
注意 : trunk是多個vlan通過,access是單個vlan
17、交換機上的埠型別 ?
答案 : 乙太網、令牌環、FDDI還是ATM等型別
快速乙太網交換機埠型別一般包括10Base-T、100Base-TX、100Base-FX。
18、在Cisco交換機中,Trunk的作用是什麼?Trunk主要有哪兩種封裝方式?
答案 : TRUNKING是用來在不同的交換機之間進行連線,以保證在跨越多個交換機上建立的同一個VLAN的成員能夠相互通訊。其中
交換機之間互聯用的埠就稱為TRUNK埠。
ISL和802.Q,注意 : CISCO2950並不支援ISL
19、檢視linux版本的三種常用方法
(1)、 lsb_release -a 可列出所有版本資訊
(2)、cat|more /etc/redhat-release 只適合Redhat系的Linux
(3)、cat /etc/issue
注意:第(2)(3)兩種方法只對Redhat Linux有效
檢視核心版本的命令 (兩種方法):
cat /proc/version
uname -a
檢視windows版本的三種常用方法
(1)、按組合鍵win+r開啟執行,輸入winser
(2)、按組合鍵win+r開啟執行,輸入msinfo32.exe
(3)、右擊電腦–選中屬性
檢視windows版本的CPU位數常用方法
(1、按組合鍵win+r開啟執行,輸入dxdiag
(2)、按組合鍵win+r開啟執行,輸入cmd,輸入systeminfo
(3)、右鍵點選“計算機”然後選擇“屬性”
20、ssh連線不上的一些問題
ssh連線不上2種情況:
ssh: connect to host tw07323.sandai.net port 22: Connection refused
這種情況大家應該經常會見到,一般原因是sshd沒有開啟,建議開啟sshd程序;或者是ssh做了限制。
ssh_exchange_identification: Connection closed by remote host
1.檢查 /etc/hosts.deny 和 /etc/hosts.allow 裡面是否遮蔽了某些帳戶;
2.刪除 ~/.ssh/known_hosts 裡面的相關伺服器條目試一下
3.在某些發行版上升級 glibc 或 openssl 等軟體包以後需要重啟一下 sshd;
4.由於 ssh 試探或者 ssh 連結數太多,/etc/ssh/sshd_config 裡面的 MaxStartups 預設引數配置不夠
5./var/empty/sshd 目錄的許可權給的太大比如說777,我們可以把它改成744然後在重啟ssh程序,然後再連線應該就可以。
這是ssh的經常出現的問題,不能啟動ssh,其原因是庫檔案有問題我們把他去掉就好了:
去掉/etc/ld.so.conf裡那行,然後執行ldconfig
然後ssh就可以正常的啟動了。
21、常見協議體系結構
22、系統層面常見的命令
cpu方面
vmstat、sar top、htop、nmon、mpstat
nmon介紹 : http://os.51cto.com/art/201408/447207.htm
記憶體
free 、ps -aux 、
IO裝置(磁碟、網路)
iostat 、 ss 、 netstat 、 iptraf、iftop、lsof、
vmstat 命令說明:
Procs:r顯示有多少程序正在等待CPU時間。b顯示處於不可中斷的休眠的程序數量。在等待I/O
Memory:swpd顯示被交換到磁碟的資料塊的數量。未被使用的資料塊,使用者緩衝資料塊,用於作業系統的資料塊的數量
Swap:作業系統每秒從磁碟上交換到記憶體和從記憶體交換到磁碟的資料塊的數量。s1和s0最好是0
Io:每秒從裝置中讀入b1的寫入到裝置b0的資料塊的數量。反映了磁碟I/O
System:顯示了每秒發生中斷的數量(in)和上下文交換(cs)的數量
Cpu:顯示用於執行使用者程式碼,系統程式碼,空閒,等待I/O的CPU時間
iostat命令說明
例項命令: iostat -dk 1 5
iostat -d -k -x 5 (檢視裝置使用率(%util)和響應時間(await))
tps:該裝置每秒的傳輸次數。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合併為“一次I/O請求”。
iops :硬體出廠的時候,廠家定義的一個每秒最大的IO次數,"一次傳輸"請求的大小是未知的。
kB_read/s:每秒從裝置(drive expressed)讀取的資料量;
KB_wrtn/s:每秒向裝置(drive expressed)寫入的資料量;
kB_read:讀取的總資料量;
kB_wrtn:寫入的總數量資料量;這些單位都為Kilobytes。
1.4.4 系統層面問題解決辦法
你認為到底負載高好,還是低好呢?
在實際的生產中,一般認為 cpu只要不超過90%都沒什麼問題 。
當然不排除下面這些特殊情況:
問題一:cpu負載高,IO負載低
記憶體不夠
磁碟效能差
SQL問題 ------>去資料庫層,進一步排查sql問題
IO出問題了(磁碟到臨界了、raid設計不好、raid降級、鎖、在單位時間內tps過高)
tps過高: 大量的小資料IO、大量的全表掃描
問題二:IO負載高,cpu負載低
大量小的IO 寫操作:
autocommit ,產生大量小IO
IO/PS,磁碟的一個定值,硬體出廠的時候,廠家定義的一個每秒最大的IO次數。
大量大的IO 寫操作
SQL問題的機率比較大
問題三:IO和cpu負載都很高
硬體不夠了或sql存在問題
23、檢視寬頻使用的命令
監控總體頻寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
監控總體頻寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
每個套接字連線的頻寬使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每個程序的頻寬使用――nethogs
更多介紹 : http://os.51cto.com/art/201404/435279.htm#topx
24、區域網監控工具
1.Solarwinds Network Performance Monitor (可免費試用)
2.WhatsUp Gold (可免費試用)
3.Paessler PRTG (可免費試用)
4.OpManager
5.Nagios Core and Nagios XI
6.Pandora NMS
7.Zenoss
8.Dynatrace
9.ConnectWise Automate
10.Zabbix
更多介紹 : http://netsecurity.51cto.com/art/201808/581172.htm
25、檢視io負載、cpu使用情況
答案 : 檢視cpu使用情況 #iostat -c 1 10 #命令的含義是檢視cpu,每秒蒐集一次,共蒐集10次。
檢視磁碟的讀寫情況 #iostat -d 1 10
cpu和磁碟讀寫一起看 #iostat -c -d 1 10 = iostat -x 1 10
#iostat #檢視/顯示所有裝置負載情況
yum安裝 : yum -y install sysstat
原始碼安裝 : rpm -ivh systat-9.0.4-33.el.x86_64.rpm
26、填空
1、在Linux系統中,以 檔案 方式訪問裝置。
2、Linux核心引導時,從檔案 /etc/fstab 中讀取要載入的檔案系統
3、Linux檔案系統中每個檔案用 i節點 來標識
4、全部磁碟塊由四個部分組成,分別為 引導塊、專用塊、i節點塊、資料儲存塊
5、前臺起動的程序使用 ctrl+c 禁止
6、安裝Linux系統對硬碟分割槽時,必須有兩種分割槽型別:檔案系統 和 交換分割槽。
7、網路管理的重要任務是 監控 和 控制
8、核心分為 檔案管理系統、I/O管理系統 、記憶體管理系統 和程序管理系統 等四個子系統。
27、linux下常見的網路介面
答 :
28、Linux系統預設的執行級別
0.關機
1.單機使用者模式
2.字元介面的多使用者模式(不支援網路)
3.字元介面的多使用者模式
4.未分配使用
5.圖形介面的多使用者模式
6.重啟
29、Linux系統是由那些部分組成?
Linux系統核心,shell,檔案系統和應用程式四部分組
30、硬連結和軟連結有什麼區別
1)硬連結不可以跨分割槽,軟體鏈可以跨分割槽
2)硬連結指向一個i節點,而軟連結則是建立一個新的i節點
3)刪除硬連結檔案,不會刪除原檔案,刪除軟連結檔案,會把原檔案刪除
31、如何規劃一臺Linux主機,步驟是怎樣?
1、確定機器是做什麼用的,比如是做web、db、還是遊戲伺服器
2、確定好之後,就要定系統需要怎麼安裝,預設安裝哪些系統、分割槽怎麼做
3、需要優化系統的哪些引數,需要建立哪些使用者等等的
32、檢視系統當前程序連線數?
netstat -an | grep ESTABLISHED | wc -l
33、如何在/usr目錄下找出大小超過10MB的檔案?
find /usr -type f -size +10240k
34、新增一條到192.168.3.0/24的路由,閘道器為192.168.1.254?
route add -net 192.168.3.0/24 netmask 255.255.255.0 gw 192.168.1.254
35、如何在/var目錄下找出90天之內未被訪問過的檔案?
find /var ! -atime -90
36、如何在/home目錄下找出120天之前被修改過的檔案?
find /home -mtime +120
37、在整個目錄樹下查詢檔案“core”,如發現則無需提示直接刪除它們。
find / -name core -exec rm {} ;
38、有一普通使用者想在每週日凌晨零點零分定期備份/user/backup到/tmp目錄下,該使用者應如何做?
crontab -e
0 0 * * 7 /bin/cp /user/backup /tmp
39、防火牆有幾張表幾條鏈?
4張表,5條鏈
40、一臺Linux系統初始化環境後需要做一些什麼安全工作?
1、新增普通使用者登陸,禁止root使用者登陸,更改SSH埠號
2、伺服器使用金鑰登陸,禁止密碼登陸
3、開啟防火牆,關閉SElinux,根據業務需求設定相應的防火牆規則
4、裝fail2ban這種防止SSH暴力破擊的軟體
5、設定只允許公司辦公網出口IP能登陸伺服器(看公司實際需要)
6、設定nginx_waf模組防止SQL注入
7、把Web服務使用www使用者啟動,更改網站目錄的所有者和所屬組為www
8、修改歷史命令記錄的條數為10條
41、一臺Linux系統初始化環境後需要做一些什麼安全工作?
1、新增普通使用者登陸,禁止root使用者登陸,更改SSH埠號
2、伺服器使用金鑰登陸,禁止密碼登陸
3、開啟防火牆,關閉SElinux,根據業務需求設定相應的防火牆規則
4、裝fail2ban這種防止SSH暴力破擊的軟體
5、設定只允許公司辦公網出口IP能登陸伺服器(看公司實際需要)
6、設定nginx_waf模組防止SQL注入
7、把Web服務使用www使用者啟動,更改網站目錄的所有者和所屬組為www
8、修改歷史命令記錄的條數為10條
42、什麼是網站資料庫注入?怎麼過濾與預防網站資料庫注入?
應用程式存在安全隱患。使用者可以提交一段資料庫查詢程式碼,根據程式返回的結果,獲得某些他想得知的資料,這就是所謂的SQL注入。
SQL注入是從正常的WWW埠訪問,而且表面看起來跟一般的Web頁面訪問沒什麼區別,如果管理員沒檢視日誌的習慣,可能被入侵很長時間都不會發覺。
過濾與預防:
資料庫網頁端注入這種,可以考慮使用nginx_waf做過濾與預防
43、用Shell程式設計,判斷一檔案是不是字元裝置檔案,如果是將其拷貝到 /dev 目錄下。
#!/bin/bash
read -p "Input file name: " FILENAME
if [ -c “$FILENAME” ];then
cp $FILENAME /dev
fi
44、設計一個shell程式,新增一個新組為class1,然後新增屬於這個組的30個使用者,使用者名稱的形式為stdxx,其中xx從01到30。
#!/bin/bash
groupadd class1
for((i=1;i<31;i++))
do
if [ $i -le 10 ];then
useradd -g class1 std0$i
else
useradd -g class1 std$i
fi
done
45、編寫shell程式,實現自動刪除50個賬號的功能。賬號名為stud1至stud50。
#!/bin/bash
for((i=1;i<51;i++))
do
userdel -r stud$i
done
46、linux常見系統發行版本及常見的伺服器品牌和配置有哪些
1、發行作業系統 : CentOS Redhat Ubuntu SUSE
2、伺服器品牌 : DELL R720 ,IBM 3650, HP DL360
3、2顆6核CPU-Xeon至強E5-2630 2.4Ghz , 2U 伺服器
應用伺服器 : 300Gx2 RAID 1,容量為300G
資料庫伺服器 : 4x300G ,RAID 10 ,容量為600G
47、LINUX系統開機啟動流程是什麼?
1)主機加電自檢,載入BIOS硬體資訊
2)讀取MBR的引導檔案(grub,lilo)
3)引導linux核心
4)執行第一個程序init(程序號永遠為1)
5)進入相應的執行級別
6)執行終端,輸入使用者名稱和密碼
硬體加電–>BIOS檢測–>載入MBR硬碟分割槽–>載入Linux核心–>載入init啟動級別–>載入rc.d/init程序—>載入rc.local–>進入mini-login
48、系統密碼忘記破解的方法
按e編輯–kernel–e--末尾加入single或者1–回車–b重啟–進入單使用者,執行命令passwd,輸入兩次密碼–reboot就OK了
如果磁碟出現read only 只讀狀態,進入rescue模式,fsck.ext4
49、apache有幾種工作模式,分別簡述兩種工作模式及其有缺點?
兩種工作模式 : worker和prefork模式
Work模式 : 以多個執行緒提供服務,所有的執行緒共享記憶體空間,一個down掉,整個程序崩潰,適合高併發的場景。
Prefork模式 : 多個程序提供服務,比較穩定,佔用記憶體高,提供中小訪問併發。
整合的方法 :
編譯PHP模組 ,需要在apache配置檔案中加入引用模組 :
LoadModule modules/php5.so
AddType application/x-httpd-php .php
Apache虛擬機器
NameVirtualHost *:80 關鍵行
50、一個EXT4的檔案分割槽,當用touch新建檔案時報錯,錯誤資訊是磁碟已滿,但是使用df -h檢視分割槽資訊時只使用了50%,請分析具體原因 ?
答 : Block塊檔案,inode存放我們基礎的資訊資料,許可權,大小的資訊。
掛載行動硬碟 : mount -t ntfs-3g /dev/sdb1 /mnt
硬碟分割槽 : fdisk /dev/sdb -->n—p---回車—w寫入
mkfs.ext4 /dev/sdb1;最後掛載使用。
51、MySQL資料庫的備份還原是怎麼做的?
答 : mysqldump < 200G 資料,都可以使用mysqldump備份,會鎖表,
52、Nagios和cacti的區別是什麼,你們公司主要用於監控什麼?Nagios監控URL關鍵詞做過嗎?
答 :Nagios和Cacti監控的專案一致,可以監控伺服器CPU、記憶體、硬碟、網路流量等等,
區別是Nagios主要基於Nagios外掛監控伺服器主機狀態監控,及時傳送報警資訊,而Cacti是基於rrdtool繪圖通過snmpz抓取資料,更偏向網路流量圖形展示;
53、MySQL主從原理?如何實現主從複製,簡單步驟?
1)Slave上執行slave start,Slave IO執行緒會通過在Master建立的授權使用者連線上至Master,並請求master從指定的檔案和位置之後傳送bin-log日誌內容;
2)Master接受到來自slave IO執行緒的請求後,master IO執行緒根據slave傳送的指定bin-log日誌position點之後的內容,然後返回給slave的IO執行緒。
3)、返回的資訊中除了bin-log日誌內容外,還有master最新的bin-log檔名以及在binlog中的下一個指定更新position點;
4)、slave IO執行緒接受收到資訊後,將接受到的日誌內容依次新增到
54、mysql建立使用者和資料庫均為zabbix,。同時授權192.168.1.11,ip通過zabbix使用者和密碼jfedu.net實現完全訪問?
答 : mysql
create database zabbix
grant all on zabbix.* to [email protected]‘192.168.1.11’ identified by “jfedu.net”
55、LAMP如何分開多臺部署,如果有多臺個網站怎麼實現?
編譯PHP的時候,執行./configure --help | grep mysql -with-pdo-mysql=mysqllnd --with-mysql=mysqlnd --with-mysqli=mysqlnd
56、Cacti監控網絡卡流量最大100M,這是為什麼?
答 : 在Ccacti管理頁面選擇Console->Data Source
找到需要修改的埠(即流量大於100M的埠),修改Output Type ID 為In/Out bits (64-bit counters) (原來為In/Out bits )
57、OSI參考模型和TCP/IP參考模型的區別?
會話層與表示層的基本功能:
會話層:在兩個結點之間建立,維護和釋放面向使用者的連線,並對會話進行管理控制,保證會話資料可靠傳送。
表示層:負責處理在兩個內部資料表示結構不同的通訊系統交換資訊的表示格式。為資料加密解密以及提高資料的傳輸速率提供必要的資料壓縮和解壓等功能。
58、bin-log日誌如何恢復mysql資料?例如bin-log檔名為 :mysql-bin 0001.
答 : mysqlbinlog mysql-bin.0001 > backup.sql
source backup.sql
59、crontab在11月份內,每天的早上6點到12點鐘,每隔2小時執行一次/usr/bin/httpd.sh怎麼實現?
答 :0 6-12/2 * 11 * bash /usr/bin/httpd.sh
60、匹配文字中的word字元,並打印出改行及下面的5行?
答 :grep -A5 word filename
61、在每週6的凌晨3:15執行/home/shell/collect.pl,並將標準輸出和標準錯誤輸出到/dev/null裝置,請寫出crontab中的語句?
答 : 15 3 * * 6 /home/shell/collect.pl > /dev/null 2>&1
62、寫一個指令碼將當前目錄下大於100k的檔案移動至/tmp下
答 : find -size +100k -exec mv {} /tmp;
63、利用sed命令將test.txt中所有的回車替換成空格?
答 : sed -i ‘s/\r/ /g’ test.txt
64、查詢file1以abc結尾的行?
答 : grep -n “abc$” file1
查詢file1裡面空行的所在行號命令 :
答 : grep -n ^$ file
65、打印出file1檔案第1到第三行?
答 : sed -n ‘1,3p’ file1用head -3 file1也可以。
66、用一條命令檢視目前系統已啟動服務所監聽的埠?如何檢視已知某埠號佔用的程序?
答 : netstat -antl | grep “LISTEN”
lsof -i :80
ps -ef | grep java
67、查詢/data目錄30天之前修改過的檔案並刪除?
答 : find /data -type f -mtime +30 | xargs rm -rf {} ;
68、dmesg命令中看到ip_conntrack;table full,dropping packet.如何解決?
答 : 加大ip_conntrack_max的值;
降低ip_conntrack_timeout的時間;
69、查詢file1裡面空行的所在行號?
grep -n “^$” file1
70、使用vim編輯器將httpd.conf檔案中/usr/local/apache欄位替換為/etc/httpd/,請寫成替換方法:
答 :
:%s/\usr/\local/apache//etc/http//g
:%s#/usr/local/apache#/etc/httpd/#g
:%s/usr/local/apache:/etc/httpd/:g
71、統計nginx訪問日誌,訪問量排在前20的ip列表
答 : netstat -an | awk ‘/^tcp/ {print $1}’ | sort |uniq -c | sort -nt |head -20
72、基於sed將selinux狀態設定為disabled,請寫出方法:
答 : sed -i ‘s/SELINUX/s/enforcing/disabled/g’
/etc/selinux/config
73、你們公司大概有多少臺伺服器?構架是怎麼樣的?
答 : 伺服器總數20臺:nginx + keepalived 2臺,LAMP構架8臺,MySQL資料庫1主2從(3臺),其他系統LAMP、nagios、cacti、管理機共7臺。
74、你們公司的PV、UV、出口頻寬分別是多少?
答 : PV10w、UV1w、頻寬20M
75、Linux檢視Dell伺服器型號
答案 : 命令 : dmidecode | grep “Product Name” (CentOS 6.2下測試通過)
76、檢視mysql版本的四種方法
答案 : 1、#mysql -V
2、在mysql中:mysql> status;
3、$ mysql --help | grep Distrib
4、mysql> select version();
77、Apache工作方式
答案 : prefork模式(預設)
work模式
78、常用命令檢視硬碟和分割槽
df -h
fdisk -l
79、檢視系統安裝的時候裝的軟體包
cat -n /root/install.log
more /root/install.log wc -l
檢視現在已經安裝了那些軟體包
rpm -qa
80、使用CentOS常用命令檢視selinux情況
sestatus
使用CentOS常用命令檢視selinux情況
sestatus
81、命令檢視ip,mac地址?
檢視 閘道器 cat /etc/sysconfig/network
檢視 DNS cat /etc/resolv.conf
82、使用CentOS常用命令檢視預設語言
echo $LANG $LANGUAGE
cat /etc/sysconfig/i18n
83、使用CentOS常用命令檢視主機名
hostname
cat /etc/sysconfig/network
84、使用CentOS常用命令檢視開機執行時間
uptime
09:44:45 up 67 days, 23:32, …
85、掛載光碟機
掛載軟硬光區:mount -t /dev/fdxhdax /mnt/目錄名
其中::modos–FAT16;vfat–FAT32;ntfs–NTFS;光碟機–iso9660
支援中文名:mount -o iocharset=x /dev/hdax /mnt/目錄名(其中:x=cp936
掛載光碟機:mount -t auto /dev/cdrom /mnt/cdrom
掛載ISO檔案:mount -t iso9660 -o loop xxx.iso /path
解除掛載:umount /mnt/目錄名
解除所有掛載:umount -a
86、經常被用於管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
87、系統許可權及使用者授權相關命令(4個)
答案 :
chmod
改變檔案或目錄許可權。
chown
改變檔案或目錄的屬主和屬組。
chgrp
更改檔案使用者組。
umask
顯示或設定許可權掩碼。
88、檢視系統使用者登陸資訊的命令(7個)
whoami
顯示當前有效的使用者名稱稱,相當於執行id -un命令。
who
顯示目前登入系統的使用者資訊。
w
顯示已經登陸系統的使用者列表,並顯示使用者正在執行的指令。
last
顯示登入系統的使用者。
lastlog
顯示系統中所有使用者最近一次登入資訊。
users
顯示當前登入系統的所有使用者的使用者列表。
finger
查詢並顯示使用者資訊。
89、系統管理與效能監視命令(9個)
chkconfig
管理Linux系統開機啟動項。
vmstat
虛擬記憶體統計。
mpstat
顯示各個可用CPU的狀態統計。
iostat
統計系統IO。
sar
全面地獲取系統的CPU、執行佇列、磁碟 I/O、分頁(交換區)、記憶體、 CPU中斷和網路等效能資料。
ipcs
用於報告Linux中程序間通訊設施的狀態,顯示的資訊包括訊息列表、共享記憶體和訊號量的資訊。
ipcrm
用來刪除一個或更多的訊息佇列、訊號量集或者共享記憶體標識。
strace
用於診斷、除錯Linux使用者空間跟蹤器。我們用它來監控使用者空間程序和核心的互動,比如系統呼叫、訊號傳遞、程序狀態變更等。
ltrace
命令會跟蹤程序的庫函式呼叫,它會顯現出哪個庫函式被呼叫。
90、程序管理相關命令
bg、fg、jobs、kill、killall、pkill、crontab、ps、pstree
91、使用netstat命令去查TIME_WAIT狀態的連線狀態,檢視當前TCP連線的狀態和對應的連線數量:
答案 : netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
92、檢視cpu是32位還是64位
答案 : getconf LONG_BIT
93、linux和windows同步命令
答案 : 執行命令:ntpdate 192.168.1.32
每10分鐘linux就和服務端同步一次。
vi date.cron加入下面要執行的命令和要定期執行的時間
*/10 * * * * /usr/sbin/ntpdate 192.168.1.32
94、如何檢視http的併發請求數與其TCP連線數
答案 :
併發請求數。
ps aux|grep httpd|grep -v grep|wc -l
檢視httpd服務的TCP連線數
netstat -an|grep ":80 "|grep -v grep|wc -l
95、如何用tcpdump嗅探80埠的訪問看看誰最高?
答案 : tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}’ | sort | uniq -c | sort -nr |head -20
96、如何檢視/var/log/目錄下的檔案數?
答 :find /var/log -type f | wc -l
97、如何檢視linux系統每個IP的連線數?
netstat -n | awk ‘/^tcp/ {print $5}’ | awk -F: ‘{print $1}’ | sort |uniq -c |sort -rn
檢視系統tcp連線中各個狀態的連線數。
1
netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
檢視和本機23埠建立連線並狀態在established的所有ip
1
netstat -an |grep 23 |grep ESTA |awk ‘{print$5 “\n”}’ |awk ‘BEGIN {FS=":"} {print $1 “\n”}’ |sort |uniq
說明:內網Linux伺服器,以23 telnet連線服務為例
查詢連線到指定埠的客戶端IP
netstat -aon|grep 8096
檢視Web伺服器程序連線數:
netstat -antp | grep 80 | grep ESTABLISHED -c
查出哪個IP地址連線最多,將其封了。
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n
netstat -na|grep SYN|awk {print $5}|awk -F: {print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲|sort|uniq -c|s…NF]} END {for(a in S) print a, S[a]}’
說明:
SYN_RECV表示正在等待處理的請求數;
ESTABLISHED表示正常資料傳輸狀態;
TIME_WAIT表示處理完畢,等待超時結束的請求數。
檢視Nginx執行程序數
ps -ef | grep nginx | wc -l
返回的數字就是nginx的執行程序數,如果是apache則執行
ps -ef | grep httpd | wc -l
檢視Web伺服器(Nginx Apache)的併發請求數及其TCP連線狀態:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
netstat -n|grep ^tcp|awk ‘{print KaTeX parse error: Expected 'EOF', got '}' at position 3: NF}̲'|sort -nr|uniq…NF]} END {for(key in state) print key,“t”,state[key]}’
98、統計出apache的access.log中訪問量最多的5個IP
答 : cat access.log |awk ‘{print $1}’|uniq -c|sort -n |head 5
99、遠端桌面連線超出最大連線數
答 :伺服器預設為允許連線數為2個,如果登陸後忘記登出,而是直接關閉遠端桌面的話,伺服器識別此次登陸還是留在伺服器端的。
利用mstsc/console指令進行強行登陸了。開啟“執行”框,鍵入“mstsc/v:xxx.xxx.xxx.xxx(伺服器IP)/console”,即可強行登陸到遠端桌面了。
100、如何查詢系統中包含內容mongo的檔案,全部列印路徑
答 : grep -i “mongo” | wc -l
101、怎麼修改核心引數
答 :vi /etc/sysctl.conf 或者 vi /proc/sys
102、shell中在1-39內取隨機數
103、限制apache每秒新建連線數為 1,峰值為3
104、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行
105、怎麼把指令碼新增到系統服務裡,即用service來呼叫?
106、寫一個指令碼,實現批量新增20個使用者,使用者名稱為user01-20,密碼為user後面跟5個隨機字元
107、寫一個指令碼,實現判斷192.168.1.0/24網路裡,當前線上的IP有哪些,能Ping通則認為線上
108、如何讓history命令顯示具體時間?
答案 : history
export HISTTIMEFORMAT=’%F %T’
https://jingyan.baidu.com/article/a948d6512f3ad70a2dcd2ee2.html
109、mysql連線數太多怎麼辦?如何設定最大連線數?
答案 : 使用root登入mysql資料庫,並輸入密碼
mysql> mysql -u root -p
檢視下當前mysql資料的最大連線數:
mysql> show variables like ‘max_connections’;
設定最大連線數為5000
mysql> SET GLOBAL max_connections = 5000;
檢視是否設定成功。
mysql> SHOW VARIABLES LIKE “max_connections”;
退出mysql
mysql> exit;
110、統計80埠連線數
netstat -nat | grep -i “80” | wc -l
統計httpd協議連線數
ps -ef | grep httpd | wc -l
統計已連線上的,狀態為“established’
netstat -na | grep ESTABLISHED | wc -l
查出每個IP地址連線數
netstat -na | grep ESTABLISHED | awk ‘{print$5}’ | awk -F : ‘{print$1}’ |sort |uniq -c | sort -r
111、檢視Linux系統最大開啟檔案數限制
cat /proc/sys/fs/file-max
網路埠限制修改
在vi /etc/sysctl.conf中加上下面這一行
net.ipv4.ip_local_port_range = 1024 65000
sysctl修改核心引數馬上生效命令如下
sysctl -p
設定系統的連結數,通過vi /etc/security/limits.conf命令
112、linux如何掛在windows下的共享目錄
mount.cifs //192.168.1.3/server /mnt/server -o user=administrator,pass=123456
linux 下的server需要自己手動建一個 後面的user與pass 是windows主機的賬號和密碼 注意空格 和逗號
113、檢視http的併發請求數與其TCP連線狀態
netstat -n | awk ‘/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}’
還有ulimit -n 檢視linux系統最大的tcp連線,這裡預設1024,不修改這裡web伺服器修改再大也沒用。若要用就修改很幾個辦法,這裡說其中一個:
修改/etc/security/limits.conf
- soft nofile 10240
- hard nofile 10240
重啟後生效
114、用tcpdump嗅探80埠的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}’ | sort | uniq -c | sort -nr |head -5
115、檢視當前系統每個IP的連線數
ls /var/log/ -lR| grep “^-” |wc -l
116、檢視當前系統每個IP的連線數
netstat -n | awk ‘/^tcp/ {print $5}’| awk -F: ‘{print $1}’ | sort | uniq -c | sort -rn
http://blog.51cto.com/yuangeqingtian/1191651
117、shell下32位隨機密碼生成
cat /dev/urandom | head -1 | md5sum | head -c 32 >> /pass
將生成的32位隨機數 儲存到/pass檔案裡了
118、統計出apache的access.log中訪問量最多的5個IP
cat access_log | awk ’{print $1}’ | sort | uniq -c | sort -n -r | head -5
119、編寫指令碼實現以下功能
每天早上5點開始做備份
要備份的是/var/mylog裡所有檔案和目錄可以壓縮排行備份
備份可以儲存到別一臺器上192、168、1、2 FTP帳號 aaa 密碼 bbb
要示每天的備份檔案要帶有當天的日期標記
答案 :[[email protected] ~]#cat /root/mylogbak.sh
#!/bin/bash
#scripts for dirbakup and upload to ftp server.
#author by haojiu
#create by
bakdir=mylog
date=date +%F
cd /var
tar zcf KaTeX parse error: Expected group after '_' at position 9: {bakdir}_̲{date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129 #遠端ftp伺服器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF
rm -rf mylog_*.tar.gz #這步之前可以做一個判斷,判斷檔案上傳成功再執行rm,留給各位發揮吧。
新增crontab:
crontab -l
00 05 * * * /bin/bash /root/mylogbak.sh #每天早上5點開始執行備份指令碼
120、ps aux 中的VSZ代表什麼意思,RSS代表什麼意思
VSZ:虛擬記憶體集,程序佔用的虛擬記憶體空間
RSS:實體記憶體集,程序戰用實際實體記憶體空間
121、檢測並修復/dev/hda5fsck用來檢查和維護不一致的檔案系統。若系統掉電或磁碟發生問題,可利用fsck命令對檔案系統進行檢查。
用法:fsck -P /dev/hda5
122、忘記密碼時如何修改密碼
密碼修改操作步驟:1、重啟系統(reboot、init 6、shutdown -r now)
如何修改啟動時預設執行級別 :
[[email protected] ~]# vim /etc//inittab
進入檔案後將5改為3之後 , 儲存 , 重啟 。
123、如何檢測並修復/dev/hda5?
fsck用來檢查和維護不一致的檔案系統。若系統掉電或磁碟發生問題,可利用fsck命令對檔案系統進行檢查
124、介紹下Linux系統的開機啟動順序
載入BIOS–>讀取MBR–>Boot Loader–>載入核心–>使用者層init一句inittab檔案來設定系統執行的等級(一般3或者
5,3是多使用者命令列,5是介面)–>init程序執行rc.syninit–>啟動核心模組–>執行不同級別執行的指令碼程式–>執行/etc/rc.d/rc.local(本地執行服務)–>執行/bin/login,就可以登入了。
125、符號連結與硬連結的區別
符號連結,也就是軟連線 當做是 windows系統裡的 快捷方式。
硬連結 就好像是 又複製了一份,舉例說明:
ln 3.txt 4.txt 這是硬連結,相當於複製,不可以跨分割槽,但修改3,4會跟著變,若刪除3,4不受任何影響。
ln -s 3.txt 4.txt 這是軟連線,相當於快捷方式。修改4,3也會跟著變,若刪除3,4就壞掉了。不可以用了。
126、儲存當前磁碟分割槽的分割槽表
dd 命令是以個強大的命令,在複製的同時進行轉換
dd if=/dev/sda of=./mbr.txt bs=1 count=512
127、如何在文本里面進行復制、貼上,刪除行,刪除全部,按行查詢和按字母查詢?
以下操作全部在命令列狀態操作,不要在編輯狀態操作。
在文本里 移動到想要複製的行 按yy 想複製到哪就移動到哪,然後按P 就黏貼了
刪除行 移動到改行 按dd
刪除全部 dG 這裡注意G一定要大寫
按行查詢 :90 這樣就是找到第90行
按字母查詢 /path 這樣就是 找到path這個單詞所在的位置,文本里可能存在多個,多次查詢會顯示在不同的位置。
128、手動安裝grub
grub-install /dev/sda
修改核心引數
vi /etc/sysctl.conf 這裡修改引數
sysctl -p 重新整理後可用
129、在1-39內取隨機數
expr $[RANDOM%39] +1
RANDOM隨機數
%39取餘數範圍0-38
130、限制apache每秒新建連線數為1,峰值為3
每秒新建連線數 一般都是由防火牆來做,apache本身好像無法設定每秒新建連線數,只能設定最大連線:
iptables -A INPUT -d 172.16.100.1 -p tcp –dport 80 -m limit –limit 1/second -j ACCEPT
檢視apache當前併發訪問數 : netstat -an |grep ESTABLISHED |wc -l
檢視apache有多少個程序數 : ps aux |grep httpd|wc -l
統計httpd程序數 : ps -ef|grep httpd|wc -l
統計80埠連線數/當前所有80埠的請求總數 : netstat -nat|grep -i 80|wc -l
列印系統當前網路連結狀態 : netstat -an
apache 訪問日誌access.log 統計IP 和每個地址訪問的次數,按訪問量列出前10 名 : cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10
131、顯示/etc/inittab中以#開頭,且後面跟了一個或者多個空白字元,而後又跟了任意非空白字元的行
grep “#{1,}[]” /etc/inittab
132、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行
grep “:[0-9]{1}:” /etc/inittab
133、怎麼把指令碼新增到系統服務裡,即用service來呼叫?
在腳本里加入
#!/bin/bash
chkconfig: 345 85 15
description: httpd
然後儲存
chkconfig httpd –add 建立系統服務
現在就可以使用service 來 start or restart
134、寫一個指令碼,實現批量新增20個使用者,使用者名稱為user01-20,密碼為user後面跟5個隨機字元
#!/bin/bash
#description: useradd
for i in seq -f”%02g” 1 20
;do
useradd user
i-echo $RANDOM|md5sum|cut -c 1-5
”|passwd –stdinuser$i >/dev/null 2>&1
done
135、寫一個指令碼,實現判斷192.168.1.0/24網路裡,當前線上的IP有哪些,能ping通則認為線上
#!/bin/bash
for ip in seq 1 255
do
ping -c 1 192.168.1.$ip > /dev/null 2>&1
if [
ip UP
else
echo 192.168.1.$ip DOWN
fi
}&
done
wait
136、寫一個指令碼,判斷一個指定的指令碼是否是語法錯誤;如果有錯誤,則提醒使用者鍵入Q或者q無視錯誤並退出其它任何鍵可以通過vim開啟這個指定的指令碼
[[email protected] tmp]# cat checksh.sh
#!/bin/bash
read -p “please input check script-> ” file
if [ -f $file ]; then
sh -n $file > /dev/null 2>&1
if [ $? -ne 0 ]; then
read -p “You input $file syntax error,[Type q to exit or Type vim to edit]” answer
case $answer in
q | Q)
exit 0
;;
vim )
vim
file not exist”
exit 1
fi
137、寫一個指令碼,要求如何:
建立一個函式,能接受兩個引數:
1)第一個引數為URL,即可下載的檔案;第二個引數為目錄,即下載後儲存的位置;
2)如果使用者給的目錄不存在,則提示使用者是否建立;如果建立就繼續執行,否則,函式返回一個51的錯誤值給呼叫指令碼;
3)如果給的目錄存在,則下載檔案;下載命令執行結束後測試檔案下載成功與否;如果成功,則返回0給呼叫指令碼,否則,返回52給呼叫指令碼;
[[email protected] tmp]# cat downfile.sh
#!/bin/bash
url=$1
dir=$2
download()
{
cd $dir >> /dev/null 2>&1
if [
dir No such file or directory,create?(y/n)” answer
if [ “$answer” == “y” ];then
mkdir -p $dir
cd $dir
wget $url 1> /dev/null 2>&1
else
return “51”
fi
fi
if [ $? -ne 0 ]; then
return “52”
fi
}
download $url $dir
echo $?
138、寫一個指令碼,詳細需求如下:
1、建立一個函式,可以接受一個磁碟裝置路徑(如/dev/sdb)作為引數;在真正開始後面步驟之前提醒使用者有危險,並讓使用者選擇是否繼續;而後將此磁碟裝置上的所有分割槽清空(提示,使用命令dd if=/dev/zero of=/dev/sdb bs=512 count=1實現,注意其中的裝置路徑不要寫錯了;
如果此步驟失敗,返回67給主程式;
接著在此磁碟裝置上建立兩個主分割槽,一個大小為100M,一個大小為1G;如果此步驟失敗,返回68給主程式;
格式化此兩分割槽,檔案系統型別為ext3;如果此步驟失敗,返回69給主程式;
如果上述過程都正常,返回0給主程式;
2、呼叫此函式;並通過接收函式執行的返回值來判斷其執行情況,並將資訊顯示出來;
local Darray=(ls /dev/sd[a-z]
)
for i in
i” == “KaTeX parse error: Expected 'EOF', got '&' at position 7: 1” ]] &̲& Sd=i &&break
done
else
return66
fi
#當匹配成功,進入選擇,告訴使用者,是否繼續,輸錯的話進入無限迴圈,當用戶選擇Y,則清空目標分割槽,且跳出while迴圈
while :;do
read -p “Warning!!!This operation will clean $Sd data.Next=y,Quit=n [y|n]:” Choice
case