維護(hù)Debian系統(tǒng)是確保其穩(wěn)定性、安全性和最佳性能的關(guān)鍵。系統(tǒng)管理員需要掌握一系列的技巧來處理從用戶管理到硬件配置的各種任務(wù)。本教程將介紹一些基礎(chǔ)而重要的維護(hù)技巧,幫助管理員有效地監(jiān)控和維護(hù)各自的Debian系統(tǒng)。
一、系統(tǒng)
可以通過下面的方法檢查誰登錄在系統(tǒng)里。
- who(1) 顯示誰登錄在系統(tǒng)里面;
- w(1) 顯示誰登錄在系統(tǒng)里面,他們正在在做什么;
- last(1) 顯示用戶最后登錄的列表;
- lastb(1) 顯示用戶最后錯(cuò)誤登錄的列表。
“/var/run/utmp” 和 “/var/log/wtmp” 存儲這樣的用戶信息。
二、警告所有人
可以通過下面的方式使用 wall(1) 給登錄系統(tǒng)的每一個(gè)人發(fā)送信息。
$ echo "We are shutting down in 1 hour" | wall
三、硬件識別
對于 PCI 類設(shè)備(AGP, PCI-Express, CardBus, ExpressCard 等), 一開始就使用 lspci(8) (也許加上 “-nn” 選項(xiàng)) 進(jìn)行硬件識別比較好。
此外,可以通過閱讀 “/proc/bus/pci/devices” 里面的內(nèi)容或?yàn)g覽”/sys/bus/pci” 下面的目錄樹來進(jìn)行硬件識別
硬件識別工具列表:
軟件包 | 流行度 | 大小 | 說明 |
pciutils | V:244, I:991 | 212 | Linux PCI 工具: lspci(8) |
usbutils | V:72, I:868 | 325 | Linux USB 工具: lsusb(8) |
nvme-cli | V:14, I:22 | 1621 | Linux NVMe 工具: nvme(1) |
pcmciautils | V:6, I:10 | 91 | Linux PCMCIA 工具: pccardctl(8) |
scsitools | V:0, I:2 | 346 | SCSI 硬件管理工具集: lsscsi(8) |
procinfo | V:0, I:9 | 132 | 從 “/proc”: lsdev(8) 獲得系統(tǒng)信息 |
lshw | V:13, I:91 | 919 | 硬件配置信息: lshw(1) |
discover | V:40, I:957 | 98 | 硬件識別系統(tǒng): discover(8) |
四、硬件配置
像 GNOME 和 KDE 這類現(xiàn)代圖形桌面系統(tǒng),雖然大部分硬件的配置都能夠通過相應(yīng)的圖形配置工具來管理,但知道一些配置它們的基礎(chǔ)方式,也是一個(gè)好的主意。
硬件配置工具列表:
軟件包 | 流行度 | 大小 | 說明 |
console-setup | V:89, I:967 | 428 | Linux 控制臺字體和鍵盤表工具 |
x11-xserver-utils | V:298, I:524 | 568 | X 服務(wù)端工具: xset(1), xmodmap(1) |
acpid | V:85, I:154 | 158 | 管理高級可配置和電源接口(ACPI)事件分發(fā)的后臺守護(hù)進(jìn)程(daemon) |
acpi | V:10, I:142 | 47 | 顯示 ACPI 設(shè)備信息的工具 |
sleepd | V:0, I:0 | 86 | 在筆記本空閑時(shí),使其進(jìn)入休眠狀態(tài)的后臺守護(hù)進(jìn)程(daemon) |
hdparm | V:183, I:350 | 256 | 硬盤訪問優(yōu)化 (參見 第 9.6.9 節(jié) “硬盤優(yōu)化”) |
smartmontools | V:206, I:249 | 2358 | 使用 S.M.A.R.T. 控制和監(jiān)控存儲系統(tǒng) |
setserial | V:4, I:7 | 103 | 串口管理工具集 |
memtest86+ | V:1, I:21 | 12711 | 內(nèi)存硬件管理工具集 |
scsitools | V:0, I:2 | 346 | SCSI 硬件管理工具集 |
setcd | V:0, I:0 | 37 | 光驅(qū)訪問優(yōu)化 |
big-cursor | I:0 | 26 | X 系統(tǒng)的大鼠標(biāo)光標(biāo) |
這里, ACPI 是一個(gè)比 APM 新的電源管理系統(tǒng)框架。
注意:現(xiàn)代系統(tǒng)的 CPU 頻率調(diào)整功能,是由內(nèi)核模塊 acpi_cpufreq 管理的。
五、系統(tǒng)和硬件時(shí)間
下面設(shè)置系統(tǒng)的硬件時(shí)間為:MM/DD hh:mm, CCYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
Debian 系統(tǒng)的時(shí)間通常顯示為本地時(shí)間,但硬件時(shí)間通常使用 UTC(GMT) 時(shí)間。如果硬件時(shí)間設(shè)置為 UTC 時(shí)間,請?jiān)凇?etc/default/rcS”里面設(shè)置“UTC=yes”。
下面是重新配置 Debian 系統(tǒng)使用的時(shí)區(qū)。
# dpkg-reconfigure tzdata
如果希望通過網(wǎng)絡(luò)來更新系統(tǒng)時(shí)間,考慮使用 ntp, ntpdate 和 chrony 這類包提供的 NTP 服務(wù)。在 systemd 下,是使用 systemd-timesyncd 來替代進(jìn)行網(wǎng)絡(luò)時(shí)間同步。
六、終端配置
有幾個(gè)組件可以用來配置字符控制臺和 ncurses(3) 系統(tǒng)功能。
“/etc/terminfo/*/*” 文件(terminfo(5));
- “$TERM” 環(huán)境變量(term(7));
- setterm(1)、stty(1)、tic(1) 和 toe(1)。
如果 xterm 的 terminfo 對非 Debian 的 xterm 不起作用,則當(dāng)從遠(yuǎn)程登錄到 Debian 系統(tǒng)時(shí),需要改變終端類型 “$TERM”,從 “xterm” 更改為功能受限的版本(例如 “xterm-r6”)。
七、聲音基礎(chǔ)設(shè)施
用于現(xiàn)在的 Linux 的聲卡設(shè)備驅(qū)動(dòng)程序由 高級 Linux 聲音體系(Advanced Linux Sound Architecture,ALSA) 提供。ALSA 提供了兼容之前的 開放聲音系統(tǒng)(Open Sound System,OSS)的模擬模式。
應(yīng)用軟件不僅可被配置為不僅直接訪問聲音設(shè)備,也可以通過一些標(biāo)準(zhǔn)化聲音服務(wù)端系統(tǒng)來訪問它們。目前,PulseAudio、JACK 和 PipeWire 被用作聲音的服務(wù)端系統(tǒng)。
每個(gè)流行的桌面環(huán)境通常都有一個(gè)通用的聲音引擎。每個(gè)被應(yīng)用程序使用的聲音引擎都可以選擇連接到不同的聲音服務(wù)器。
使用 “cat /dev/urandom > /dev/audio” 或 speaker-test(1) 來測試揚(yáng)聲器(^C 停止)。如果無法聽到聲音,那揚(yáng)聲器可能連接到了一個(gè)靜音輸出?,F(xiàn)代的聲音系統(tǒng)有許多輸出。alsa-utils 軟件包中的 alsamixer(1) 可以很好地配置聲音和靜音設(shè)置。
聲音軟件包:
軟件包 | 流行度 | 大小 | 說明 |
alsa-utils | V:323, I:463 | 2605 | 配置和使用 ALSA 的工具 |
oss-compat | V:1, I:18 | 18 | 在 ALSA 下兼容 OSS,預(yù)防 “/dev/dsp not found” 錯(cuò)誤 |
pipewire | V:264, I:315 | 119 | 音頻和視頻處理引擎多媒體服務(wù)端 – 元數(shù)據(jù)包 |
pipewire-bin | V:274, I:315 | 1630 | 音頻和視頻處理引擎多媒體服務(wù)端 – 音頻服務(wù)和命令行程序 |
pipewire-alsa | V:99, I:148 | 205 | 音頻和視頻處理引擎多媒體服務(wù)端 – 代替 ALSA 的音頻服務(wù) |
pipewire-pulse | V:155, I:203 | 49 | 音頻和視頻處理引擎多媒體服務(wù)端 – 代替 PulseAudio 的音頻服務(wù) |
pulseaudio | V:260, I:314 | 6472 | PulseAudio 服務(wù)端 |
libpulse0 | V:409, I:578 | 975 | PulseAudio 客戶端庫 |
jackd | V:2, I:19 | 9 | JACK Audio Connection Kit. (JACK) 服務(wù)器(低延遲) |
libjack0 | V:1, I:10 | 329 | JACK Audio Connection Kit. (JACK) 庫(低延遲) |
libgstreamer1.0-0 | V:428, I:593 | 4454 | GStreamer:GNOME 聲音引擎 |
libphonon4qt5-4 | V:72, I:161 | 593 | Phonon:KDE 聲音引擎 |
八、關(guān)閉屏幕保護(hù)
關(guān)閉屏幕保護(hù),使用下面的命令。
關(guān)閉屏幕保護(hù)命令列表:
環(huán)境 | 命令 |
---|---|
Linux 控制臺 | setterm -powersave off |
X 窗口(關(guān)閉屏幕保護(hù)) | xset s off |
X 窗口(關(guān)閉 dpms) | xset -dpms |
X 窗口(屏幕保護(hù) GUI 配置) | xscreensaver-command -prefs |
九、關(guān)閉蜂鳴聲
可以把電腦的揚(yáng)聲器拔掉來關(guān)閉蜂鳴聲。把 pcspkr 內(nèi)核模塊刪除,也可以做到這點(diǎn)。
bash(1) 用到的 readline(3) 程序,當(dāng)遇到告警字符(ASCII=7)時(shí),將會發(fā)生。下面的操作將阻止發(fā)生。
$ echo "set bell-style none">> ~/.inputrc
十、內(nèi)存使用
這里有兩種可用的方法來得到內(nèi)存的使用情況:
“/var/log/dmesg” 中的內(nèi)核啟動(dòng)信息包含了可用內(nèi)存的精確總大?。?/p>
free(1) 和 top(1) 顯示正在運(yùn)行的系統(tǒng)中內(nèi)存資源的相關(guān)信息。
下面是一個(gè)例子:
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
“dmesg 告訴 free 為 990 MB,而 free -k 告訴 free 為 320 MB。這丟失了超過 600 MB ……”?!癕em:” 這行中 “used” 較大的值以及 “free” 較小的值,放輕松,需要查看的是下面的那個(gè)(在上面的例子中它們是 675404 和 321780)。
對于我的 MacBook,有 1GB=1048576k 內(nèi)存(顯卡系統(tǒng)用掉一些),我看到的如下。
報(bào)告的內(nèi)存大?。?/p>
報(bào)告 | 大小 |
---|---|
dmesg 中 total 的大小 | 1016784k = 1GB – 31792k |
dmesg 中的 free | 990528k |
shell 下的 total | 997184k |
shell 下的 free | 20256k(但有效的為 321780k) |
十一、系統(tǒng)安全性檢查
糟糕的系統(tǒng)維護(hù)可能會暴露系統(tǒng),導(dǎo)致它被外部非法使用。對于系統(tǒng)安全性和完整性的檢查,需要從下面這些方面開始。
- debsums 軟件包;
- chkrootkit 軟件包;
- clamav 軟件包家族。
用于系統(tǒng)安全性和完整性檢查的工具:
軟件包 | 流行度 | 大小 | 說明 |
logcheck | V:6, I:8 | 110 | 后臺守護(hù)進(jìn)程(daemon),將系統(tǒng)日志文件中的異常通過郵件發(fā)送給管理員 |
debsums | V:5, I:36 | 98 | 實(shí)用程序,使用 MD5 校驗(yàn)碼對已安裝軟件包的文件進(jìn)行校驗(yàn) |
chkrootkit | V:7, I:17 | 925 | rootkit 檢測軟件 |
clamav | V:9, I:45 | 27455 | Unix 的反病毒實(shí)用程序 —— 命令行界面 |
tiger | V:1, I:2 | 7800 | 報(bào)告系統(tǒng)安全漏洞 |
tripwire | V:2, I:2 | 12168 | 文件和目錄完整性檢測軟件 |
john | V:1, I:9 | 471 | 先進(jìn)的密碼破解工具 |
aide | V:1, I:1 | 293 | 高級入侵環(huán)境檢測 —— 靜態(tài)二進(jìn)制 |
integrit | V:0, I:0 | 2659 | 文件完整性驗(yàn)證程序 |
crack | V:0, I:1 | 149 | 密碼猜測程序 |
下面是一個(gè)簡單的腳本,用來檢測典型的所有人可寫的錯(cuò)誤文件權(quán)限。
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
注意:由于 debsums 軟件包使用本地存儲的 MD5 校驗(yàn)碼,因此面對惡意攻擊,也不能完全相信系統(tǒng)安全性檢測工具。