linux系統與網路管理
㈠ 1、linux系統基本網路
1.1、伺服器注意事項:
遠程伺服器不允許關機,只能重啟
重啟時應該先關閉服務
不要在伺服器訪問高峰運行高負載命令
遠程配置防火牆時不要把自己踢出伺服器
指定合理的密碼規范並定期更新
合理分配許可權
定期備份重要的數據和日誌
1.2、設置網路橋接命令和(ANT模式):
systemctl restart network------重啟網卡service network restart---------重啟網路服務
systemctl stop NetworkManager 臨時暫停網路管理器systemctl disable NetworkManager 永久關閉網路管理器
systemctl start NetworkManager 擁有root用戶的可執行許可權
systemctl stop NetworkManager 停止並禁用虛擬機 NetworkManager 服務
systemctl disable NetworkManager
注意:修改網路配置文件後,需要重新載入網路連接,如果是通過network.service則使用命令:systemctl restart network;如果是通過NetworkManager.service則使用nmcli命令:nmcli connection reload。
設置網路主要操作(橋接模式和)
[root@localhost network-scripts]# cd etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vi ifcfg-ens33
systemctl restart network------重啟網卡
service network restart---------重啟網路服務
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static 設置靜態
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=10c17057-e9c9-4831-a8ff-0757ea0abc0b
DEVICE=ens33
ONBOOT=yes #開機重啟
#IPADDR=192.168.43.168 #ip地址(需要跟主機同一個網段,不同一個IP)
IPADDR=10.63.73.20
#NETMASK=255.255.255.0 #子網掩碼(下面三個都跟主機一樣)
NETMASK=255.255.0.0
#GATEWAY=192.168.43.1 #網關
GATEWAK=10.63.255.254
#GATEWAK=10.200.0.3
#DNS1=192.168.43.1 #DNS服務
設置網路主要步驟(Nat模式)
1.打開Vm,點擊編輯->虛擬網路編輯
2.選擇VMnet8,將VMnet信息改為NAT模式,比如我的本機IP是192.168.138.1,子網掩碼為255.255.255.0
所以我將下面的IP配置成192.168.138.0 子網掩碼配置成255.255.255
3.再點擊NAT設置將網管配置成192.168.138.2(ps:網關不要配置成和自己IP地址一樣)
然後再應用確定
4.右鍵點擊虛擬機設置,網路適配器改為自定義(選擇Vmnet8 Nat模式)
5.接下來開啟虛擬機
cd /etc/sysconfig/network-scripts/
vim ifcfg-eno16777736
然後再執行命令:/etc/init.d/network restart
1.3、設置防火牆
1.3.1、防火牆命令
停止防火牆:
systemctl stop firewalld.service #停止firewall 防火牆
service iptables stop #(centos7版本之前)
永久關閉防火牆:
systemctl disable firewalld.service #禁止firewall開機啟動 ( 永久關閉防火牆 )
chkconfig iptables off #永久關閉防火牆
開始防火牆:
systemctl start firewalld #啟動防火牆
systemctl restart iptables.service #重啟防火牆使配置生效
systemctl enable iptables.service #設置防火牆開機啟動(重啟)
查看防火牆狀態:
systemctl status firewalld
service iptables status # (7版本之前)
1.3.2、Linux chkconfig 命令
Linux chkconfig 命令用於檢查,設置系統的各種服務。
這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。
語法
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]
參數 :
--add 增加所指定的系統服務,讓 chkconfig 指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據。
--del 刪除所指定的系統服務,不再由 chkconfig 指令管理,並同時在系統啟動的敘述文件內刪除相關數據。
--level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關畢。
實例
列出chkconfig 所知道的所有命令,可以用chkconfig –list查看所有的服務及其在每個級別的開啟狀態。
# chkconfig --list
開啟服務
# chkconfig telnet on //開啟 Telnet 服務
# chkconfig --list //列出 chkconfig 所知道的所有的服務的情況
關閉服務
# chkconfig telnet off // 關閉 Telnet 服務
# chkconfig --list // 列出 chkconfig 所知道的所有的服務的情況
[root@cent01 sbin]# chkconfig --level 3 network off //關閉3級別的network服務
[root@cent01 sbin]# chkconfig --list //3級別已關閉
network 0:關 1:關 2:開 3:關 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig network on //不輸入級別,默認打開2,3,4,5級別
[root@cent01 sbin]# chkconfig --list
network 0:關 1:關 2:開 3:開 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig --del network //刪除network
[root@cent01 sbin]# chkconfig --list //network已消失
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
[root@cent01 sbin]# chkconfig --add network //增加network服務
[root@cent01 sbin]# chkconfig --list //network服務又恢復了
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
network 0:關 1:關 2:開 3:開 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig --list
註:該輸出結果只顯示 SysV 服務,並不包含
原生 systemd 服務。SysV 配置數據
可能被原生 systemd 配置覆蓋。
要列出 systemd 服務,請執行 'systemctl list-unit-files'。
查看在具體 target 啟用的服務請執行
'systemctl list-dependencies [target]'。
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
注意: 但是這里只顯示了SysV管理的服務,centos6及之前都是這個管理工具,但是在centos7用的是systemd管理,所以systemd管理的服務在這里沒有顯示出來。
運行級別為系統啟動級別,具體含義如下:
0 shutdown關機
1 單用戶模式
2 無NFS支持的多用戶模式
3 完全多用戶模式,常用的命令行模式
4 保留給用戶自定義
5 圖形界面登錄,比3多了一個圖形界面
6 重啟
1.3.2、Linux systemd命令
systemd是管理開機啟動程序的工具(SysV啟動開機進程時一次只能啟動一個,而systemd則一次可以啟動多個服務,這樣就導致systemd的開機速度會更快。)
[root@localhost ~]# systemctl list-units --all --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coremp hook
abrt-oops.service loaded active running ABRT kernel log watcher
UNIT LOAD ACTIVE SUB DESCRIPTION
[root@cent01 sbin]# ls /usr/lib/systemd/system //啟動的腳本文件目錄
[root@cent01 ~]# systemctl list-units //列出正在運行的unit
[root@cent01 ~]# systemctl list-units --all //列出所有的unit,包括active和inactive
[root@cent01 ~]# systemctl list-units --all --state=inactive //列出inactive的unit
[root@cent01 ~]# systemctl list-units --all --type=service //列出所有狀態的service
[root@cent01 ~]# systemctl list-units --type=service //列出active的service
[root@cent01 ~]# systemctl is-active crond.service //查看某個unit是否active
systemctl enable crond.service //開機啟動 .service可以省略
systemctl disable crond.service //禁止開機啟動
systemctl status crond.service //查看服務狀態
systemctl start crond.service //啟動服務
systemctl stop crond.service //停止服務
systemctl restart crond.service //重啟服務
systemctl is-enabled crond.service //查看某個服務是否開機啟動
unit /usr/lib/systemd/system 此目錄下列出了很多文件,這些文件都是unit。類別如下:
service 系統服務target 多個unit組成的組device 硬體設備mount 文件系統掛載點automount 自動掛載點path 文件或路徑scope 不是由systemd啟動的外部進程slice 進程組snapshot systemd快照socket 進程間通信的套接字swap swap文件timer 定時器
target target類似於centos6的啟動級別,target內又包含多個unit的組合,當然target內也可以包含target。啟動target就是啟動多個unit,用target來管理這些unit。
[root@cent01 ~]# systemctl list-units --all --type=target //查看當前所有的target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
bluetooth.target loaded active active Bluetooth
[root@localhost ~]# systemctl list-dependencies multi-user.target
multi-user.target
● ├─abrt-ccpp.service
● ├─abrt-oops.service
● ├─abrt-vmcore.service
● ├─abrt-xorg.service
[root@localhost ~]# systemctl get-default //查看系統默認的target
multi-user.target
systemctl set-default multi-user.target //設置默認的target
multi-user.target等同於centos6的運行級別3。他們的對應關系如下:
SysV運行級別systemd target備注
0poweroff.target關閉系統
1rescure.target單用戶模式
2multiuser.target用戶自定義級別,通常識別為3
3multiuser.target多用戶命令行模式
4multiuser.target用戶自定義級別,通常識別為3
5graphical.target多用戶圖形界面,比級別3隻多一個GUI
6reboot.target重啟
所以總結起來,一個service屬於一種unit,多個unit組成一個target,當然target裡面也可以包含target。
1.4、ifconfig命令配置IP網路參數
格式:
[root@localhost /]#ifconfig [網路設備] [ip地址] [MAC地址] [netmask掩碼地址] [broadcast廣播地址(NDC)] [up/down]
[root@localhost /]#ifconfig eth0 192.168.74.130 netmask 255.255.255.0 up
用ifconfig命令配置eth0別名設備,為eth0綁定多個IP地址。
[root@localhost /]#ifconfig eth0:1 192.168.74.130
[root@localhost /]#ifconfig eth0:2 192.168.73.130
1.5、使用routedel命令添加路由
格式:
[root@localhost /]#routedel [-net|host] [網域或主機] netmask [mask] [gw]
[root@localhost /]#route #查看路由信息
功能:添加路由
-net : 表示後面接的路由為一個網路。
-host : 表示後面接的為連接到單部主機的路由。
netmask : 與網路有關,可以設定netmask決定網路的大小。
gw : gateway (網關)的簡寫,後面接的是ip地址。
1.6、使用hostname命令修改主機名稱
[root@localhost /]#hostname service.jw.com
hostnamectl set-hostname nod1
㈡ 如何使用Linux shell編程來進行系統管理和網路管理
從程序員的角度來看, Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統溝通的橋梁。用戶既可以輸入命令執行,又可以利用 Shell腳本編程,完成更加復雜的操作。在Linux GUI日益完善的今天,在系統管理等領域,Shell編程仍然起著不可忽視的作用。深入地了解和熟練地掌握Shell編程,是每一個Linux用戶的必修 功課之一。
Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell語言的語法有所不同,所以不能交換使用。每種Shell都有其特色之處,基本上,掌握其中任何一種 就足夠了。在本文中,我們關注的重點是Bash,也就是Bourne Again Shell,由於易用和免費,Bash在日常工作中被廣泛使用;同時,Bash也是大多數Linux系統默認的Shell。在一般情況下,人們並不區分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我們可以看到#!/bin/sh,它同樣也可以改為#!/bin/bash。
利用vi等文本編輯器編寫Shell腳本的格式是固定的,如下:
#!/bin/sh
#comments
Your commands go here
首行中的符號#!告訴系統其後路徑所指定的程序即是解釋此腳本文件的Shell程 序。如果首行沒有這句話,在執行腳本文件的時候,將會出現錯誤。後續的部分就是主程序,Shell腳本像高級語言一樣,也有變數賦值,也有控制語句。除第 一行外,以#開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上",這個符號表明下一行與此行會合並為同一行。
編輯完畢,將腳本存檔為filename.sh,文件名後綴sh表明這是一個Bash腳本文件。執行腳本的時候,要先將腳本文件的屬性改為可執行的:
chmod +x filename.sh
執行腳本的方法是:
./filename.sh
下面我們從經典的「hello world」入手,看一看最簡單的Shell腳本的模樣。
#!/bin/sh
#print hello world in the console window
a = "hello world"
echo $a
Shell Script是一種弱類型語言,使用變數的時候無需首先聲明其類型。新的變數會在本地數據區分配內存進行存儲,這個變數歸當前的Shell所有,任何子進 程都不能訪問本地變數。這些變數與環境變數不同,環境變數被存儲在另一內存區,叫做用戶環境區,這塊內存中的變數可以被子進程訪問。變數賦值的方式是:
variable_name = variable_value
如果對一個已經有值的變數賦值,新值將取代舊值。取值的時候要在變數名前加$,$variable_name可以在引號中使用,這一點和其他高級語言是明顯不同的。如果出現混淆的情況,可以使用花括弧來區分,例如:
echo "Hi, $as"
就不會輸出「Hi, hello worlds」,而是輸出「Hi,」。這是因為Shell把$as當成一個變數,而$as未被賦值,其值為空。正確的方法是:
echo "Hi, ${a}s"
單引號中的變數不會進行變數替換操作。
關於變數,還需要知道幾個與其相關的Linux命令。
env用於顯示用戶環境區中的變數及其取值;set用於顯示本地數據區和用戶環境區中的變數及其取值;unset用於刪除指定變數當前的取值,該值將被指定為NULL;export命令用於將本地數據區中的變數轉移到用戶環境區。
下面我們來看一個更復雜的例子,結合這個例子,我們來講述Shell Script的語法。
1 #!/bin/bash
2 # we have less than 3 arguments. Print the help text:
3 if [ $# -lt 3 ]; then
4 cat<<HELP
5 ren -- renames a number of files using sed regular expressions
6
7 USAGE: ren 'regexp' 'replacement' files
8 EXAMPLE: rename all *.HTM files in *.html:
9 ren 'HTM$' 'html' *.HTM
10
11 HELP
12 exit 0
13 fi
14 OLD="$1"
15 NEW="$2"
16 # The shift command removes one argument from the list of
17 # command line arguments.
18 shift
19 shift
20 # $* contains now all the files:
21 for file in $*; do
22 if [ -f "$file" ]; then
23 newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
24 if [ -f "$newfile" ]; then
25 echo "ERROR: $newfile exists already"
26 else
27 echo "renaming $file to $newfile "
28 mv "$file" "$newfile"
29 fi
30 fi
31 done
我們從頭來看,前面兩行上一個例子中已經解釋過了,從第三行開始,有新的內容。if語句和其他編程語言相似,都是流程式控制制語句。它的語法是:
if …; then
…
elif …; then
…
else
…
fi
與其他語言不同,Shell Script中if語句的條件部分要以分號來分隔。第三行中的[]表示條件測試,常用的條件測試有下面幾種:
[ -f "$file" ] 判斷$file是否是一個文件
[ $a -lt 3 ] 判斷$a的值是否小於3,同樣-gt和-le分別表示大於或小於等於
[ -x "$file" ] 判斷$file是否存在且有可執行許可權,同樣-r測試文件可讀性
[ -n "$a" ] 判斷變數$a是否有值,測試空串用-z
[ "$a" = "$b" ] 判斷$a和$b的取值是否相等
[ cond1 -a cond2 ] 判斷cond1和cond2是否同時成立,-o表示cond1和cond2有一成立
要注意條件測試部分中的空格。在方括弧的兩側都有空格,在-f、-lt、=等符號兩側同樣也有空格。如果沒有這些空格,Shell解釋腳本的時候就會出錯。
$#表示包括$0在內的命令行參數的個數。在Shell中,腳本名稱本身是$0,剩下的依次是$0、$1、$2…、${10}、${11},等等。$*表示整個參數列表,不包括$0,也就是說不包括文件名的參數列表。
現在我們明白第三行的含義是如果腳本文件的參數少於三個,則執行if和fi語句之間 的內容。然後,從第四行到第十一行之間的內容在Shell Script編程中被稱為Here文檔,Here文檔用於將多行文本傳遞給某一命令。Here文檔的格式是以<<開始,後跟一個字元串,在 Here文檔結束的時候,這個字元串同樣也要出現,表示文檔結束。在本例中,Here文檔被輸出給cat命令,也即將文檔內容列印在屏幕上,起到顯示幫助 信息的作用。
第十二行的exit是Linux的命令,表示退出當前進程。在Shell腳本中可以使用所有的Linux命令,利用上面的cat和exit,從一方面來說,熟練使用Linux命令也可以大大減少Shell腳本的長度。
十四、十五兩句是賦值語句,分別將第一和第二參數賦值給變數OLD和NEW。緊接下來的兩句是注釋,注釋下面的兩條shift的作用是將參數列表中的第一個和第二個參數刪除,後面的參數依次變為新的第一和第二參數,注意參數列表原本也不包括$0。
然後,自二十一行到三十一行是一個循環語句。Shell Script中的循環有下面幾種格式:
while [ cond1 ] && { || } [ cond2 ] …; do
…
done
for var in …; do
…
done
for (( cond1; cond2; cond3 )) do
…
done
until [ cond1 ] && { || } [ cond2 ] …; do
…
done
在上面這些循環中,也可以使用類似C語言中的break和continue語句中斷 當前的循環操作。第二十一行的循環是將參數列表中的參數一個一個地放入變數file中。然後進入循環,判斷file是否為一個文件,如果是文件的話,則用 sed命令搜索和生成新的文件名。sed基本上可以看成一個查找替換程序,從標准輸入,例如管道讀入文本,並將結果輸出到標准輸出,sed使用正則表達式 進行搜索。在第二十三行中,backtick(`)的作用是取出兩個backtick之間的命令輸出結果,在這里,也就是將結果取出賦給變數 newfile。此後,判斷newfile是否已經存在,否則就把file改成newfile。這樣我們就明白這個腳本的作用了,Shell Script編寫的其他腳本與此相似,只不過是語法和用法稍有不同而已。
通過這個例子我們明白了Shell Script的編寫規則,但還有幾件事情需要講述一下。
第一個,除了if語句之外,Shell Script中也有類似C語言中多分支結構的case語句,它的語法是:
case var in
pattern 1 )
… ;;
pattern 2 )
… ;;
*)
… ;;
esac
我們再就下面一個例子,看看case語句的用法。
while getopts vc: OPTION
do
case $OPTION in
c) COPIES=$OPTARG
ehco "$COPIES";;
v) echo "suyang";;
\?) exit 1;;
esac
done
上面的getopts類似於C語言提供的函數getopts,在Shell Script中,getopts經常和while語句聯合起來使用。getopts的語法如下:
getopts option_string variable
option_string中包含一串單字元選項,若getopts在命令行參數中 發現了連字元,那麼它會將連字元之後的字元與option_string進行比較,若匹配成功,則把變數variable的值設為該選項,若無匹配,則把 變數的值設為?。有時候,選項還會帶一個值,例如-c5等,這時要在option_string中該選項字母後面加上一個冒號,getopts發現冒號 後,會讀取該值,然後將該值放入特殊變數OPTARG中。這個命令比較復雜,如有需要,讀者可以詳細參閱Shell編寫的相關資料。
上面這個循環的作用就是依次取出腳本名稱後面的選項,進行處理,如果輸入了非法選項,則進入"?指定的部分,退出腳本程序。
第二個,Bash提供了一種用於互動式應用的擴展select,用戶可以從一組不同的值中進行選擇。其語法如下:
select var in …; do
break;
done
例如,下面這段程序的輸出是:
#!/bin/bash
echo "Your choice?"
select var in "a" "b" "c"; do
break
done
echo $var
----------------------------
Your choice?
1) a
2) b
3) c
第三,Shell Script中也可以使用自定義的函數,其語法形式如下:
functionname()
{
…
}
例如我們可以把上面第二個例子中第四到第十二行放入一個名為help函數體內,以後每次調用的時候直接寫help即可。函數中處理函數調用參數的方法是,直接用上面講過的$1、$2來分別表示第一、第二個參數,用$*表示參數列表。
第四,我們也可以在Shell下調試Shell Script腳本,當然最簡單的方法就是用echo輸出查看變數取值了。Bash也提供了真正的調試方法,就是執行腳本的時候用-x參數。
sh ?x filename.sh
這會執行腳本並顯示腳本中所有變數的取值,也可以使用參數-n,它並不執行腳本,只是返回所有的語法錯誤。
㈢ 如果要對windows和linux系統進行snmp網路管理,
1、在Windows和linux組件管理和監視工具,勾選「WMISNMP提供程序」。
2、添加一個社區名稱「public」,許可權設為「只讀」或者「讀寫」。
3、添加可以接受SNMP的消含主機地址,一般就拿褲笑是遠程主機的IP,如果是純賀提供給本地讀的,就填「localhost」即可。
㈣ 《Linux操作系統管理與網路服務教程》pdf下載在線閱讀全文,求百度網盤雲資源
《Linux操作系統管理與網路服務教程》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1BhCR40fn55A0IiWHXlIHSQ
簡介:本書包括4篇,□□篇「linux操作系統基礎」將引導讀者建立linux操作系統,認識linux操作系統的基本使用環境,熟悉linux操作系統的基本操作等;第□篇「linux操作系統的基本管理」將學習重點轉移到操作系統管理操作上,內容包括用戶賬戶管理、文件系統管理、磁碟管理以及系統資源管理等;第3篇「shell基礎」對shell腳本程序設計做了概括性的介紹;第4篇「網路服務基礎」就常見的linux網路伺服器的搭建與基本配置展開討論。書中結合了大量實踐操作案例並輔以操作過程圖示。本書作者在編寫時參考了lpi(linux professional institute)認證考試大綱的要求,涵蓋了lpi 101與lpi 10□考試大綱要求的知識點。
《計算機系列教材:Linux操作系統管理與網路服務教程》既可作為高等院校linux相關課程的專業教材,也可作為讀者參加lpic level 1認證培訓及考試復習的核心學習材料,還可作為專業人士的常用參考書。