課堂筆記 4.8-4.12

Day27

一离斩、知識點回顧

1、網(wǎng)絡(luò)瘪匿?

1跛梗、 傳輸介質(zhì)

2、 硬件

2棋弥、兩臺主機之間進行通信核偿?

3、交換網(wǎng)絡(luò)(局域網(wǎng)內(nèi) 多臺計算機之間通訊)

交換機的原理(2層網(wǎng)絡(luò) ?數(shù)據(jù)鏈路層 ?MAC---->表)

|----->主機-----MAC地址

廣播風暴的問題

|--->降低 減輕 ?

1顽染、路由器的概念 ???

2漾岳、子網(wǎng)掩碼(劃分)

交換網(wǎng)絡(luò)中的數(shù)據(jù)格式

源信息(MAC地址)+目地信息(MAC地址)+數(shù)據(jù)內(nèi)容 = 數(shù)據(jù)格式

??? ARP ??

4轰绵、局域網(wǎng)和局域網(wǎng)之間計算機之間的通訊(路由器 ?3級網(wǎng)絡(luò)設(shè)備)

路由器的概念

路由器的工作原理

|---->主機 ----IP地址

路由表

|---->靜態(tài) ?優(yōu)點 ???大型 ??快 ???專業(yè)人士

|---->動態(tài) ?優(yōu)點 小型慢一般


5、TCP/IP協(xié)議名詞解釋

IP協(xié)議

TCP協(xié)議

UDP協(xié)議

ICMP協(xié)議

DNS協(xié)議

ARP協(xié)議


6尼荆、OSI和TCP/IP模型

7層 ???5(4)層

7.TCP/IP協(xié)議名詞解釋

TCP/IP協(xié)議的報文格式

TCP/IP協(xié)議的C/S 建立連接 3次握手的過程

TCP/IP協(xié)議的C/S 斷開連接 4次揮手的過程

TCP/IP協(xié)議的C/S 建立連接 3次握手的過程 狀態(tài)轉(zhuǎn)換

TCP/IP協(xié)議的C/S 斷開連接 4次揮手的過程 狀態(tài)轉(zhuǎn)換


8左腔、IP地址

分類A B C ?D ?E

C類 ?面試 ??C類地址 ????192.168.0.x ?x主機位

D類 ?組播

特殊的IP地址

0.0.0.0沒有意思

192.168.0.0沒有 ?-1 ?

192.168.0.255廣播地址 -1

192.168.0.254網(wǎng)關(guān)地址 -1

(網(wǎng)關(guān)地址 有可能是192.168.0.1 也有 192.168.0.254)

???127.0.0.1


9.子網(wǎng)掩碼

255.255.255.0 ??C類

???255.255.0.0 ?

???255.0.0.0 ??


10、網(wǎng)絡(luò)劃分

1.C類網(wǎng)絡(luò)中 ?192.168.0.100 ?50臺主機 劃分網(wǎng)絡(luò) 計算子網(wǎng)掩碼耀找。 2^n-3 公式





二翔悠、靜態(tài)路由項目

1、網(wǎng)絡(luò)中比較重要的協(xié)議

1野芒、DNS 域名解析協(xié)議

ARP交換機 ?主機-----MAC地址

路由器主機-----IP地址

DNS域名 域名-----IP地址

2蓄愁、47.75.85.161 域名

??????www. baidu.com


3、購買自己的一個域名

區(qū)塊鏈公司買域名BTCVC ?ZB.COM

根域名服務(wù)器大多是在國外美國居多日本英國等13臺

頂級域名服務(wù)器

com ????????????cn ?????????org ????edu等

公司商業(yè)組織地區(qū)中國

萬網(wǎng)

.vip


bj_liyanliang@163.com


阿里云為例

A記錄 ?WWW 網(wǎng)站 ??www.baidu.com ??記錄值 ?IP地址 ?47.75.80.160 ?

DNS優(yōu)化 ?阿里云加速

百度云加速css ?js ??html預(yù)加載到服務(wù)器上 CDN 加速



2、企業(yè)真實的需求

1、HOSTS文件

2赁炎、內(nèi)網(wǎng)DNS服務(wù)器

Linux服務(wù)器 DNS

1锅尘、本地服務(wù)器解析 www.baidu.com

2、轉(zhuǎn)發(fā)器

|----->主路由---->DNS---->公網(wǎng)IP DNS---->域名 ?實現(xiàn)外網(wǎng)的訪問案训。

?Windows Server 2008R2



3、常見的網(wǎng)絡(luò)命令

3.1 ping命令

ping域名 DNS問題

ping www.baidu.com無應(yīng)答 DNS沒有配置 ?DNS有問題

ping公網(wǎng)IP ???

?????47.75.80.160

ping網(wǎng)關(guān)

??192.168.1.1


3.2 iftop監(jiān)控網(wǎng)絡(luò)流量用的

Linux服務(wù)器下用的 第三方的命令


yum install iftop -y

4、企業(yè)網(wǎng)絡(luò)出現(xiàn)問題的排查流程

第一步檢查硬件網(wǎng)卡(燈) ?網(wǎng)線(水晶頭)_路由器(WAN LAN) 交換機

交換法

|--->網(wǎng)線

網(wǎng)卡

第二步Ping網(wǎng)關(guān)(路由)

第三步公網(wǎng)IP

第四步DNS

第五步Ping自己服務(wù)器地址


5乖酬、靜態(tài)路由項目

1、準備3臺虛擬機

第一臺一塊網(wǎng)卡10.0.0.11

第二臺二塊網(wǎng)卡10.0.0.12 ?192.168.0.12

第三臺一塊網(wǎng)卡192.168.0.13



2融求、在第一臺主機



從主機一10.0.0.11----->主機2---->192.168.0.

跨網(wǎng)段訪問

2.1不認識

添加一條靜態(tài)的路由信息

?route add -net 192.168.0.0/24 gw 10.0.0.12


route -n查看路由表


ping 192.168.0.12通了


2.2看看192.168.0.13能不能通

10.0.0.11需要 10.0.0.12轉(zhuǎn)發(fā)

192.168.0.13需要 192.168.0.12進行轉(zhuǎn)發(fā)


192.168.0.12

10.0.0.12主機2 ?信息跟主機2沒關(guān)系


echo “net.ipv4.ip_forward=1”>>/etc/sysctl.conf


sysctl -p


3咬像、擴展不要求掌握


3.1 iptables實現(xiàn)跨網(wǎng)段實現(xiàn)上網(wǎng)

端口映射

行為管理

3.2買企業(yè)級路由

下午

三劍客:

grep? 過濾

-E

支持擴展正則===egrep

-o

只顯示匹配到的內(nèi)容? 顯示grep執(zhí)行過程

-v

取反

-i

不區(qū)分大小寫? ignore case? ? find? /oldboy -type f -iname "*.txt"

-n

顯示行號 cat -n

-w

按照單詞進行匹配

-A

9? after 顯示grep找出的行及接下來的 9行

-B

9? before

-C

9? 上下

-r

-l (小寫字母L)

-P ??

sed? ? 過濾 替換 修改文件內(nèi)容 增刪改查

awk? ? 過濾 取列 統(tǒng)計計算

三劍客

grep

sed

awk

Unix中在當前目錄下所有.cc 的文件中找到含有“asiainfo”內(nèi)容的文件,命令為_______

找出當前目錄下包含127.0.0.1關(guān)鍵字的文件生宛?

寫出查詢file.txt以abc結(jié)尾的行

grep 'abc$' file.txt

寫出刪除abc.txt文件中的空行

mkdir -p /oldboy/alex/

for n in {1..5}

do

echo "oldboy 127.0.0.1"? >/oldboy/$n.cc

echo "oldboy 127.0.0.1"? >/oldboy/alex/$n.cc

done

Unix中在當前目錄下所有.cc 的文件中? 找到含有“asiainfo”內(nèi)容的文件县昂,命令為_______

find

find .

find /oldboy/ -type f -name "*.cc" |xargs grep 'asiainfo'

grep 'asiainfo'? /oldboy/*.cc

#find命令可以找出這個目錄下面所有層的內(nèi)容

[root@oldboyedu ~]# find /oldboy/ -type f -name "*.cc" |xargs grep 'oldboy'

/oldboy/alex/1.cc:oldboy 127.0.0.1

/oldboy/alex/2.cc:oldboy 127.0.0.1

/oldboy/alex/3.cc:oldboy 127.0.0.1

/oldboy/alex/4.cc:oldboy 127.0.0.1

/oldboy/alex/5.cc:oldboy 127.0.0.1

/oldboy/1.cc:oldboy 127.0.0.1

/oldboy/2.cc:oldboy 127.0.0.1

/oldboy/3.cc:oldboy 127.0.0.1

/oldboy/4.cc:oldboy 127.0.0.1

/oldboy/5.cc:oldboy 127.0.0.1

#只用grep只能默認顯示第1層

[root@oldboyedu ~]# grep 'oldboy'? /oldboy/*.cc

/oldboy/1.cc:oldboy 127.0.0.1

/oldboy/2.cc:oldboy 127.0.0.1

/oldboy/3.cc:oldboy 127.0.0.1

/oldboy/4.cc:oldboy 127.0.0.1

/oldboy/5.cc:oldboy 127.0.0.1

找出當前目錄下包含127.0.0.1關(guān)鍵字的文件?

grep -r '127.0.0.1'? .

find

[root@oldboyedu ~]# grep -r 'oldboy'? /oldboy/

/oldboy/test.sh:echo oldboy

/oldboy/alex/1.cc:oldboy 127.0.0.1

/oldboy/alex/2.cc:oldboy 127.0.0.1

/oldboy/alex/3.cc:oldboy 127.0.0.1

/oldboy/alex/4.cc:oldboy 127.0.0.1

/oldboy/alex/5.cc:oldboy 127.0.0.1

/oldboy/1.cc:oldboy 127.0.0.1

/oldboy/2.cc:oldboy 127.0.0.1

/oldboy/3.cc:oldboy 127.0.0.1

/oldboy/4.cc:oldboy 127.0.0.1

/oldboy/5.cc:oldboy 127.0.0.1

寫出查詢file.txt以abc結(jié)尾的行

寫出刪除abc.txt文件中的空行

基礎(chǔ)

[root@oldboyedu /oldboy]# grep -v '^$' /oldboy/blank.txt

oldboy oldboy

oldboy

alex

lidao996

中級:文件中有些行包含空格(只有空格)

[root@oldboyedu /oldboy]# egrep -v '^$|^ +$' /oldboy/blank.txt

oldboy oldboy

oldboy

alex

lidao996

究極:

^ *$理解

^$? ? 當*表示0次的時候? ? 就相當于是 ^$

^ +$? 當*表示1次及1次以上? ? ? ? ? ? ^ +$

[root@oldboyedu /oldboy]# egrep -v '^ *$' /oldboy/blank.txt

oldboy oldboy

oldboy

alex

lidao996

待解釋方法:

grep "!^$"? abc.txt

! find sed awk中表示取反

egrep -v "(^$| )"? blank

egrep -v "(^$|^ $)"? blank

egrep -n? "[0-z]" oldboy.txt?

? ? '[0-Z]'

[root@oldboyedu /oldboy]# egrep -n? "[0-z]"? blank.txt

1:oldboy oldboy

4: oldboy

6:alex

7:lidao996

egrep "^[^$]" blank.txt

過濾出不是以$符號開頭的行

egrep "[^$]" blank.txt

[root@oldboyedu /oldboy]# egrep "[^$]" blank.txt

oldboy oldboy

oldboy

alex

lidao996

$$$$$$####oldboyedu.com

[root@oldboyedu /oldboy]# #排除$符號

egrep -n? "[0-9]+|[a-Z]+" 1.cc

[0-9]+ 連續(xù)數(shù)字

[a-Z]+ 連續(xù)的字母(大小寫)

cat file.txt|grep -v "^$"|grep -v "^ +$"

cat file.txt|grep -v "^$"? ×××××? 脫褲子方P

grep -v '^$' file.txt

1個英文的字符 占1個字節(jié)

1KB=1024字節(jié)

1MB=1024KB

1GB=1024MB=1024^3字節(jié)

sed? "/[? ]/d" 555?

sed? "/^$/d" 555

三劍客老二-sed命令

https://www.processon.com/view/link/5bea32c5e4b0ad314e894f53

老男孩教育-sed命令執(zhí)行過程

[root@oldboyedu /oldboy]# sed -n '1,5p' maav.txt

101,oldboy,CEO

102,zhangyao,CTO

103,Alex,COO

104,yy,CFO

105,feixue,CIO

[root@oldboyedu /oldboy]# sed -n '/101/,/105/p' maav.txt

101,oldboy,CEO

102,zhangyao,CTO

103,Alex,COO

104,yy,CFO

105,feixue,CIO

sed命令的后向應(yīng)用或反向引用 :

sed -r 's#()#\1#g'

核心: 先保護陷舅,后使用

先把你要的內(nèi)容通過()括起來,然后在后面通過\數(shù)字 進行使用倒彰。

[root@oldboyedu /oldboy]# echo {1..10}| sed -r 's#([0-9]+)#<\1>#g'

<1> <2> <3> <4> <5> <6> <7> <8> <9> <10>

后向引用

題目1:

cp /etc/passwd? /oldboy/

把 /oldboy/passwd 第1列和最后一列調(diào)換位置

題目2:取出里面的644或0644 sed后向引用方法

[root@oldboyedu /oldboy]# stat /etc/hosts

? File: ‘/etc/hosts’

? Size: 158? ? ? Blocks: 8? ? ? ? ? IO Block: 4096? regular file

Device: 803h/2051d Inode: 16829878? ? Links: 1

Access: (0644/-rw-r--r--)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)

Access: 2020-10-26 03:47:16.874000256 +0800

Modify: 2013-06-07 22:31:32.000000000 +0800

Change: 2019-03-04 11:15:49.426692303 +0800

Birth: -

題目1:

cp /etc/passwd? /oldboy/

把 /oldboy/passwd 第1列和最后一列調(diào)換位置

[root@oldboyedu /oldboy]# sed -r 's#(^.*)(:x.*:)(.*$)#\3\2\1#g' /oldboy/passwd

/bin/bash:x:0:0:root:/root:root

/sbin/nologin:x:1:1:bin:/bin:bin

/sbin/nologin:x:2:2:daemon:/sbin:daemon

/sbin/nologin:x:3:4:adm:/var/adm:adm

/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp

/bin/sync:x:5:0:sync:/sbin:sync

/sbin/shutdown:x:6:0:shutdown:/sbin:shutdown

/sbin/halt:x:7:0:halt:/sbin:halt

/sbin/nologin:x:8:12:mail:/var/spool/mail:mail

/sbin/nologin:x:11:0:operator:/root:operator

老男孩教育-sed后向引用調(diào)換/etc/passwd第1列和最后一列

https://www.processon.com/view/link/5cab2621e4b087434367338b

題目2:取出里面的644或0644 sed后向引用方法

老男孩IT教育出品-sed命令反向引用取出/etc/hosts文件權(quán)限

https://www.processon.com/view/link/59fbc9c0e4b0f84f89765231

課后:

1.三劍客習題

http://www.reibang.com/p/61d8883719ac

2.每個人找出2-3個 三劍客題目


day28

Shell編程3小時光速入門

因為Web集群架構(gòu)會用到Shell編程基礎(chǔ),提前講莱睁。

跟老男孩學(xué)Linux運維:Shell編程實戰(zhàn)

https://item.jd.com/12117874.html

1待讳、為什么要學(xué)習Shell編程?

Linux系統(tǒng)中會大量的使用Shell仰剿,工作中我們也需要自動化實現(xiàn)業(yè)務(wù)耙箍,

例如:自動備份、監(jiān)控酥馍、自動安裝服務(wù)辩昆。

Shell編程是Linux運維人員必須要會的編程語言。最簡單的編程語言旨袒。

編程也是運維人員必須具備的本領(lǐng):

Shell汁针、Python是運維人員必須具備的本領(lǐng)

2术辐、什么是Shell?

Shell就是一個命令解釋器(翻譯官)施无,命令行的命令以及腳本都會通過shell解釋辉词,

傳給操作系統(tǒng),處理后在輸出給用戶猾骡。

[root@oldboyedu ~]# tail -1 /etc/passwd

oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash #<==創(chuàng)建用戶時瑞躺,系統(tǒng)指定的翻譯官。

3兴想、Shell的分類

1. Bourne shell

Bourne shell又包括Bourne shell (sh)幢哨、Korn shell (ksh)、Bourne Again Shell(bash)三種類型嫂便。

2. C shell

C shell又包括csh捞镰、tcsh兩種類型。

C7支持的shell:

[root@oldboyedu ~]# cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

/bin/sh是bash的軟連接

4毙替、C7:默認Shell

[root@oldboyedu ~]# echo $SHELL

/bin/bash

5岸售、什么是Shell腳本?

程序厂画、命令放入文件里執(zhí)行凸丸,這個文件稱之為Shell腳本文件。

工作中最多的編程寫腳本袱院,存放在文件里屎慢。

6、Shell變量:

? a.全局變量(環(huán)境變量)

? 在整個系統(tǒng)中生效坑填、一般是大寫抛人、系統(tǒng)中默認就

? 存在一些這樣的變量弛姜,滿足系統(tǒng)和程序運行的需求脐瑰。

系統(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/bashrc

export OLDBOY="I am oldboy."

[root@oldboyedu ~]# . /etc/bashrc

[root@oldboyedu ~]# echo $OLDBOY #<==輸出一個變量內(nèi)容就加$變量名

I am oldboy.

安裝java服務(wù)的時候就會配置環(huán)境變量。

b.局部變量(普通變量)

是編寫Shell腳本最常用的變量廷臼。

變量名=值

a=1

變量名:數(shù)字苍在、字母、下劃線荠商,不能是數(shù)字開頭寂恬。

? ? ? oldboy、 123a莱没、_abc

= 等號:賦值符初肉,把什么東西給誰。賦值符號兩邊不能有空格饰躲。

值:東西牙咏,變量內(nèi)容臼隔。

? ? 引用內(nèi)容的符號:單引號、雙引號妄壶、反引號摔握、不加引號

[root@oldboyedu ~]# a=1

[root@oldboyedu ~]# echo $a

1

[root@oldboyedu ~]# y=$x+1

[root@oldboyedu ~]# echo $y

1+1

[root@oldboyedu ~]# y="$x+1"

[root@oldboyedu ~]# echo $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="$x+1"? #<==讓括號的內(nèi)容進行計算。

[root@oldboyedu ~]# echo $y

2

[root@oldboyedu ~]# a=1

[root@oldboyedu ~]# echo ${a}b

1b

《九陰九陽》是金庸新著 和金庸屁關(guān)系沒有丁寄。

{金庸新}著

7氨淌、表達式

[ 表達式 ]中括號表達式,中括號里面兩端必須要有空格伊磺。

字符串要加雙引號

[root@oldboyedu ~]# [ "a" = "b" ] && echo 1||echo 0

0

[ "a" = "b" ] && echo 1||echo 0

如果表達式成立盛正,打印1,否則打印0.

[ "a" = "b" ] && echo 1? #跟屁蟲奢浑。

如果表達式成立蛮艰,打印1

[ "a" = "b" ] || echo 0? #杠精。

如果表達式成立是假的雀彼,打印0

取反:

[ ! "a" = "b" ] && echo 1

整數(shù)表達式:

>? ? ? -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ù)表達式符 兩端必須要有空格

2)中括號里面兩端必須要有空格壤蚜。

3)變量和比較的內(nèi)容,不需要加引號徊哑。

字符表達式:

-z 變量內(nèi)容長度為0時袜刷,為真(表達式正確)。zero

-n 變量內(nèi)容長度【不】為0時莺丑,為真(表達式正確)著蟹。not zero

a == a 字符串是否相同

說明:

1)字符串要加雙引號

例子:

[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判斷句語法:

if [ 表達式 ]

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ù)勁笥?/p>

[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

一起去旅游吧

實現(xiàn)多條件

[root@oldboyedu ~]# cat judge_date.sh

if [ $(date +%w) -eq 6 ] || [ $(date +%w) -eq 0 ]

then

? ? echo "一起去旅游吧"

else

? ? echo "還是好好上課吧"

fi

read命令 交互式讀取用戶輸入

-p "提醒:"

-t "多長時間內(nèi)等待輸入"

[root@oldboyedu ~]# read? -p "請輸入一句話:" boy

請輸入一句話:潛力股

[root@oldboyedu ~]# echo $boy

潛力股

相當于boy="潛力股"

[root@oldboyedu ~]# cat test.sh

#!/bin/bash

read -p "請輸入你喜歡的男孩的一句話:" boy

if [ "$boy" ==? "潛力股" ]

then

? ? echo "先和你談?wù)勁笥?

else

? ? echo "白白"

fi

[root@oldboyedu ~]# sh test.sh

請輸入你喜歡的男孩的一句話:我沒錢

白白

[root@oldboyedu ~]# sh test.sh

請輸入你喜歡的男孩的一句話:潛力股

先和你談?wù)勁笥?/p>

[root@oldboyedu ~]# cat test.sh

#!/bin/bash

read -p "請輸入你喜歡的男孩的一句話:" boy

if [ "$boy" ==? "潛力股" ]

then

? ? echo "先和你談?wù)勁笥?

elif [ "$boy" ==? "老爸是李剛" ]

then

? echo "直接嫁給你"

elif [ "$boy" ==? "二環(huán)內(nèi)有套房" ]

then

? echo "立馬領(lǐng)證"

else

? ? echo "白白"

fi

練習題:Shell編程實現(xiàn) 兩個整數(shù)比較大小

[root@oldboyedu ~]# cat com_num.sh

#!/bin/sh

read -p "請輸入兩個整數(shù):" a b

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

請輸入兩個整數(shù):2 3

2<3

[root@oldboyedu ~]# sh com_num.sh

請輸入兩個整數(shù):3 3

3=3

[root@oldboyedu ~]# sh com_num.sh

請輸入兩個整數(shù):3 4

3<4

[root@oldboyedu ~]# sh com_num.sh

請輸入兩個整數(shù):3 2

3>2

特殊位置變量:

$1 腳本文件的第一個參數(shù)賦值給$1

$2 腳本文件的第二個參數(shù)賦值給$2

[root@oldboyedu ~]# cat t.sh

echo $1 $2

[root@oldboyedu ~]# sh t.sh oldboy oldgirl

oldboy oldgirl? #<==oldboy就是$1輸出的結(jié)果梢莽,oldgirl就是$2輸出的結(jié)果萧豆。

[root@oldboyedu ~]# cat com_num.sh

#!/bin/sh

#read -p "請輸入兩個整數(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個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

課后練習:

1、比較整數(shù)大小昏名。

? ? ~]# vim hh.sh

#!/bin/bash

read -p "請輸入整數(shù):" a b

if

? [ "$a" -gt "$b" ]

then

? ? echo "$a>$b"

elif

? ? [ "$a" -lt "$b" ]

then

? ? echo "$a<$b"

else

? ? echo "$a=$b"

fi

2涮雷、判斷日期,每周六日去旅游轻局,其它時間上課洪鸭。

[root@songxvhao

? ? ~]# cat s.sh

if [ $(date +%w) -eq 6 ]

then

? ? echo "去旅游"

elif [ $(date +%w) -eq 7 ]

then 19:01 2019/4/919:01 2019/4/919:01 2019/4/9

? ? echo "去旅游"

else

? ? echo "去上課"

fi? ? ?

3、取出當前系統(tǒng)Ip地址仑扑,判斷是否為10.0.0.31览爵,如果是提示正確,如果不是給出提示镇饮。

? ? ~]# vim sss.sh

#!/bin/bash

a="$(ifconfig|awk 'NR==2{print $2}')"

if

? [ "$a" == "10.0.0.200" ]

then

? ? echo "正確"

else

? ? echo "錯誤"

fi

4蜓竹、打印10.0.0.1--10.0.0.254個Ip地址,當IP地址為系統(tǒng)IP地址時,給出某IP是系統(tǒng)IP的提示俱济。

[root@songxvhao

? ? ~]# cat xx.sh

#!/bin/sh

for n in 10.0.0.{1..255}

do

? echo "$n"

a=`hostname -I`

if

? [ $a = "$n" ]

then

? ? echo "$n為本地IP"

fi

done

書寫腳本習慣:

1.以.sh結(jié)尾司蔬。

2.腳本開頭第一行 #!/bin/bash 腳本內(nèi)容由誰解釋。

? 由于Linux下默認是bash姨蝴,所以也可以不寫這一行俊啼。



1、什么是集群左医?

簡單地說授帕,集群就是一堆機器做同一件事,

例如:www.jd.com提供賣東西服務(wù)這就是一件事浮梢,可能是幾千臺服務(wù)器跛十,在背后運轉(zhuǎn)支撐這個網(wǎng)站。

? ? ? www.baidu.com看著就是一個搜索框秕硝,背后可能是上萬臺服務(wù)器芥映。


2、為什么企業(yè)要用集群远豺?

? a.7*24服務(wù)奈偏,需要多臺機器同時工作,互為實時備份躯护。

? b.高并發(fā)訪問惊来,需要多臺服務(wù)器同時提供服務(wù)。

3.集群特點

? a.數(shù)據(jù)量大棺滞、用戶多

? b.7*24持續(xù)服務(wù)

? c.高并發(fā)

? d.用戶分布廣泛裁蚁,網(wǎng)絡(luò)情況復(fù)雜

4.形象描述集群

基礎(chǔ)優(yōu)化:

1、規(guī)范目錄

mkdir -p /server/tools

mkdir -p /server/scripts

2继准、配置所有主機域名解析

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)化操作項:更新yum源信息

第一個:就近使用yum源地址枉证,安裝軟件更快。

curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

第二個:安裝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)化操作項:設(shè)置普通用戶提權(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)化操作項:時間同步設(shè)置

# 設(shè)置系統(tǒng)時間同步

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)化操作項:提升命令行操作安全性(可選優(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)化操作項:加大文件描述符

# 實例演示:加大文件描述

echo '*? ? ? ? ? ? ? -? ? ? nofile? ? ? ? ? 65535 ' >>/etc/security/limits.conf

tail -1 /etc/security/limits.conf

ulimit -SHn? 65535

ulimit -n #<==命令方式查看配置結(jié)果

10.基礎(chǔ)優(yōu)化操作項:優(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ù)是對iptables防火墻的優(yōu)化避凝,防火墻不開會提示舞萄,可以忽略不理眨补。

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)化操作項:安裝系統(tǒng)常用軟件

CentOS6和CentOS7都要安裝的企業(yè)運維常用基礎(chǔ)工具包

yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y

CentOS7要安裝的企業(yè)運維常用基礎(chǔ)工具包

yum install psmisc net-tools bash-completion vim-enhanced -y

獨行快管削,眾行遠〕怕荩——老男孩

12.基礎(chǔ)優(yōu)化操作項:優(yōu)化SSH遠程連接效率

禁止root遠程連接

修改默認22端口含思,改為52113

監(jiān)聽內(nèi)網(wǎng)服務(wù)器IP

練習不動。

13.擴展優(yōu)化操作項-修改yum.conf文件配置信息

保留yum安裝的軟件包

將/etc/yum.conf中的keepcache=0改為keepcache=1,為日后一鍵安裝網(wǎng)站集群留好rpm及依賴工具包含潘。

14. 鎖定關(guān)鍵系統(tǒng)文件如/etc/passwd饲做、/etc/shadow、/etc/group遏弱、/etc/gshadow盆均、/etc/inittab,

處理以上內(nèi)容后把chattr漱逸、lsattr改名為oldboy泪姨,轉(zhuǎn)移走,這樣就安全多了饰抒。

15. 清空/etc/issue肮砾、/etc/issue.net,去除系統(tǒng)及內(nèi)核版本登錄前的屏幕顯示袋坑。

16. 清除多余的系統(tǒng)虛擬用戶賬號仗处。

17. 為grub引導(dǎo)菜單加密碼(自學(xué))。

18. 禁止主機被ping(內(nèi)核參數(shù))枣宫。

19. 打補丁并升級有已知漏洞的軟件婆誓。

? ? yum update

20.精簡開機自啟動服務(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旷档、用戶權(quán)限最小化。

3歇拆、目錄文件權(quán)限最小化鞋屈。

4、自啟動服務(wù)最小化故觅。

5厂庇、服務(wù)運行用戶最小化。

[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

克隆三臺:

B1-web服務(wù)器1 ? ? 10.0.0.7/24 ? ? 172.16.1.7/16 web01

C1-NFS存儲服務(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末输吏,一起剝皮案震驚了整個濱河市权旷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贯溅,老刑警劉巖拄氯,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異它浅,居然都是意外死亡译柏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門姐霍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鄙麦,“玉大人典唇,你說我怎么就攤上這事】韪” “怎么了介衔?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骂因。 經(jīng)常有香客問我炎咖,道長,這世上最難降的妖魔是什么寒波? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任塘装,我火速辦了婚禮,結(jié)果婚禮上影所,老公的妹妹穿的比我還像新娘蹦肴。我一直安慰自己,他們只是感情好猴娩,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布阴幌。 她就那樣靜靜地躺著,像睡著了一般卷中。 火紅的嫁衣襯著肌膚如雪矛双。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天蟆豫,我揣著相機與錄音议忽,去河邊找鬼。 笑死十减,一個胖子當著我的面吹牛栈幸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帮辟,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼速址,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了由驹?” 一聲冷哼從身側(cè)響起芍锚,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔓榄,沒想到半個月后并炮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡甥郑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年逃魄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壹若。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗅钻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出店展,到底是詐尸還是另有隱情养篓,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布赂蕴,位于F島的核電站柳弄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏概说。R本人自食惡果不足惜碧注,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糖赔。 院中可真熱鬧萍丐,春花似錦、人聲如沸放典。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奋构。三九已至壳影,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弥臼,已是汗流浹背宴咧。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留径缅,地道東北人掺栅。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像纳猪,于是被迫代替她去往敵國和親柿冲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 靜態(tài)路由項目 1兆旬、網(wǎng)絡(luò)中比較重要的協(xié)議 (1)DNF域名解析協(xié)議 ARP 交換機 主機------MAC地址 路...
    Gentlewei丶閱讀 355評論 0 0
  • Shell編程基礎(chǔ) 1假抄、為什么要學(xué)習Shell編程? Shell編程是Linux運維人員必須要會的編程語言丽猬。最簡單...
    高博666閱讀 611評論 0 0
  • 老男孩Linux運維58期課堂筆記 ...
    樂園_YD閱讀 184評論 0 0
  • 作者:馬帥琦 歸檔:day28 時間:2019/4/9 Shell編程3小時光速入門 因為Web集群架構(gòu)會用到Sh...
    馬帥琦閱讀 361評論 0 0
  • 三劍客: grep 過濾 -E 支持擴展正則===egrep -o 只顯示匹配到的內(nèi)容 顯示grep執(zhí)行過程 -...
    喂00閱讀 700評論 0 0