04_重要系統配置檔案

一壶缘發表於2024-12-02

Centos 7 重要系統配置檔案

一、網路卡配置檔案

  • 配置檔案位置 /etc/sysconfig/network-scripts/網路卡名
  • 詳細引數說明
HWADDR= 網路卡MAC地址
TYPE=Ethernt 網路卡型別:乙太網
PROXY_METHOD=none 代理方式:關閉狀態
BROWSER_ONLY=no 只是瀏覽器(yes|no)
BOOTPROTO=static 獲取IP方式(static|dhcp|none)
DEFROUTE=yes 設定為預設路由(yes|no)
IPV4_FAILURE_FATAL=no 是否開啟IPV4致命錯誤檢測
IPV6INIT=yes IPV6是否自動初始化
IPV6_DEFROUTE=yes PV6是否可以為預設路由
IPV6_FAILURE_FATAL=no 是不開啟IPV6致命錯誤檢測
IPV6_ADDR_GEN_MODE=stable-privacy IPV6地址生成模型
NAME=eth0 網路卡物理裝置名稱
UUID= UUID識別碼
ONBOOT=no 開機自啟(yes
IPADDR= IP地址
NETNASK=255.255.255.0 子網掩碼(PREFIX=24)
GATEWAY= 閘道器
DNS1= 首選DNS
DNS2- 備選DNS
  • 簡單網路卡配置
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.10.10.31
    NETMASK=255.255.255.0
    
  • 重啟網路卡方法
systemctl restart network                    針對所有網路卡重啟
systemctl status networ 					 檢視網上狀態

ifdown eth0									 關閉eth0網路卡    
ifup etho									 開啟eth0網路卡

二、主機名配置檔案,hosts與hostname

要理解 /etc/hosts 與 hostname 之間的關係,首先需要明白域名和主機名的區別。

  • 什麼域名

無論在區域網還是INTERNET上,每臺主機都有一個IP地址,是為了區分此臺主機和彼臺主機,也就是說IP地址就是主機的門牌號。但IP地址不方便記憶,所以又有了域名。域名只是在公網(INTERNET)中存在,每個域名都對應一個IP地址,但一個IP地址可有對應多個域名(例如:linuxsir.org)。

  • 2.什麼是主機名

主機名是用於什麼的呢?在一個區域網中,每臺機器都有一個主機名,用於主機與主機之間的便於區分,就可以為每臺機器設定主機名,以便於以容易記憶的方法來相互訪問。比如我們在區域網中可以根據每臺機器的功用來為其命名。

  • 3.域名(Domain)和主機名(hostname)的區別

主機名通常在區域網內使用,透過hosts檔案,主機名就被解析到對應ip;域名通常在internet上使用,但如果本機不想使用internet上的域名解析,這時就可以更改 /etc/hosts 檔案,加入自己的主機名解析。

例子:比如我們有三臺主機,每臺做不同的事,一臺做MAIL伺服器,一臺做FTP伺服器,一臺做SMB伺服器,所以我們就可以這樣來設計主機名:

27.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
  • 4.域名解析檔案/etc/hosts說明

/etc/hosts 的內容一般有如下類似內容:

127.0.0.1     lochost.localdomain  localhost
192.168.1.100    debian.com        debian
192.168.1.120    ftpserver         ftp120

注:127.0.0.1 是迴環地址,比如我們不想讓區域網的其它機器看到我們測試的網路程式,就可以用迴環地址來測試。

一般情況下hosts檔案的每行為一個主機,每行由三部份組成,每個部份由空格隔開。其中#號開頭的行做說明,不被系統解釋。

hosts檔案的格式如下:

第一部份: 網路IP地址;
第二部份: 主機名.域名,注意主機名和域名之間有個半形的點,比如 localhost.localdomain;
第三部份: 主機名(主機名別名) ,其實就是主機名;

當然每行也可以是兩部份,就是主機IP地址和域名。比如 192.168.1.195 debian

etc/hosts檔案的作用: 將主機名(配置三部分)或域名(配置兩部分)解析到IP。

/etc/hostname 存放主機名,/etc/hosts 存放域名與ip的對應關係,其實主機名和 /etc/hosts 沒什麼關係,只不過如果 /etc/hosts 中的IP和主機名不對應的話,就不能用主機名來訪問這臺主機了,所以建議將主機名加進/etc/hosts中,避免訪問時用的域名和Shell提示符中的主機名不一致造成混淆。所以手工設定主機名,應該改的是另外的一個配置檔案(如/etc/sysconfig/network),修改了之後“最好”把/etc/hosts也對應修改一下。

三、磁碟掛載檔案

  • 檔案位置 /etc/fstab
  • 檔案內容

    Linux系統下的/etc/fstab 檔案 包含了需要開機後自動掛載的檔案系統記錄,Linux系統啟動時將讀取這個檔案來自動掛載檔案系統。我們可以透過修改這個檔案將檔案系統設定為開機自動掛載。

    UUID=64fc4e32-9cc9-4af9-8846-dc13865f770e /  ext4 defaults 1 1
    UUID=14c3958d-b0a9-41bd-a046-06e148013349 /boot ext4 defaults 1 2
    UUID=15399f4c-8788-4348-b066-34179fe887cb 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
    /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0  #自動掛載光碟機到/mnt/cdrom
    
  • 檔案各列含意
    • 第一列:Device,磁碟裝置檔案或該裝置的Label或UUID。可以使用dumpe2label命令檢視裝置標籤、UUID。或者使用簡單命令blkid檢視UUID。

      注意 :使用裝置名稱(/dev/sda)來掛載分割槽時是被固定死的,一旦磁碟的插槽順序發生了變化,就會出現名稱不對應的問題。因為這個名稱是會改變的。不過使用label掛載就不用擔心插槽順序方面的問題。不過要隨時注意你的Label name。至於UUID,每個分割槽被格式化以後都會有一個UUID作為唯一的標識號,使用uuid掛載的話就不用擔心會發生錯亂的問題了

    • 第二列:第二列:Mount point:裝置的掛載點,就是你要掛載到哪個目錄下

    • 第三列:filesystem:磁碟檔案系統的格式,包括ext2、ext3、reiserfs、nfs、iso9660

    • 第四列:parameters:檔案系統的引數,一般設定為預設 :defaults

Async/sync 設定是否同步方式執行,預設為async
auto/noauto 執行mount -a 命令時,是否主動掛載,預設為auto
rw/ro 是否以只讀/讀寫方式掛載
exec/noexec 限制是否能夠進行“執行”操作
user/nouser 是否允許使用者使用mount命令掛載
suid/nosuid 是否允許suid存在
usquota 啟動檔案系統支援磁碟配額
grpquota 啟動檔案系統支援群組磁碟配額
default 預設引數rw,suid,dev,exec,auto,nouser,async

​ -第五列:能否被dump備份命令作用:dump是一個用來作為備份的命令。通常這個引數的值為0 或者1。0 代表不做dump備份,1 代表要每天進行dump備份,2 代表不定期進行dump操作

​ 第六列:是否檢驗扇區:開機的過程中,系統預設會以fsck檢驗我們系統是否為完整(clean)。

		0 不要檢驗,1 最早檢驗(一般根目錄會選擇最早檢驗),2 1級別檢驗完成後進行檢驗

四、開機自動執行命令檔案rc.local

  • 檔案位置/etc/rc.local
  • 檔案屬性

    在Centos7下,rc.local檔案,開機預設是不執行的。它是個軟連結

    [root@data-1-1 ~]# ll /etc/rc.local
    lrwxrwxrwx. 1 root root 13 Apr  8 17:11 /etc/rc.local -> rc.d/rc.local
    

    實際檔案不具備執行許可權,新增執行許可權.

    [root@data-1-1 ~]# ll /etc/rc.d/rc.local
    -rw-r--r--. 1 root root 524 Jun 20 09:12 /etc/rc.d/rc.local
    [root@data-1-1 ~]# chmod +x /etc/rc.d/rc.local
    
  • 開機自啟設定
    systemctl start rc-local.service
    systemctl enable rc-local.service
    
  • 檔案示例
    #!/bin/sh
    #
    #This script will be executed *after* all the other init scripts.
    #You can put your own initialization stuff in here if you don't
    #want to do the full Sys V style init stuff.
    touch /var/lock/subsys/local
    #每次系統啟動時都會touch這個檔案,這個檔案的修改時間就是系統的啟動時間
    /etc/rc.d/init.d/httpd start    #apache服務就會在開機時自動啟動
    

五、執行級別

  • centos7的執行級別都定義在/lib/systemd/sysem下:

    ls -ltr /lib/systemd/system/runlevel*.target
    lrwxrwxrwx. 1 root root 17 Oct 25 23:46 /lib/systemd/system/runlevel2.target -> multi-user.target
    lrwxrwxrwx. 1 root root 13 Oct 25 23:46 /lib/systemd/system/runlevel1.target -> rescue.target
    lrwxrwxrwx. 1 root root 15 Oct 25 23:46 /lib/systemd/system/runlevel0.target -> poweroff.target
    lrwxrwxrwx. 1 root root 17 Oct 25 23:46 /lib/systemd/system/runlevel3.target -> multi-user.target
    lrwxrwxrwx. 1 root root 17 Oct 25 23:46 /lib/systemd/system/runlevel4.target -> multi-user.target
    lrwxrwxrwx. 1 root root 13 Oct 25 23:46 /lib/systemd/system/runlevel6.target -> reboot.target
    lrwxrwxrwx. 1 root root 16 Oct 25 23:46 /lib/systemd/system/runlevel5.target -> graphical.target
    
    
  • 設定執行級別
    systemctl get-default							獲得當前的執行級別
    systemctl set-default multi-user.target			設定預設的執行級別為mulit-user
    systemctl isolate multi-user.target				在不重啟的情況下,切換到執行級別mulit-user下
    systemctl isolate graphical.target				在不重啟的情況下,切換到圖形介面下
    
    

六、系統變數配置檔案

  • 環境變數的分類
    • 生效範圍分類

    • 系統環境變數:公共的,對全部的使用者生效

    • 使用者環境變數:使用者私有的,只對該使用者生效

    • 生存週期分類

    • 永久環境變數:在變數指令碼檔案中配置,

    • 臨時環境變數:使用時在shell中臨時定義,退出shell後失效

  • 檢視環境變數
    • env檢視當前使用者全部的環境變數
    • ·echo $變數名檢視具體變數
  • 常用環境變數
    • PATH 可執行程式的搜尋目錄,可執行程式包括Linux系統命令和使用者的應用程式。如果可執行程式的目錄不在PATH指定的目錄中,執行時需要指定目錄。

      • PATH環境變數存放的是目錄列表,目錄之間用冒號:分隔,最後的圓點.表示當前目錄。

      • PATH預設包含了Linux系統命令所在的目錄(/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin),如果不包含這些目錄,Linux的常用命令也無法執行(要輸入絕對路徑才能執行)。

      • 在使用者的.bash_profile檔案中,會對PATH進行擴充,如下:

        export PATH=$PATH:$HOME/bin
        
      • 如果PATH變數中沒有包含圓點.,執行當前目錄下的程式需要加./或使用絕對路徑。

    • LANG LANG環境變數存放的是Linux系統的語言、地區、字符集,它不需要系統管理員手工設定,/etc/profile會呼叫/etc/profile.d/lang.sh指令碼完成對PATH的設定。CentOS7.x 字符集配置檔案在/etc/locale.conf檔案中

      cat /etc/locale.conf 
      LANG="en_US.UTF-8"
      
    • HOSTNAME 伺服器主機名

    • SHELL 使用者當前 使用的Shell直譯器

    • HISTSIZE 儲存歷史命令的數目

    • USER 當前登入使用者名稱

    • HOME 當前登入使用者家目錄

  • 設定環境變數
    變數名='值'
    export 變數名
    
    export 變數名='值'
    
    如果環境變數的值沒有空格等特殊符號,可以不用單引號包含。
    export ORACLE_HOME=/oracle/home
    export ORACLE_BASE=/oracle/base
    export ORACLE_SID=snorcl11g
    export NLS_LANG='Simplified Chinese_China.ZHS16GBK'
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:.
    
  • 系統環境變數檔案的設定
    • /etc/profile檔案中設定。使用者登入時執行/etc/profile檔案中設定系統的環境變數。但是,Linux不建議在/etc/profile檔案中設定系統環境變數。

    • /eetc/profile.d目錄中增加環境變數指令碼檔案,這是Linux推薦的方法。/etc/profile在每次啟動時會執行/etc/profile.d下全部的指令碼檔案。/etc/profile.d比/etc/profile好維護,不想要什麼變數直接刪除/etc/profile.d下對應的 shell 指令碼即可。

      ls /etc/profile.d/
      256term.csh  colorgrep.csh  colorls.csh  csh.local  lang.sh   less.sh   which2.csh
      256term.sh   colorgrep.sh   colorls.sh   lang.csh   less.csh  sh.local  which2.sh
      
      cat which2.sh
      # Initialization script for bash and sh
      
      # export AFS if you are in AFS environment
      alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
      
      
    • /etc/bashrc檔案中設定。該檔案配置的環境變數將會影響全部使用者使用的bash shell。但是,Linux也不建議在/etc/bashrc檔案中設定系統環境變數。

  • 使用者環境變數檔案設定

    在使用者的主目錄,有幾個特別的檔案,用ls .bash_*檢視。

    • .bash_profile 使用者登入時執行,可以用該檔案來配置專屬環境變數。(推薦首選)
    • .bashrc 當使用者登入時以及每次開啟新的Shell時該檔案都將被讀取,不推薦在裡面配置
    • .bash_logout 當每次退出系統(退出bash shell)時執行該檔案。
    • .bash_histort 儲存了當前使用者使用過的歷史命令
  • 環境變數指令碼檔案執行順序
    /etc/profile->/etc/profile.d->/etc/bashrc->使用者的.bash_profile->使用者的.bashrc
    同名的環境變數,如果在多個指令碼中有配置,以最後執行的指令碼中的配置為準。
    
  • 環境變數的生效
    • 在Shell下,用export設定的環境變數對當前Shell立即生效,Shell退出後失效。

      在指令碼檔案中設定的環境變數不會立即生效,退出Shell後重新登入時才生效,或者用source命令讓它立即生效,例如:

      source /etc/profile
      
  • 雖然設定環境變數的方法有多種,但是建議系統環境變數建議在/etc/profile.d目錄中配置,使用者環境變數在使用者的.bash_profile中配置,不建議在其它指令碼檔案中配置環境變,會增加運維的麻煩,容易出錯。

七、登入前、後提示資訊配置檔案

  • 登入前資訊配置檔案/etc/issue,當一個網路使用者或透過串列埠登入系統上時,/etc/issue的檔案內容顯示在login提示符之前
  • 登入後資訊配置檔案/etc/motd,使用者登入成功後,顯示在終端介面裡。

八、系統日誌檔案

  • 核心及公共訊息日誌 /var/log/messages

  • 計劃任務日誌 /var/log/cron

  • 系統引導日誌 /var/log/dmesg

  • 郵件系統日誌 /var/log/maillog

  • 最近使用者登入事件 /var/log/lastlog

  • 使用者登入、注消及系統開、關機事件 /var/log/wtmp

  • 當前登入的每個使用者的詳細資訊 /var/lrun/utmp

  • 與使用者驗證相關的安全性事件 /var/log/secure

  • 日誌訊息級別
    • 0 EMERG (緊急)會導致主機系統不可用的情況
    • 1 ALERT (警告) 必須馬上採取措施解決問題
    • 2 CRIT (嚴重) 比較嚴重的發問
    • 3 ERR (錯誤) 執行出現錯誤
    • 4 WARNING (提醒) 可能會影響系統功能的事件
    • 5 NOTICE (注意) 不會影響系統但值得注意
    • 6 INFO (資訊) 一般資訊
    • 7 DEBUG (除錯) 程式或系統除錯資訊

    九、系統硬體資訊檔案

  • cpu資訊檔案 /proc/cpuinfo

  • 記憶體資訊檔案 /proc/meminfo

  • 掛載資訊 /proc/mounts

相關文章