linux 系統管理
阿新 • • 發佈:2020-08-05
開機自啟動流程
1. 按下電源 2. BIOS自檢 3. MBR引導 4. 進入GRUB選單 5. 載入核心 Kernel 6. systemd init程序 7. 讀取執行級別 8. 執行初始化系統檔案 9. 並行啟動系統開機自啟動的服務 10. 執行getty檔案,顯示登陸介面 # 系統啟動預設配置檔案 [root@localhost ~]# ll /etc/systemd/system/default.target lrwxrwxrwx 1 root root 41 Aug 5 10:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target # 系統啟動等級檔案 [root@localhost ~]# ll /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 Jul 5 00:11 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Jul 5 00:11 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Jul 5 00:11 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Jul 5 00:11 /usr/lib/systemd/system/runlevel6.target -> reboot.target # 系統初始化檔案 [root@localhost ~]# ll /usr/lib/systemd/system/sysinit.target -rw-r--r--. 1 root root 518 Oct 31 2018 /usr/lib/systemd/system/sysinit.target # getty檔案 [root@localhost ~]# ll /usr/lib/systemd/system/getty.target -rw-r--r--. 1 root root 460 Oct 31 2018 /usr/lib/systemd/system/getty.target centos-6 centos-7 開機啟動的區別 init管理程序 systemd管理程序 序列啟動服務 並行啟動服務 啟動效率慢,容易故障 啟動效率高,不容易出現故障
系統執行級別
[root@localhost ~]# ll /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 Jul 5 00:11 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Jul 5 00:11 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Jul 5 00:11 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Jul 5 00:11 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Jul 5 00:11 /usr/lib/systemd/system/runlevel6.target -> reboot.target 0 poweroff # 關機 1 rescue # 單使用者模式 2 multi-user # 多使用者模式 3 multi-user # 多使用者模式 4 multi-user # 多使用者模式 5 graphical # 圖形介面模式 桌面模式 6 reboot # 重啟 # 如何檢視系統執行級別 centos-6 [root@localhost ~]# runlevel N 3 [root@localhost ~]# init 5 [root@localhost ~]# runlevel 3 5 [root@localhost ~]# init 3 [root@localhost ~]# runlenve [root@localhost ~]# runlevel 5 3 # centos-7 [root@localhost ~]# systemctl get-default multi-user.target # 修改執行級別 [root@localhost ~]# systemctl set-default graphical.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target. [root@localhost ~]# systemctl get-default graphical.target [root@localhost ~]# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target. [root@localhost ~]# systemctl get-default multi-user.target
system系統呼叫命令
systemd 全稱 system daemon 表示 守護系統程序 # 主配置檔案目錄 [root@localhost ~]# ll /etc/systemd/system/ -d drwxr-xr-x. 12 root root 4096 Aug 5 15:21 /etc/systemd/system/ # 系統服務配置檔案目錄 [root@localhost ~]# ll /etc/systemd/system/ -d drwxr-xr-x. 12 root root 4096 Aug 5 15:21 /etc/systemd/system/ # 程式,程序執行時產生的一些檔案目錄 [root@localhost ~]# ll /run/systemd/system/ -d drwxr-xr-x 5 root root 160 Aug 5 15:01 /run/systemd/system/ systemctl命令選項: restart # 重新啟動(先關閉在啟動id會變) 示例:systemctl restart nginx start # 開始啟動 示例:systemctl start nginx status # 服務狀態 示例:systemctl status nginx stop # 服務停止 示例:systemctl stop nginx reload # 平滑重啟(id不變 重新載入服務配置檔案) 示例:systemctl reload nginx mask # 禁用某個服務 示例:systemctl mask nginx unmask # 解除某個禁用 示例:systemctl unmask nginx enable # 設定成開啟自啟動 示例:systemctl enable nginx disable # 取消開機自啟動 示例:systemctl disable nginx # status 狀態說明 active (running) # 執行 Active: inactive (dead) # 不在執行 disabled # 開機不自啟 enabled # 開機自啟 failed # 失敗 # 顯示當前執行級別下開機自啟動的服務 systemctl list-unit-files [root@localhost ~]# systemctl list-unit-files UNIT FILE STATE # 單元檔案狀態 proc-sys-fs-binfmt_misc.automount static # 靜態的 不能作為開機自啟動 tmp.mount disabled # 禁止開機自啟動 auditd.service enabl # 開機自啟動的
hostname systemctl設定
# 使用systemctl進行關機重啟操作
systemctl reboot # 重啟
systemctl poweroff # 關機
# 如何設定主機名
hostnaem # 檢視主機名
hostnamectl # 檢視主機詳細資訊
hostnamectl set-hostname admin.local # 修改主機名重啟生效(永久)
# 主機名配置檔案
/etc/hostname
如何修改字符集
# 檢視本機字符集
[root@localhost ~]# echo $LANG
en_CN.UTF-8
# 改主機字符集
[root@localhost ~]# localectl set-locale LANG=zh_CN.UTF-8 # 重啟生效
[root@localhost ~]# echo $LANG
en_CN.UTF-8
# 字符集配置檔案 /ect/locale.conf
# export臨時修改變數
[root@qls ~]# export LANG=en_US.UTF-8
[root@qls ~]# echo $LANG
en_US.UTF-8
系統日誌管理
[root@qls ~]# journalctl -xe # 檢視當前服務的日誌
[root@qls ~]# tail /var/log/messages # 系統的安全日誌
# 檢視日誌的最後20行內容
[root@qls ~]# journalctl -n 20
# 實時檢視日誌的輸出
[root@qls ~]# journalctl -f
# 顯示日誌的級別日誌
[root@qls ~]# journalctl -p
alert crit debug emerg err info notice warning
# 只檢視某個服務的日誌
[root@qls ~]# journalctl -u sshd
單使用者模式
# 忘記root密碼
開機在grub介面輸入 e
在linux16開頭的行的最後面輸入 init=/bin/bash enforcing=0
按 ctrl鍵 + x
重新掛載根分割槽 mount -o rw,remount /
修改密碼 echo 'new passwd' | passwd --stdinn root
重啟 exec /sbin/init
#執行級別被設定為重啟
[root@web01 ~]# systemctl set-default reboot.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/reboot.target.
[root@web01 ~]# systemctl get-default
reboot.target
開機在grub介面輸入 e
在linux16開頭的行的最後面輸入 rd.break
按 ctrl鍵 + x
重新掛載根分割槽 mount -o rw,remount /sysroot
賦予許可權 chroot /sysroot
修改執行級別
exit
reboo
救援模式
# 系統損壞了,資料很重要 需要把資料拷貝出來
# MBR引導壞掉
dd if=/dev/zero of=/dev/sda bs=1 count=446
# 修復MBR
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
網咖命令規則
規則1:如果Firmware或者BIOS提供的裝置索引資訊可用就用此命名。比如eno1。否則使用規則2
規則2:如果Firmware或Bios的PCI-E擴充套件插槽可用就用此命名。比如ens1,否則使用規則3
規則3:如果硬體介面的位置資訊可用就用此命名。比如enp2s0
規則4:根據MAC地址命名,比如enx7d3e9f。預設不開啟。
規則5:上述均不可用時迴歸傳統命名方式
上面的所有命名規則需要依賴於一個安裝包:biosdevname
# 命令列修改網絡卡命名規則
mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=ens33
DEVICE=ens33
修改
NAME=eth0
DEVICE=eth0
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
簡單系統優化
[root@qls ~]# ifconfig eth1 172.16.1.100/24
[root@qls ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
[root@qls ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.100
PREFIX=24
# 更新源
[root@qls ~]# rm -rf /etc/yum.repos.d/*
[root@qls ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@qls ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@qls ~]# ll /etc/yum.repos.d/
total 8
-rw-r--r--. 1 root root 2523 Aug 5 20:09 CentOS-Base.repo
-rw-r--r--. 1 root root 664 Aug 5 20:09 epel.repo
# 關閉firewalld及selinux
[root@qls ~]# systemctl stop firewalld
[root@qls ~]# systemctl disable firewalld
[root@qls ~]# setenforce 0
[root@qls ~]# vi /etc/sysconfig/selinux
[root@qls ~]# grep 'SELINUX' /etc/sysconfig/selinux
# SELINUX= can take one of these three values:
SELINUX=disabled
# 關閉NetworkManager網路
[root@qls ~]# systemctl stop NetworkManager
[root@qls ~]# systemctl disable NetworkManager
# 同步時間
[root@qls ~]# crontab -l
* * * * * /usr/bin/ntpdate ntp.aliyun.com &> /dev/null
# 配置檔案介紹
<domain> <type> <item> <value>
<domain>表示要限制的使用者
<type>設定型別
<item>表示可選的資源
<value>表示要限制的值
# 加大檔案描述符
[root@qls ~]# echo '* - nofile 65535 ' >>/etc/security/limits.conf
# 檢查結果
[root@qls ~]# tail -1 /etc/security/limits.conf