4.8網(wǎng)絡(luò)命令及實(shí)例項(xiàng)目
1.網(wǎng)絡(luò)中較重要的協(xié)議
1.DNS 域名解析協(xié)議
ARP 交換機(jī) 主機(jī)---MAC地址
路由器 主機(jī)---IP地址
DNS域名 域名---IP地址
- 47.75.85.161 IP太長(zhǎng) 起名為域名
www.baidu.com 域名
3.購(gòu)買(mǎi)自己的一個(gè)域名
根域名服務(wù)器 大多在國(guó)外
頂級(jí)域名服務(wù)器
com cn org edu等
公司商業(yè)組織 地區(qū)中國(guó)
萬(wàn)網(wǎng)
.vip
bj_xxxxx@163.com
阿里云為例
A記錄 www 網(wǎng)站 www.baidu.com記錄值IP地址x.x.x.x
DNS優(yōu)化 阿里云加速
百度云加速 css js html 預(yù)加載到服務(wù)器上CDN加速
2.企業(yè)真實(shí)的需求
1.hosts文件
2內(nèi)網(wǎng)DNS服務(wù)器
linux服務(wù)器 NDS
1)本地服務(wù)器解析
2)|---->主路由-->DNS-->公網(wǎng)IP
windows server 2008R2
3.常見(jiàn)的網(wǎng)絡(luò)命令
1.ping命令
ping域名DNS問(wèn)題
ping www.baidu.com無(wú)應(yīng)答DNS沒(méi)有配置 DNS有問(wèn)題
ping 公網(wǎng)IP
47.75.80.160
ping 網(wǎng)關(guān)
192.168.1.1
2.iftop 監(jiān)控網(wǎng)絡(luò)流量用的
linux服務(wù)器下用的 第三方的命令
yum install ifop-y
4.企業(yè)網(wǎng)絡(luò)出現(xiàn)問(wèn)題的排查流程
第一步 檢查硬件 網(wǎng)卡網(wǎng)線(水晶線) – 路由器 交換機(jī)
交換法
|--->網(wǎng)線、網(wǎng)卡
第二步 ping 網(wǎng)關(guān)(路由)
第三步 公網(wǎng)IP
第四步 DNS
第五步 ping 自己服務(wù)器地址
靜態(tài)路由項(xiàng)目
1.準(zhǔn)備3臺(tái)虛擬機(jī)
第一臺(tái)一塊網(wǎng)卡 10.0.0.11
第二臺(tái)兩塊網(wǎng)卡 10.0.0.12 192.168.0.12
第三臺(tái)一塊網(wǎng)卡 192.168.0.13
主機(jī)一與主機(jī)三需要更改網(wǎng)卡配置
主機(jī)二需要添加一塊網(wǎng)卡而且第二塊網(wǎng)卡沒(méi)有設(shè)置需要復(fù)制后更改網(wǎng)卡為192.168.0.12
主機(jī)二第二塊網(wǎng)卡與主機(jī)三網(wǎng)卡設(shè)置為L(zhǎng)AN區(qū)段192.168.0.0/24
2.在第一臺(tái)主機(jī)
從主機(jī)一 10.0.0.11 --->主機(jī)二--->192.168.0.12
跨網(wǎng)段不認(rèn)識(shí)
2 .1添加一條靜態(tài)路由信息
route add -net 192.168.0.0/24 gw 10.0.0.12
route -n 查看路由表
ping 192.168.0.12
主機(jī)一10.0.0.11與主機(jī)二第二塊網(wǎng)卡192.168.0.12連通
在第三臺(tái)主機(jī)
從主機(jī)二10.0.0.12--->主機(jī)三--->192.168.0.13
跨網(wǎng)段不認(rèn)識(shí)
2.2添加一臺(tái)靜態(tài)路由信息
route add -net 10.0.0.0/24gw 192.168.0.12
route -n 查看路由表
ping 10.0.0.12
主機(jī)三192.168.0.13與主機(jī)二第一塊網(wǎng)卡10.0.0.12連通
在第二臺(tái)主機(jī)
發(fā)現(xiàn)數(shù)據(jù)包在第二臺(tái)虛擬主機(jī)被丟包
配置虛擬主機(jī)二修改內(nèi)核轉(zhuǎn)發(fā)參數(shù),強(qiáng)制開(kāi)啟
echo “net.ipv4.ip_forward=1”>>/etc/sysctl.conf
sysctl -p 使命令生效
強(qiáng)制開(kāi)啟了第二臺(tái)主機(jī)的路由轉(zhuǎn)發(fā),現(xiàn)在第三臺(tái)虛擬主機(jī)已經(jīng)可以收到虛擬主機(jī)一的數(shù)據(jù)信息。
第三臺(tái)主機(jī)就能連上第二臺(tái)主機(jī)了
數(shù)據(jù)雙向傳輸OK
4.9shell編程基礎(chǔ)
因?yàn)閃eb集群架構(gòu)會(huì)用到Shell編程基礎(chǔ)
1、為什么要學(xué)習(xí)Shell編程?
Linux系統(tǒng)中會(huì)大量的使用Shell,工作中我們也需要自動(dòng)化實(shí)現(xiàn)業(yè)務(wù),
例如:自動(dòng)備份、監(jiān)控、自動(dòng)安裝服務(wù)。
Shell編程是Linux運(yùn)維人員必須要會(huì)的編程語(yǔ)言。最簡(jiǎn)單的編程語(yǔ)言。
編程也是運(yùn)維人員必須具備的本領(lǐng):
Shell、Python是運(yùn)維人員必須具備的本領(lǐng)
2、什么是Shell?
Shell就是一個(gè)命令解釋器(翻譯官),命令行的命令以及腳本都會(huì)通過(guò)shell解釋?zhuān)瑐鹘o操作系統(tǒng),處理后在輸出給用戶(hù)。
[root@oldboyedu ~]# tail -1 /etc/passwd
oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash #<==創(chuàng)建用戶(hù)時(shí),系統(tǒng)指定的翻譯官。
3、Shell的分類(lèi)
- Bourne shellBourne shell又包括Bourne shell (sh)、Korn shell (ksh)、Bourne Again Shell(bash)三種類(lèi)型。
- C shell
C shell又包括csh、tcsh兩種類(lèi)型。
C7支持的shell:
[root@oldboyedu ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash/bin
/sh是bash的軟連接
4、C7:默認(rèn)Shell
[root@oldboyedu ~]# echo $SHELL/bin/bash
5、什么是Shell腳本?
程序、命令放入文件里執(zhí)行,這個(gè)文件稱(chēng)之為Shell腳本文件。
工作中最多的編程寫(xiě)腳本,存放在文件里。
6、Shell變量:
a.全局變量(環(huán)境變量) 在整個(gè)系統(tǒng)中生效、一般是大寫(xiě)、系統(tǒng)中默認(rèn)就 存在一些這樣的變量,滿(mǎn)足系統(tǒng)和程序運(yùn)行的需求。
系統(tǒng)自帶的環(huán)境變量;
[root@oldboyedu ~]# echo $PS1
[[\e[34;1m]\u@[\e[0m][\e[32;1m]\H[\e[0m][\e[31;1m] \w[\e[0m]]\$
[root@oldboyedu ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboyedu ~]# echo $HOME
/root
[root@oldboyedu ~]# echo $SHELL
/bin/bash[root@oldboyedu ~]# echo $UID
0
自定義環(huán)境變量:
方法1
export OLDBOY="I am oldboy."
方法2:
OLDBOY="I am oldboy."
export OLDBOY
[root@oldboyedu ~]# export OLDBOY="I am oldboy."
[root@oldboyedu ~]# echo $OLDBOY
I am oldboy.
/etc/profile==>/.bash_profile===>/.bashrc===>/etc/bashrc
老男孩推薦以后把環(huán)境變量放入/etc/bashrc
[root@oldboyedu ~]# tail -1
/etc/bashrcexport OLDBOY="I am oldboy."
[root@oldboyedu ~]# . /etc/bashrc
[root@oldboyedu ~]# echo $OLDBOY #<==輸出一個(gè)變量?jī)?nèi)容就加$變量名
I am oldboy.安裝java服務(wù)的時(shí)候就會(huì)配置環(huán)境變量。
b.局部變量(普通變量)是編寫(xiě)Shell腳本最常用的變量。
變量名=值
a=1
變量名:數(shù)字、字母、下劃線,不能是數(shù)字開(kāi)頭。
oldboy、 A123a、_abc
= 等號(hào):賦值符,把什么東西給誰(shuí)。
賦值符號(hào)兩邊不能有空格。
值:東西,變量?jī)?nèi)容。
引用內(nèi)容的符號(hào):?jiǎn)我?hào)、雙引號(hào)、反引號(hào)、不加引號(hào)
[root@oldboyedu ~]# a=1
[root@oldboyedu ~]# echo $a
1
[root@oldboyedu ~]# y=$x+1
[root@oldboyedu ~]# echo $y
1+1
[root@oldboyedu ~]# y="y
1+1
[root@oldboyedu ~]# y='$x+1'
[root@oldboyedu ~]# echo $y
$x+1
[root@oldboyedu ~]# y=\$x+1
-bash: 1+1: command not found
[root@oldboyedu ~]# let y="y2
[root@oldboyedu ~]# a=1
[root@oldboyedu ~]# echo ${a}b
1b
7、表達(dá)式
[ 表達(dá)式 ]中括號(hào)表達(dá)式,中括號(hào)里面兩端必須要有空格。
字符串要加雙引號(hào)
[root@oldboyedu ~]# [ "a" = "b" ] && echo 1||echo 0
0
[ "a" = "b" ] && echo 1||echo 0
如果表達(dá)式成立,打印1,否則打印0.
[ "a" = "b" ] && echo 1 #跟屁蟲(chóng)。
如果表達(dá)式成立,打印1
[ "a" = "b" ] || echo 0 #杠精。
如果表達(dá)式成立是假的,打印0
取反:
[ ! "a" = "b" ] && echo 1
整數(shù)表達(dá)式:
> -gt
>= -ge
< -lt
<= -le
= -eq
不等于 -ne
[root@oldboyedu ~]# a=1
[root@oldboyedu ~]# [ $a -eq 2 ] && echo 1||echo 0
0
[root@oldboyedu ~]# [ $a -eq 1 ] && echo 1 || echo 0
1
1)整數(shù)表達(dá)式符 兩端必須要有空格
2)中括號(hào)里面兩端必須要有空格。
3)變量和比較的內(nèi)容,不需要加引號(hào)。
字符表達(dá)式:
-z 變量?jī)?nèi)容長(zhǎng)度為0時(shí),為真(表達(dá)式正確)。zero
-n 變量?jī)?nèi)容長(zhǎng)度【不】為0時(shí),為真(表達(dá)式正確)。not zero
a == a 字符串是否相同說(shuō)明:
1)字符串要加雙引號(hào)
例子:
[root@oldboyedu ~]# oldboy="I am oldboy"
[root@oldboyedu ~]# [ -z "$oldboy" ] && echo 1 || echo 0
0
[root@oldboyedu ~]# oldboy=""
[root@oldboyedu ~]# [ -z "$oldboy" ] && echo 1 || echo 0
1
[root@oldboyedu ~]# [ -n "$oldboy" ] && echo 1 || echo 0
0
[root@oldboyedu ~]# [ "test" == "host" ] && echo 1 || echo 0
0
[root@oldboyedu ~]# [ "test" == "test" ] && echo 1 || echo 0
1
8.shell判斷句:
如果...那么。
如果[ 你是潛力股
]那么 就和你談朋友
否則 拜拜
果如
if判斷句語(yǔ)法:
if [ 表達(dá)式 ]
then
命令
fi
如果[ 你是潛力股 ]
那么 就和你談朋友
果如
[root@oldboyedu ~]# cat test.sh
#!/bin/bash
a=10
if [ $a -gt 1 ]
then
echo 1
fi
如果[ 你是潛力股 ]
那么 就和你談朋友
否則 拜拜
果如
[root@oldboyedu ~]# cat test.sh
#!/bin/bash
a=1
if [ $a -gt 1 ]
then
echo 1
else
echo 0
fi
[root@oldboyedu ~]# cat test.sh
#!/bin/bash
boy="潛力股"
if [ "$boy" == "潛力股" ]
then
echo "先和你談?wù)勁笥?
else
echo "白白"
fi
[root@oldboyedu ~]# sh test.sh
先和你談?wù)勁笥?br> [root@oldboyedu ~]# cat judge_date.sh
if [ $(date +%w) -eq 6 ]
then
echo "一起去旅游吧"
else
echo "還是好好上課吧"
fi
[root@oldboyedu ~]# sh judge_date.sh
還是好好上課吧
[root@oldboyedu ~]# date
Tue Apr 9 11:33:13 CST 2019
[root@oldboyedu ~]# date -s '2019/4/13'
Sat Apr 13 00:00:00 CST 2019
[root@oldboyedu ~]# sh judge_date.sh
一起去旅游吧
實(shí)現(xiàn)多條件
[root@oldboyedu ~]# cat judge_date.sh
if [ $(date +%w) -eq 6 ] || [ $(date +%w) -eq 0 ]
then
echo "一起去旅游吧"
else
echo "還是好好上課吧"
fi
read命令 交互式讀取用戶(hù)輸入
-p "提醒:"
-t "多長(zhǎng)時(shí)間內(nèi)等待輸入"
[root@oldboyedu ~]# read -p "請(qǐng)輸入一句話(huà):" boy
請(qǐng)輸入一句話(huà):潛力股
[root@oldboyedu ~]# echo $boy
潛力股
相當(dāng)于boy="潛力股"
[root@oldboyedu ~]# cat test.sh
#!/bin/bash
read -p "請(qǐng)輸入你喜歡的男孩的一句話(huà):" boy
if [ "$boy" == "潛力股" ]
then
echo "先和你談?wù)勁笥?
else
echo "白白"
fi
[root@oldboyedu ~]# sh test.sh
請(qǐng)輸入你喜歡的男孩的一句話(huà):我沒(méi)錢(qián)
白白
[root@oldboyedu ~]# sh test.sh
請(qǐng)輸入你喜歡的男孩的一句話(huà):潛力股
先和你談?wù)勁笥?br> [root@oldboyedu ~]# cat test.sh
#!/bin/bashread
-p "請(qǐng)輸入你喜歡的男孩的一句話(huà):" boy
if [ "$boy" == "潛力股" ]
then
echo "先和你談?wù)勁笥?
elif [ "$boy" == "老爸是李剛" ]
then
echo "直接嫁給你"
elif [ "$boy" == "二環(huán)內(nèi)有套房" ]
then
echo "立馬領(lǐng)證"
else
echo "白白"
fi
特殊位置變量:
$1 腳本文件的第一個(gè)參數(shù)賦值給$1
$2 腳本文件的第二個(gè)參數(shù)賦值給$2
[root@oldboyedu ~]# cat t.shecho $1 $2
[root@oldboyedu ~]# sh t.sh oldboy oldgir
loldboy oldgirl #<==oldboy就是$1輸出的結(jié)果,oldgirl就是$2輸出的結(jié)果。
[root@oldboyedu ~]# cat com_num.sh
#!/bin/sh
#read -p "請(qǐng)輸入兩個(gè)整數(shù):" a b
a=$1
b=$2
if [ $a -gt $b ]
then
echo "$a>$b"
elif [ $a -eq $b ]
then
echo "$a=$b"
else
echo "$a<$b"
fi
[root@oldboyedu ~]# sh com_num.sh 2 3
2<3
[root@oldboyedu ~]# sh com_num.sh 2 2
2=2
[root@oldboyedu ~]# sh com_num.sh 3 2
3>2
9.for循環(huán)
for n in 取值列表
do 執(zhí)行命令
done
[root@oldboyedu ~]# cat for1.sh
for n in 1 2 3 4 5
do
echo $n
done
[root@oldboyedu ~]# sh for1.sh
1
2
3
4
5
[root@oldboyedu ~]# sh -x for1.sh
+ for n in 1 2 3 4 5
+ echo 1
1
+ for n in 1 2 3 4 5
+ echo 2
2
+ for n in 1 2 3 4 5
+ echo 3
3
+ for n in 1 2 3 4 5
+ echo 4
4
+ for n in 1 2 3 4 5
+ echo 5
5
[root@oldboyedu ~]# cat for1.sh
for n in {1..5}
do
echo $n
done
[root@oldboyedu ~]# sh for1.sh
1
2
3
4
5
打印254個(gè)IP 10.0.0.1---10.0.0.254
[root@oldboyedu ~]# cat for1.sh
for n in {1..254}
do
echo "10.0.0.$n"
done書(shū)寫(xiě)腳本習(xí)慣:
1.創(chuàng)建文件以.sh結(jié)尾。
2.腳本開(kāi)頭第一行 寫(xiě)#!/bin/bash ==>腳本內(nèi)容由誰(shuí)解釋。
4.10
比較:
diff vimdiff
[root@oldboyedu ~]# cp /etc/passwd{,.ori}
備份好處:
1、恢復(fù)。
2、比較、檢查。
[root@oldboyedu ~]# diff /etc/passwd{,.ori}
32c32
< #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
> oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
[root@oldboyedu ~]# diff /etc/passwd /etc/passwd.ori
32c32
< #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
> oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
rpm命令全稱(chēng)是Red Hat Package Manager(Red Hat包管理器),幾乎所有的Linux發(fā)行版本都使用這種形式的命令管理、安裝、更新和卸載軟件。
概括地說(shuō),rpm命令有五種基本功能(不包括創(chuàng)建rpm包):安裝、卸載、升級(jí)、查詢(xún)和驗(yàn)證。
[root@oldboyedu ~]# mount /dev/cdrom /mnt
mount: no medium found on /dev/sr0
[root@oldboyedu ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboyedu ~]# cd /mnt/
[root@oldboyedu /mnt]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@oldboyedu /mnt]# cd Packages/
需要很多依賴(lài)。
[root@oldboyedu /mnt/Packages]# rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
Preparing... ################################# [100%]
package dos2unix-6.0.3-7.el7.x86_64 is already installed
[root@oldboyedu /mnt/Packages]# rpm -qa|grep tree
tree-1.6.0-10.el7.x86_64
[root@oldboyedu /mnt/Packages]# rpm -qa tree
tree-1.6.0-10.el7.x86_64
[root@oldboyedu ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@oldboyedu ~]# rpm -qf /sbin/ifconfig
net-tools-2.0-0.24.20131004git.el7.x86_64
yum命令:
幫我們?cè)趓pm安裝時(shí)解決軟件包依賴(lài),背后還是使用rpm,不需要直接使用rpm了
讓安裝軟件更智能了。底層還是rpm在工作。
yum主要用于自動(dòng)安裝、升級(jí)rpm軟件包,它能自動(dòng)查找并解決rpm包之間的依賴(lài)關(guān)系。
[root@oldboyedu ~]# yum grouplist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
[root@oldboyedu ~]# yum groupinstall "File and Print Server"
[root@oldboyedu ~]# yum list tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
tree.x86_64 1.6.0-10.el7 @base
[root@oldboyedu ~]# yum install tree -y
根據(jù)命令或者配置等的路徑查屬于哪個(gè)包
[root@oldboyedu ~]# yum provides /etc/my.cnf
[root@oldboyedu ~]# yum provides /sbin/ifconfig
Linux系統(tǒng)如何安裝軟件?
1、rpm安裝簡(jiǎn)單
快。依賴(lài)多,解決依賴(lài)?yán)щy繁瑣。
2、yum安裝
簡(jiǎn)單快,自動(dòng)解決依賴(lài)。不能選擇軟件版本或軟件存放路徑。
3、編譯安裝(源碼編譯)
慢 復(fù)雜 需要GCC編譯器,可以自定義安裝(版本、軟件路徑)
4、將源碼制作成rpm,然后放到y(tǒng)um倉(cāng)庫(kù),實(shí)現(xiàn)yum自動(dòng)安裝。
一次性慢 復(fù)雜,安裝快,可以自定義安裝(版本、軟件路徑)制作RPM YUM倉(cāng)庫(kù)搭建
chattr命令:
[root@oldboyedu ~]# chattr +i /etc/passwd #<==鎖定文件不能刪除,不能修改[root@oldboyedu ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@oldboyedu ~]# lsattr /etc/hosts
---------------- /etc/hosts
[root@oldboyedu ~]# cp /etc/passwd{,.ori}
[root@oldboyedu ~]# rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted
[root@oldboyedu ~]# echo ddd > /etc/passwd
-bash: /etc/passwd: Permission denied
[root@oldboyedu ~]# useradd littleboy
useradd: cannot open /etc/passwd
chattr -i /etc/passwd #<==解鎖文件。
給重要文件上鎖
[root@oldboyedu ~]# chattr +a oldboy.txt
[root@oldboyedu ~]# rm -f oldboy.txt
rm: cannot remove ‘oldboy.txt’: Operation not permitted
[root@oldboyedu ~]# echo dddd >>oldboy.txt
[root@oldboyedu ~]# echo dddd >>oldboy.txt
4.11
第 0 章 計(jì)算機(jī)硬件與組成基礎(chǔ)
- 運(yùn)維人員的三大重要職責(zé)是什么?
企業(yè)數(shù)據(jù)不丟失服務(wù)器
7*24小時(shí)不宕機(jī)
用戶(hù)體驗(yàn)良好 - 衡量服務(wù)器尺寸的單位是什么?
U 1U=4.45cm - 互聯(lián)網(wǎng)企業(yè)常見(jiàn)的服務(wù)器品牌以及型號(hào)有哪些?
戴爾dell 惠普HP IBM 浪潮 華為 聯(lián)想
Dell服務(wù)器
1U的主流型號(hào) 2U的主流型號(hào)
1850.1950 2850.2950
R410.R610 R710
R420/430.R620/630 R720/R730 - 計(jì)算機(jī)硬件內(nèi)存的特點(diǎn)有哪些?
讀取快
直接與CPU相連,來(lái)滿(mǎn)足CPU高速運(yùn)算的需求
存儲(chǔ)容量小及斷電后不保存信息 - 簡(jiǎn)述程序、進(jìn)程和守護(hù)進(jìn)程之間的區(qū)別?
程序:放在硬盤(pán)中的代碼文件
進(jìn)程:在運(yùn)行中的程序
守護(hù)進(jìn)程:為執(zhí)行某一項(xiàng)任務(wù)而持續(xù)運(yùn)行的進(jìn)程 - 簡(jiǎn)述 buffer 和 cache 區(qū)別?
寫(xiě)入緩沖區(qū)(buffer)
讀取緩存區(qū)(cache) - 什么是遠(yuǎn)程控制卡,作用是什么?
可以遠(yuǎn)程管理服務(wù)器的工具遠(yuǎn)程管理服務(wù)器 - 磁盤(pán)常見(jiàn)的接口有哪幾種?
SATA SSD SAS SCSI IDE - Raid 級(jí)別中的 0 和 1 分別有什么特點(diǎn)?
RAID 0 多塊盤(pán)合成一塊盤(pán) 容量、性能都是兩塊之和冗余為0
RAID 1 兩塊盤(pán)合成一塊盤(pán) 容量、性能都以最小的盤(pán)為準(zhǔn)100%冗余
第1章 Linux 系統(tǒng)介紹與環(huán)境搭建準(zhǔn)備
- Linux 發(fā)展中三個(gè)重要人物及其貢獻(xiàn)?
斯托曼自由軟件與GNU發(fā)起人GPL協(xié)議
譚邦寧Minix開(kāi)發(fā)者
linus linux之父 - 簡(jiǎn)述 GNU 是什么?
GNU is Not Unix 革奴計(jì)劃 建立一個(gè)完全自由的可移植的類(lèi)Unix系統(tǒng) - GPL 協(xié)議核心內(nèi)容有哪些?
通用公共許可保證任何人有共享和修改自由軟件的自由,任何人都有權(quán)取得、修改和重新發(fā)布自由軟件的源代碼的權(quán)利,但都必須給出源代碼。 - 常見(jiàn)的 Linux 發(fā)行版本有哪些?
RedHat Fedora Centos Debian Ubuntu - 簡(jiǎn)述 RedHat 和 CentOS 之間的區(qū)別?
掉RedHat的收費(fèi)組件,重新編譯添加新的logo后就是CentOSRedHat不再遵循GPL協(xié)議,成為收費(fèi)產(chǎn)品(但仍開(kāi)源)。 - 簡(jiǎn)述 RedHat 和 Fedora 系統(tǒng)之間的區(qū)別?
Fedora是RedHat的一個(gè)分支RedHat有新功能、新實(shí)驗(yàn)在Fedora上試用成功才在RedHat上發(fā)布 - 32 位系統(tǒng)和 64 位系統(tǒng)之間的區(qū)別?
1).設(shè)計(jì)初衷不同
2).要求配置不同
3).運(yùn)算速度不同
4).尋址能力不同
5).應(yīng)用領(lǐng)域不同 - 簡(jiǎn)述 Linux 系統(tǒng)有哪些優(yōu)秀的特點(diǎn)?
是開(kāi)放源代碼的程序軟件,可自由修改。Unix系統(tǒng)兼容,具備幾乎所有Unix的優(yōu)秀特性可自由傳播,無(wú)任何商業(yè)版權(quán)制約適合Intel等x86cpu系列架構(gòu)的計(jì)算機(jī)
第2章 企業(yè)級(jí) CentOS7.6 操作系統(tǒng)安裝
- 請(qǐng)簡(jiǎn)述 Linux 系統(tǒng)常見(jiàn)的幾種分區(qū)及其作用?
普通分區(qū) /boot 1024 M swap 內(nèi)存大于8G給8G小于8G給內(nèi)存的1.5倍 /給剩余所有
存儲(chǔ)器分區(qū)/boot 1024 M swap 內(nèi)存大于8G給8G小于8G給內(nèi)存的1.5倍 /給100-200G剩余的/data
data可以任意名字
門(mén)戶(hù)網(wǎng)站分區(qū)/boot 1024 M swap 內(nèi)存大于8G給8G小于8G給內(nèi)存的1.5倍 /給100-200G剩余的保留
將來(lái)誰(shuí)需要誰(shuí)就去拿 - 請(qǐng)描述企業(yè)中 Linux 系統(tǒng)中不同分區(qū)方式及其應(yīng)用場(chǎng)景?
- 簡(jiǎn)述 Vmware 虛擬機(jī)中虛擬網(wǎng)卡有哪三種連接方式?
橋接模式
NAT模式
僅主機(jī)模式 - 簡(jiǎn)述橋接模式和 NAT 模式之間的區(qū)別?
NAT模式相當(dāng)于主機(jī)時(shí)一個(gè)路由器虛擬機(jī)是建立在主機(jī)之上的橋接模式是建立的虛擬機(jī)和主機(jī)是同等的存在會(huì)拖慢網(wǎng)速 - 如何更改網(wǎng)卡默認(rèn)名稱(chēng)為 eth0 的形式?
加載界面輸入 net.ifnames=0 biosdevname=0
第3章 遠(yuǎn)程連接管理 Linux 實(shí)踐 - 常見(jiàn)的遠(yuǎn)程連接 Linux 的工具有哪些?
xshell,secureCRT,putty,ssh - 遠(yuǎn)程連接工具采用的是什么協(xié)議,默認(rèn)端口號(hào)是多少?
SSH
默認(rèn)22端口 - 簡(jiǎn)述遠(yuǎn)程連接工具連接不上虛擬機(jī)的故障排查思路?
服務(wù)端運(yùn)行。
客戶(hù)端ping
客戶(hù)端檢查服務(wù) IP端口別錯(cuò),就是防火墻問(wèn)題
xshell連接 - 啟動(dòng) sshd 服務(wù)的命令是什么?
CentOS6:/etc/init.d/sshd restart
service sshd restart
CentOS7:systemctl restart sshd - 常見(jiàn)的無(wú)法遠(yuǎn)程連接服務(wù)器的原因有哪些?
服務(wù)端或客戶(hù)端網(wǎng)卡、IP端口,進(jìn)程啟動(dòng)不正確
物理鏈路有問(wèn)題
對(duì)方?jīng)]有提供服務(wù)
防火墻未關(guān)閉 - 查看網(wǎng)卡 ip 的命令有哪些?
ifconfig
ip all - 如何測(cè)試服務(wù)器能否連上互聯(lián)網(wǎng)?
ping www.oldboyedu.com
ping 203.81.19.1 通的 但是ping www.oldboyedu.com不通。
如果網(wǎng)站沒(méi)問(wèn)題就是DNS問(wèn)題
[root@oldboyedu /opt]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
ping 10.0.0.254 自身網(wǎng)關(guān) - 什么是快照?
相當(dāng)于一個(gè)備份 存儲(chǔ)點(diǎn) - Centos7 中如何修改默認(rèn)網(wǎng)卡命名規(guī)則?
vim /etc/sysconfig/network-scripts/ifcfg-eth0
第4章 Linux 系統(tǒng)命令行入門(mén)基礎(chǔ)
- 請(qǐng)描述命令行提示符的各組成部分含義?
[root@oldboyedu /opt]#
用戶(hù)名 分隔符 主機(jī)名 路徑 提示符 - 對(duì)于不會(huì)使用的命令如何查詢(xún)幫助?
man
--help - Linux 系統(tǒng)關(guān)機(jī)命令有哪些?
poweroff halt shutwork -h init 0 - Linux 系統(tǒng)重啟命令有哪些?
reboot shutdown -r init 6 - Linux 系統(tǒng)普通命令和內(nèi)置命令有什么區(qū)別?
普通文件存放在系統(tǒng)文件里內(nèi)置命令存放在bash解釋器里 - 請(qǐng)寫(xiě)出在 Xshell 命令行模式下你所知道的快捷鍵命令?
Tab至少輸入兩次
ctrl+a光標(biāo)移動(dòng)到行首的位置;
ctrl+e光標(biāo)移動(dòng)到行尾的位置;
Ctrl+insert 復(fù)制命令行內(nèi)容
Shift+insert 粘貼命令行內(nèi)容
Ctrl+c中斷正在執(zhí)行的任務(wù)
Ctrl+d退出當(dāng)前x shell命令還可以退出x shell
Ctrl+z暫停正在運(yùn)行的服務(wù)
Crtl+l清屏;
ctrl+s鎖屏;
ctrl+q解鎖;
第5章 Linux 文件及目錄管理命令基礎(chǔ)
- 創(chuàng)建一個(gè)/oldboy 目錄。
mkdir oldboy - 切換目錄到/oldboy 下。
cd oldboy - 查看當(dāng)前路徑所在位置。
pwd - 在上述 oldboy 目錄下創(chuàng)建一個(gè) oldgirl.txt 文件。
cd oldboy
touch oldgirl.txt - 通過(guò)一條命令同時(shí)創(chuàng)建 oldboy1,oldboy2 兩個(gè)目錄。
mkdir oldboy1 oldboy2 - 把/oldboy/oldgirl.txt 文件復(fù)制到/opt 下。
cp /oldboy/oldgirl.txt /opt - 查看當(dāng)前/opt 目錄下有哪些文件。
ls -l /opt - 把/oldboy/oldgirl.txt 再次移動(dòng)到/opt/下并且沒(méi)有確認(rèn)提示。
\mv /oldboy/oldgirl.txt /opt/ - 把/oldboy/oldgirl.txt 文件刪除并且不提示。
\rm -f /oldboy/oldgirl.txt - 把/oldboy/目錄刪除并且不提示。
\rm -r /oldboy/
第6章 Linux 目錄文件與系統(tǒng)啟動(dòng)知識(shí)
- 如何在 Vmware 下的 Linux 系統(tǒng)中看到 Linux 系統(tǒng) ISO 文件鏡像中文件?
mount /dev/cdrom /mnt - 配置網(wǎng)卡信息時(shí)需要修改那個(gè)文件?
/etc/sysconfig/network-scripts/ifcfg-eth0 - 請(qǐng)解釋下列目錄的作用
根下的目錄 生產(chǎn)中常用的核心文件
/bin 二進(jìn)制命令相關(guān)
/etc/sysconfig/network-scripts/ifcfg-eth0 網(wǎng)卡配置文件
/boot 系統(tǒng)內(nèi)核及引導(dǎo)程序
/etc/resolv.conf 客戶(hù)端DNS解析
/dev Device設(shè)備文件所在目錄
/etc/hostname(CentOS7 特有) c7主機(jī)名配置文件
/etc 二進(jìn)制軟件包配置文件所在路徑
/etc/sysconfig/network(CentOS6 及以前特有) C6主機(jī)名配置文件
/home 普通用戶(hù)的家目錄
/etc/hosts 系統(tǒng)本地的DNS解析文件/proc 虛擬的文件系統(tǒng),存放進(jìn)程和內(nèi)核信息的目錄。
/etc/fstab 開(kāi)機(jī)自動(dòng)掛載文件
/root 管理的家目錄
/etc/rc.local 開(kāi)機(jī)自啟動(dòng)文件
/sbin 管理員命令所在目錄
/etc/redhat-release redhat內(nèi)核版本號(hào)
/tmp 臨時(shí)文件所在目錄
/etc/sysctl.conf 系統(tǒng)本地的DNS解析文件
/usr 第二層次目錄
/etc/systemd/system(CentOS7 特有)
/var 可變化的數(shù)據(jù)
/usr/lib/systemd/system(CentOS7 特有)
第7章 Linux 文件過(guò)濾及內(nèi)容編輯處理
- vim 編輯器中的不同模式下的命令有哪些?
普通模式:移動(dòng)光標(biāo):
行尾 $
行首 0
文件尾部 G
文件開(kāi)頭 gg
到指定行 阿拉伯?dāng)?shù)字gg
搜索與替換向下搜索 /3306 繼續(xù)搜 按n,反向搜N
向上搜索 ?80 繼續(xù)搜 按n,反向搜N
:%s###g 替換
刪除單行 dd
(剪切)刪除多行 ndd n
用任意數(shù)字替換撤銷(xiāo) u
單行復(fù)制 yy
多行復(fù)制 nyy n用任意數(shù)字替換
粘貼 p
進(jìn)入編輯模式命令i
插入A
追加 行尾插入o
下一行開(kāi)頭插入O
上一行開(kāi)頭插入a
光標(biāo)下一個(gè)字符插入
命令行模式
:wq 退出并保存
:wq! 退出并強(qiáng)制保存,“!”為強(qiáng)制的意思
:q! 強(qiáng)制退出,不保存
:set nu 顯示行號(hào)
:set nonu 與set nu相反,取消行號(hào) - 請(qǐng)寫(xiě)出給文件增加內(nèi)容的方法(不少于三種)?
> >> vim - 怎樣實(shí)現(xiàn)在目前文件內(nèi)容的基礎(chǔ)上追加“I am oldboy”內(nèi)容到結(jié)尾?
>> - 按行插入數(shù)字序列 1-30 到文件/oldboy.txt 中?
seq 30 >/oldboy.txt - 如何只顯示上述/oldboy.txt 中 10-20 行的內(nèi)容。
grep -A10 10 oldboy.txt - 假設(shè)一個(gè)文件 test.txt 中有如下內(nèi)容:
oldboy
Oldgirl
Oldboyedu
如何實(shí)現(xiàn)只打印出帶有 Oldboyedu 的行?
tail -1 test.txt
8.如何將 test.txt 中所有的 old(含大寫(xiě))都替換成 young?
grep -i "old" test.txt |sed -rn "s#old|Old#young#gp"
9.如何實(shí)現(xiàn)無(wú)論正確輸出結(jié)果還是錯(cuò)誤報(bào)錯(cuò)都不提示統(tǒng)一追加到/tmp/error.log 文件中?
echo "I am oldboy" >/tmp/error.log 2>/tmp/error.log
第8章 Linux 文件類(lèi)型及查找命令實(shí)踐
- 如何查看文件屬性?
ls -lhi - 簡(jiǎn)述 d、b、c、s、l 分別代表什么類(lèi)型文件?
目錄 block 字符文件 套接字 軟連接 - 如何查看文件的類(lèi)型?
file - 如何查看一個(gè)文件的全路徑?
whereis - 當(dāng)前有一個(gè)名為‘oldboy.txt’的文件,已知它的大小為 12M,如何查找它所在的位置?
find / -type f -name "oldboy.txt" - 將查找到的 oldboy.txt 打包成tar文件并以當(dāng)前日期命名,并檢查該壓縮包中包含的內(nèi)容?
tar zcf $(date +%F).tar.gz oldboy.txttar tf $(date +%F).tar.gz - 將 oldboy.tar.gz 解壓到指定的/tmp 目錄?
tar zxf -C oldboy.tar.gz /tmp - 當(dāng)前系統(tǒng)中時(shí)間不正確,如何修改?
date -s " 2019/4/11"
第9章 Linux 文件核心屬性知識(shí)
- Linux 系統(tǒng)中用戶(hù)分為哪幾類(lèi),都有作用?
管理用戶(hù) 管理主機(jī)
虛擬用戶(hù) 不能登錄,完成指定任務(wù)的用戶(hù)
普通用戶(hù) 可登錄用著安全 - 簡(jiǎn)述 inode 和 block 的含義?
inode 索引節(jié)點(diǎn)是文件的身份標(biāo)識(shí)
block 塊 存放文件內(nèi)容 - 如何查看文件對(duì)應(yīng)的 inode?
df -i - 簡(jiǎn)述軟硬鏈接之間的區(qū)別?
軟鏈接占用inode 可跨文件、目錄操作刪除軟連接源文件無(wú)影響,
刪除源文件軟連接失效
硬鏈接不占用inode可跨文件,不可跨目錄操作刪除硬鏈接源文件無(wú)影響,
刪除源文件硬鏈接可以接著當(dāng)作源文件用 - 如何創(chuàng)建文件的軟連接和硬鏈接?
軟鏈接 ln -s
硬鏈接 ln - 請(qǐng)簡(jiǎn)述 mtime,ctime,atime 分別代表什么含義?
atime 是在讀取文件或者執(zhí)行文件時(shí)更改的
mtime 是在寫(xiě)入文件時(shí)隨文件內(nèi)容的更改而更改的。
ctime 是在寫(xiě)入文件、更改所有者、權(quán)限或鏈接設(shè)置時(shí)隨 Inode 的內(nèi)容更改而更改的。 - 企業(yè)生產(chǎn)環(huán)境中,在目錄中創(chuàng)建文件提示磁盤(pán)滿(mǎn)了,實(shí)際 df –h 查看并沒(méi)有滿(mǎn),如何解決?
inode 被占滿(mǎn)了 小文件太多 刪除些不太重要的小文件
第10章 Linux 通配符與特殊符號(hào)知識(shí)應(yīng)用實(shí)踐
- 解釋以下通配符的作用 符號(hào)名稱(chēng) 作用
* 匹配所有
{} 生成序列
? 匹配單個(gè)字符
[a-z] 匹配任意一個(gè)字符
[!a-z] 不匹配任意一個(gè)字符
$ 普通用戶(hù)提示符
! 取反
&& 和 交集
|| 或 并集 - 簡(jiǎn)述單引號(hào),雙引號(hào)和反引號(hào)之間的區(qū)別和作用?
'' 單引號(hào) 所見(jiàn)即所得
"" 雙引號(hào) 引用字符串 解析變量、命令,推薦使用
``反引號(hào) 引用命令,解析命令
第11章 Linux 正則表達(dá)式與三劍客知識(shí)應(yīng)用實(shí)踐
- 簡(jiǎn)述 Linux 正則表達(dá)式和 Linux 命令行(Bash)通配符之間的區(qū)別?
在文本過(guò)濾工具里,都是用正則表達(dá)式,比如像awk,sed,等,
正則表達(dá)式是針對(duì)文件的內(nèi)容的而通配符多用在文件名上,比如查找find,ls,cp,等等 - 已知 oldgirl.txt 內(nèi)容下:
[root@oldboyedu ~/test]# cat oldgirl.txt
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.commy qq num is 49000448.
請(qǐng)完成如下作答(請(qǐng)盡量思考多種方法)
問(wèn)題 1:輸出 oldboy.txt 的第 2-3 行內(nèi)容?
sed -n '2,3p' oldboy.txt
問(wèn)題 2:過(guò)濾出含有 oldboy 字符串的行。
grep 'oldboy' oldboy.txt
問(wèn)題 3:刪除含有 oldboy 字符串的行。
grep -v 'oldboy' oldboy.txt
問(wèn)題 4:將文件中的 oldboy 字符串全部替換為 oldgirl。
sed -n 's#oldboy#oldgirl#gp' oldboy.txt
問(wèn)題 5:將文件中的 oldboy 字符串全部替換為 oldgirl,同時(shí)將 QQ 號(hào)碼 49000448 改為 31333741。
sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldboy.txt
問(wèn)題 6:在 oldboy.txt 文件的第 2 行后追加文本。
sed "2a 追加文本" oldboy.txt
問(wèn)題 7:在 oldboy.txt 文件的第 2 行插入文本。
sed "2i 插入文本" oldboy.txt
問(wèn)題 8:取文件的第一列和最后一列內(nèi)容,并打印行號(hào)。
awk '{print NR,$1,$NF}' oldgirl.txt
問(wèn)題 9:過(guò)濾文件中第一列內(nèi)容,匹配oldboy 的字符串,把符合的行的最后一列輸出。
grep "oldboy" oldgirl.txt |awk '{print $NF}'
3.取出 Linux 中執(zhí)行 ifconfig eth0 后對(duì)應(yīng)的 IP 地址(只能輸出 IP 地址)。
ifconfig eth0|awk -F "[ ]+" 'NR==2{print $3}'
第12章 Linux 系統(tǒng)權(quán)限知識(shí)及應(yīng)用實(shí)踐
- 簡(jiǎn)述 Linux 系統(tǒng)權(quán)限的 rwx-字符對(duì)應(yīng)的含義?
r 可讀
w 可寫(xiě)
x 可執(zhí)行
- 無(wú)權(quán)限 - 什么是文件所屬主和所屬組?
屬主 屬于管理員用戶(hù)
屬組 屬于哪個(gè)用戶(hù)組 - 將以下權(quán)限翻譯為 8 進(jìn)制數(shù)字
rwxrw-r-- 764
rw------- 600
rwxr-xr-x 755
rw-r--r-- 644 - 如何修改 oldboy 文件所屬用戶(hù)為 sa?
chown -R sa. oldboy - 如何修改文件的權(quán)限為 rw-r-xr-x?
chmod u=rw-,g=r-x,o=r-x - 什么是 umask?作用是什么?
默認(rèn)缺省權(quán)限 022 默認(rèn)最大權(quán)限去減的 - 如何鎖定一個(gè)文件禁止其被刪除和被修改?
chattr 設(shè)置文件屬性
+i 鎖定文件不能刪除,不能修改
-i 解鎖
+a 只能追加不能刪除
-a 解鎖 - 簡(jiǎn)述 suid 和 sticky 分別代表什么含義,有什么功能?
suid(setuid)位通過(guò)s字符標(biāo)識(shí)基本權(quán)限x位為執(zhí)行某一個(gè)任務(wù)給普通用戶(hù)以root用戶(hù)的權(quán)限
sticky(粘滯位)
第13章 Linux 系統(tǒng)定時(shí)任務(wù) Crond 服務(wù)應(yīng)用實(shí)踐
- 什么是定時(shí)任務(wù)及其企業(yè)應(yīng)用場(chǎng)景?
周期性的執(zhí)行任務(wù)計(jì)劃的軟件,Linux定時(shí)任務(wù)的常用軟件crond 生產(chǎn)頻率要求高的 - 編寫(xiě)定時(shí)任務(wù)的格式是什么樣的?
* * * * * /bin/sh (command to be executed)
分 時(shí) 日 月 周 命令路徑 文件 - 每天中午十二點(diǎn)到一點(diǎn)每隔 5 分鐘讓系統(tǒng)提醒我該吃午飯了如何編寫(xiě)?
5 12-13 * * * /bin/sh 該吃飯了 - 當(dāng)我們編寫(xiě)了定時(shí)任務(wù)后總提示我們收到郵件,這是什么原因?該如何解決?
定時(shí)任務(wù)沒(méi)有追加到&>/dev/null - 要每天凌晨 5 點(diǎn)執(zhí)行一個(gè)重啟 tomcat 服務(wù)腳本 tomcat.sh 該如何編寫(xiě)定時(shí)任務(wù),應(yīng)該注意哪些?
00 5 * * * /bin/sh tomcat.sh
命令應(yīng)接全路徑 - 企業(yè)生產(chǎn)環(huán)境中,在目錄中創(chuàng)建文件提示“no space left on device”,實(shí)際 df –h 查看并沒(méi)有滿(mǎn), 原因可能是由哪些服務(wù)導(dǎo)致的?如何解決?
inode 被占滿(mǎn)了 小文件太多 刪除些不太重要的小文件 - 定時(shí)任務(wù)書(shū)寫(xiě) 12 個(gè)要領(lǐng)。
要領(lǐng)1:為定時(shí)任務(wù)規(guī)則加必要的注釋
要領(lǐng)2:所有的定時(shí)任務(wù)盡量都以腳本的形式執(zhí)行
要領(lǐng)3:在執(zhí)行的Shell腳本前加上/bin/sh
要領(lǐng)4:定時(shí)任務(wù)中命令或腳本的結(jié)尾加>/dev/null 2>&1
要領(lǐng)5:在指定用戶(hù)下執(zhí)行相關(guān)定時(shí)任務(wù)
要領(lǐng)6:生產(chǎn)任務(wù)計(jì)劃程序中不要隨意打印輸出信息,有輸出的想法去掉。
要領(lǐng)7:定時(shí)任務(wù)執(zhí)行的腳本要存放到規(guī)范路徑下
要領(lǐng)8:配置定時(shí)任務(wù)要規(guī)范操作過(guò)程,減少出錯(cuò)
要領(lǐng)9:定時(shí)任務(wù)腳本中程序命令及路徑盡量用全路徑
要領(lǐng)10:時(shí)間變量%號(hào)要用反斜線轉(zhuǎn)義(只有定時(shí)任務(wù)里是命令時(shí)需要)
要領(lǐng)11:若腳本中調(diào)用了系統(tǒng)環(huán)境變量,要重新定義
要領(lǐng)12:出錯(cuò)或無(wú)法執(zhí)行,就檢查/var/log/cron日志
第14章 Linux 用戶(hù)管理知識(shí)與應(yīng)用實(shí)踐
- 簡(jiǎn)述用戶(hù)和組的概念,以及什么是 UID 和 GID?
UID用戶(hù)的唯一身份標(biāo)識(shí)
GID用戶(hù)組的唯一標(biāo)識(shí) - 常見(jiàn)的 Linux 系統(tǒng)命令行解釋器有哪些?
bash profile - 保存用戶(hù)信息的配置文件是哪一個(gè)?
/etc/passwd - 保存用戶(hù)密碼信息的文件是哪一個(gè)?
/etc/shadow - 當(dāng)出現(xiàn)命令行樣式為-bash-4.2$情況下如何排查解決?
cp /etc/skel/.bash* .source ./.bash_profile ./.bashrc - 當(dāng)前要?jiǎng)?chuàng)建一個(gè)名為 oldboy 的虛擬用戶(hù),不創(chuàng)建家目錄,如何實(shí)現(xiàn)?
useradd -M -c "oldboy" - 分別闡述 su、sudo、visudo 命令的作用和區(qū)別?
su 切換用戶(hù)
sudo 提權(quán)
visudo 編輯sudo - 添加一個(gè)用戶(hù)希望這個(gè)用戶(hù)只能添加和刪除用戶(hù)權(quán)限,改如何實(shí)現(xiàn)?
visudo 100g
oldboy ALL=(ALL) /usr/bin/useradd;/usr/bin/userdel
4.12
1、什么是集群?
簡(jiǎn)單地說(shuō),集群就是一堆機(jī)器做同一件事,
例如:www.jd.com提供賣(mài)東西服務(wù)這就是一件事,可能是幾千臺(tái)服務(wù)器,在背后運(yùn)轉(zhuǎn)支撐這個(gè)網(wǎng)站。
www.baidu.com看著就是一個(gè)搜索框,背后可能是上萬(wàn)臺(tái)服務(wù)器。
2、為什么企業(yè)要用集群?
a.724服務(wù),需要多臺(tái)機(jī)器同時(shí)工作,互為實(shí)時(shí)備份。
b.高并發(fā)訪問(wèn),需要多臺(tái)服務(wù)器同時(shí)提供服務(wù)。
3.集群特點(diǎn)
a.數(shù)據(jù)量大、用戶(hù)多
b.724持續(xù)服務(wù)
c.高并發(fā)
d.用戶(hù)分布廣泛,網(wǎng)絡(luò)情況復(fù)雜
4.形象描述集群
基礎(chǔ)優(yōu)化:
1、規(guī)范目錄
mkdir -p /server/tools
mkdir -p /server/scripts
2、配置所有主機(jī)域名解析
cat >/etc/hosts<<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
EOF
[root@oldboyedu ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
[root@oldboyedu ~]# ping lb01
PING lb01 (172.16.1.5) 56(84) bytes of data.
3.基礎(chǔ)優(yōu)化操作項(xiàng):更新yum源信息
第一個(gè):就近使用yum源地址,安裝軟件更快。
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
第二個(gè):安裝RHEL/CentOS官方源不提供的軟件包
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4、安全優(yōu)化
#1、關(guān)閉selinux
sed -i 's#SELINUX=.#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce
# 2、關(guān)閉firewalld防火墻服務(wù)
systemctl stop firewalld
systemctl disable firewalld
5.基礎(chǔ)優(yōu)化操作項(xiàng):設(shè)置普通用戶(hù)提權(quán)操作(可選優(yōu)化)
# 提權(quán)oldboy可以利用sudo
useradd oldboy
echo 123456|passwd --stdin oldboy
\cp /etc/sudoers /etc/sudoers.ori
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
6.設(shè)置系統(tǒng)中文UTF8字符集
[root@oldboyedu ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"
修改命令如下:
cp /etc/locale.conf /etc/locale.conf.ori
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf
source /etc/locale.conf
echo $LANG
cp /etc/locale.conf /etc/locale.conf.ori
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf
7.基礎(chǔ)優(yōu)化操作項(xiàng):時(shí)間同步設(shè)置
# 設(shè)置系統(tǒng)時(shí)間同步
yum install ntpdate -y
/usr/sbin/ntpdate ntp3.aliyun.com
echo '#crond-id-001:time sync by oldboy' >>/var/spool/cron/root
echo "/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root
crontab -l
8.基礎(chǔ)優(yōu)化操作項(xiàng):提升命令行操作安全性(可選優(yōu)化)
# 提升命令行安全(可選配置)
echo 'export TMOUT=300' >>/etc/profile
echo 'export HISTSIZE=5' >>/etc/profile
echo 'export HISTFILESIZE=5' >>/etc/profile
tail -3 /etc/profile
. /etc/profile
9.基礎(chǔ)優(yōu)化操作項(xiàng):加大文件描述符
# 實(shí)例演示:加大文件描述
echo '* - nofile 65535 ' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
ulimit -SHn 65535
ulimit -n #<==命令方式查看配置結(jié)果
10.基礎(chǔ)優(yōu)化操作項(xiàng):優(yōu)化系統(tǒng)內(nèi)核
cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下參數(shù)是對(duì)iptables防火墻的優(yōu)化,防火墻不開(kāi)會(huì)提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
sysctl -p
11.基礎(chǔ)優(yōu)化操作項(xiàng):安裝系統(tǒng)常用軟件
CentOS6和CentOS7都要安裝的企業(yè)運(yùn)維常用基礎(chǔ)工具包
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y
CentOS7要安裝的企業(yè)運(yùn)維常用基礎(chǔ)工具包
c
12.基礎(chǔ)優(yōu)化操作項(xiàng):優(yōu)化SSH遠(yuǎn)程連接效率
禁止root遠(yuǎn)程連接
修改默認(rèn)22端口,改為52113
監(jiān)聽(tīng)內(nèi)網(wǎng)服務(wù)器IP
練習(xí)不動(dòng)。
13.擴(kuò)展優(yōu)化操作項(xiàng)-修改yum.conf文件配置信息
保留yum安裝的軟件包
將/etc/yum.conf中的keepcache=0改為keepcache=1,為日后一鍵安裝網(wǎng)站集群留好rpm及依賴(lài)工具包。
- 鎖定關(guān)鍵系統(tǒng)文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,
處理以上內(nèi)容后把chattr、lsattr改名為oldboy,轉(zhuǎn)移走,這樣就安全多了。 - 清空/etc/issue、/etc/issue.net,去除系統(tǒng)及內(nèi)核版本登錄前的屏幕顯示。
- 清除多余的系統(tǒng)虛擬用戶(hù)賬號(hào)。
- 為grub引導(dǎo)菜單加密碼(自學(xué))。
- 禁止主機(jī)被ping(內(nèi)核參數(shù))。
- 打補(bǔ)丁并升級(jí)有已知漏洞的軟件。
yum update
20.精簡(jiǎn)開(kāi)機(jī)自啟動(dòng)服務(wù)
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash
systemctl list-unit-files |grep enable
保留服務(wù):
sshd|crond|sysstat|rsyslog|NetworkManager|irqbalance
企業(yè)生產(chǎn)最小化原則:
1、安裝軟件包最小化。
2、用戶(hù)權(quán)限最小化。
3、目錄文件權(quán)限最小化。
4、自啟動(dòng)服務(wù)最小化。
5、服務(wù)運(yùn)行用戶(hù)最小化。
[root@oldboyedu ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7072/sshd
tcp6 0 0 :::22 :::* LISTEN 7072/sshd
克隆三臺(tái):
B1-web服務(wù)器1 10.0.0.7/24 172.16.1.7/16 web01
C1-NFS存儲(chǔ)服務(wù)器 10.0.0.31/24 172.16.1.31/16 nfs01
C2-rsync備份服務(wù)器 10.0.0.41/24 172.16.1.41/16 backup