/etc/sysconfig/network-scripts/ifcfg-eth0
網卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 內容
DEVICE=eth0
HWADDR=00:0c:29:a8:5d:fe
TYPE=Ethernet
UUID=a2908f07-9fb2-4635-9024-7a69c8affc07
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
# BOOTPROTO=none static dhcp
# IPADDR=10.0.0.7
# NETMASK=255.255.255.0
# GATEWAY=10.0.0.254
# DNS1=8.8.8.8
# DNS2=180.76.76.76
USERCTL=no
PEERDNS=yes
IPV6INIT=no
如果是clone的機器,將HWADDR和UUID刪除
'''影響所有網卡'''
/etc/init.d/network restart
# 要確定ONBOOT=ON,不然就完了
'''只針對eth0網卡'''
ifdown eth0
ifup eth0
'''使用兩個&的作用是,down成功了再up'''
ifudown eth0 && ifup eth0
/etc/resolv.conf
DNS配置文件, 一般需要主、備的DNS
/etc/resolv.conf 內容
search localdomain
nameserver 8.8.8.8
namesever 180.76.76.76
/etc/hosts
靜態的主機名查找表,可以理解成局域網的DNS(主機名和IP解析),而非廣域網的DNS,需要手動維護
/etc/hosts 內容
10.0.0.7 oldboy
10.0.0.8 www.baidu.com
主機名要規范
hosts在企業的作用
- 開發、產品、測試等人員,用於通過正式的域名測試產品
- 服務器之間的調用可以用域名(內部的DNS),方便遷移
/etc/sysconfig/network
主機名的配置文件
/etc/sysconfig/network 內容
NETWORKING=yes
HOSTNAME=oldboy66-23
注意:生產環境中修改主機名
- 先用hostname將主機名修改
- 再修改[/etc/sysconfig/network]中的HOSTNAME字段
/etc/fstab
有關系統文件的靜態信息,設置文件系統掛載信息的文件,使得開機能夠自動掛載磁盤分區
/etc/fstab 內容
#
# /etc/fstab
# Created by anaconda on Sun Jul 2 00:53:11 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3e537f4b-9f4b-4f41-a18d-d1b29b4c6238 / ext4 defaults 1 1
UUID=908b6f35-6fc3-4833-a949-45d811a43ade /boot ext4 defaults 1 2
UUID=49a88ae9-fb5c-4af9-b5c7-bd3f01e64eaa swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
文件中一共有6列
列號 | 說明 | 備注 |
---|---|---|
1 | 需要被掛載的設備(磁盤或分區) | 也可以是UUID或磁盤標簽 |
2 | 掛載點 | |
3 | 類型,文件類型 | ext2 ext3 ext4 xfs ntfs |
4 | 掛載的選項 | 只讀,可寫等等 |
5 | 是否備份 | 默認0,不備份 |
6 | 系統是否開機協助檢查磁盤 | 系統根文件為1,默認0,不檢查[fsck命令檢查,好磁盤不要用!!!需要卸載的狀態使用] |
掛載的方法
- mount -t ext4 -o noexec,noatime /opt/sda1 /mnt
- 寫入/etc/fstab,實現開機自動掛載如下內容
/opt/sda1 /mnt ext4 noatime,noexec 0 0
- 也可以把第一條命令放在/etc/rc.local里面,效果同第2條。
如果/etc/fstab文件配置錯誤,系統無法啟動
測試手動掛載
# 創建了一個虛擬的塊設備
# dd if=/dev/zero of=/opt/sdb1 bs=4906 count=100
# 格式化
# mkfs.ext4 /opt/sdb1
# 掛載
# mount -t ext4 -o loop,noexec,noatime /opt/sda1 /mnt
# 查看
# df- h
/etc/rc.locacl
讓一個程序開機啟動類似Windows的啟動文件夾
讓一個程序開機啟動:
- chkconfig 不過需要滿足一些條件,類似(/etc/init.d/shhd)
- 放入/etc/rc.local
建議選擇,/etc/rc.local
所有程序開機啟動放入/etc/rc.local,好比服務器檔案文件。這樣比較規范,而且要給文件做注釋,並且備份。
/etc/rc.local是Linux加載的順序為最后加載。
NFS網絡文件系統掛載時,網卡還沒起,就已經加載fstab了,這樣就會報錯,因為順序。所以一般放在/etc/rc.local里,這樣確保NFS掛載成功。
/etc/inittab
設定系統啟動時init進程將把系統設置成什么樣的runlevel運行級別及加載相關的級別對應啟動文件設置
/etc/inittab 內容
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
CentOS5服務器啟動流程
graph TD
A["開機BIOS"]-->B["MBR引導"]
B-->C["GRUB引導菜單"]
C-->D["加載內核kernel"]
D-->E["啟動init進程"]
E-->F["讀取inittab文件"]
F-->G["執行rc.sysint rc等腳本"]
G-->H["啟動mingetty"]
H-->I["進入系統登錄界面"]
- 開機BIOS:光盤啟動,硬盤啟動,網卡啟動and so on
- MBR引導:硬盤0柱面0磁道1扇區的前446byte
- GRUB引導菜單(選擇引導哪個操作系統): cat /etc/grub.conf
- 加載內核kernel
- 啟動init進程: ps -ef|grep init
- 讀取inittab文件:/etc/inittab; /etc/rc.d/rc/sysinit; /etc/rc/d/rc3.d(進入文本模式)
/etc/init.d
通過yum或rpm安裝的程序,啟動的時候都在/etc/init.d文件夾內。如果用源碼安裝的,不在這個文件夾內
/etc/profile
定義一個別名,配置系統的變量,都在里面。與之匹配的還有一個目錄,即/etc/profile.d/ 這個目錄存在是程序或腳本,只要重新登錄,就會執行這個目錄下的腳本,與/etc/motd不同的是,/etc/motd是登錄后顯示的字符串,而profile.d下的是腳本。
/etc/profile.d/下的文件形式存在(*.sh為擴展名),但要可執行[chmod -x 123.sh]
/etc/issue
記錄用戶登錄前顯示的系統版本等信息,不太安全,建議優化。
/etc/motd
登錄后顯示的字符串
# cat -n /etc/issue
/etc/redhat-release
包含一行聲明RedHat版本號和名稱的信息。
# cat -n /etc/redhat-release
/etc/passwd
用戶賬戶文件
/etc/shadow
賬戶的密碼文件
/etc/group
用戶對應的組文件
/etc/gshadow
組的密碼文件
/etc/sudoers
建議使用visudo來編輯此文件,而不是vi,這樣可以檢查語法。如果用echo添加了信息后,建議使用visudo -c 檢查語法。如果語法錯,會導致所有su系統無法使用。
/var/log/messages 如果系統或軟件故障,查詢這個文件
系統信息默認日志文件,非常重要,按周自動輪循
rsyslog完成
/var/log/secure 如果有人在網絡上掃描shh 安全問題
系統安全日志文件,SSH連接日志,接受密碼說明登錄成功,如果連接failure,同一個ip,就要改密碼改端口,只用vpn。
# tail -f /etc/log/secure 動態查看最后10行的內容
如果硬件故障,用 # dmesg 查看
/var/spool/cron/root
定時任務crond的配置文件所在路徑,建議備份
# cat /var/spool/cron/root
/proc/
進程管理目錄
# cat /proc/meminfo 系統內存信息
# cat /proc/cpuinfo 關於處理器的信息,類型,廠家,型號和性能
# cat /proc/loadavg 系統負載平均值信息
# cat /proc/interrupts 正在使用的中斷,和曾經有多少和中斷
# cat /proc/mounts 查看設備掛載信息 類似df -h,但是更詳細
重點文件匯總
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf 將被淘汰
/etc/hosts
/etc/sysconfig/network
/etc/fstab
/etc/rc.local
/etc/inittab 將被淘汰
/etc/init.d
/etc/profile
/usr/local 類似programfile
/etc/src 內核源碼目錄
/var/log/messagers 系統信息默認日志文件
/var/log/secure 系統安全日志
/var/spool/cron/root 定時任務的路徑
/proc/cpuinfo
/proc/meminfo
/proc/loadavg
/proc/mounts
寫在后面
- 網卡內的DNS優先級要高於resolve.conf
- CentOS6 在使用[/etc/init.d/network restart]會將resolve.conf內容沖掉
- 建議配置DNS在網卡文件中配置,而不是在[/etc/resolv.conf]中配置
- [/etc/hosts]手動配置的IP對域名的關聯作用
- 主機名命名要規范
- 修改[/etc/sysconfig/network]主機名,這樣系統重啟后主機名還在,如果用hostname命令修改,重啟就沒有
思考題
- fstab一旦配置錯誤,會導致服務器無法啟動,如何修復?出問題后,修復:
- 開機提示:輸入密碼 修復
- 救援模式,光盤啟動
- 修改/etc/fstab只讀狀態
mount -o rw
remount /