Linux系統管理筆記

dunne21發表於2021-09-09

Linux系統管理

程式管理

程式管理目的(程式是正在執行的一個程式或命令):判斷伺服器健康狀態(優先順序高)、檢視系統中所有程式,殺死程式(優先順序低)

檢視程式:

  • ps aux 檢視系統所有程式,使用BSD作業系統格式
  • ps -le 檢視系統中所有程式,使用標準命令格式
    • a 顯示一個終端除會話引線外所有程式,
    • u 顯示程式的歸屬使用者及記憶體的使用情況
    • x 顯示沒有控制終端的程式
    • l 唱歌是顯示更加詳細的資訊
    • e 顯示所有程式,和-A作用一致
    • USER PID %CPU %MEM VSZ虛擬記憶體 RSS實體記憶體 TTY終端 STAT程式狀態 START啟動事件 TIME運算事件 COMMAND
  • pstree [-pu] 顯示程式樹
    • p 顯示程式PID,u 顯示程式的所屬使用者
  • top [-dbnhPMNq] 檢視系統健康狀態,top -b -n 1 > top.log 寫入日誌檔案
    • d 秒數,b 批處理模式,n 次數,h 互動模式幫助,P CPU使用率排序,M 記憶體使用率排序,N PID排序,q 退出top
      • top - 01:22:48系統時間 up 26 min執行時間, 1 user登入使用者, load average: 0.03, 0.04, 0.08系統在之前1分鐘5分鐘15分鐘的平均負載(單核CPU大於1表示超出負荷)
      • Tasks: 110 total總程式數, 1 running正在執行, 109 sleeping休眠, 0 stopped停止, 0 zombie殭屍
      • %Cpu(s): 0.0 us使用者模式, 0.3 sy系統模式, 0.0 ni改變過優先順序的使用者程式, 99.7 id空閒(重點), 0.0 wa等待輸入/輸出的程式, 0.0 hi硬中斷請求服務, 0.0 si軟終端請求服務, 0.0 st虛擬時間百分比
      • KiB Mem : 999936 total, 430276 free(記憶體空閒重要), 273592 used, 296068 buff/cache緩衝(加速寫入)/快取(加速讀取)
      • KiB Swap: 2097148 total, 2097148 free(重要), 0 used. 533460 avail Mem

殺死程式:

  • kill -l 檢視可用的程式訊號
    • kill -HUP 1523 或者 kill -1 1523,平滑重啟,1是SIGHUP程式訊號
  • killall [-iI][訊號] 程式名
    • i 互動式,I 忽略程式名的大小寫
  • pickll [-t][訊號] 程式名
    • t 終端號,按照終端號提出使用者 pkill -9 -t pts/1,w 檢視登入的使用者

修改程式優先順序(CPU在同一個時鐘週期內只能運算一個指令):

  • PRI代表Priority優先順序,NI表示Nice使用者修改優先順序,數字越小代表程式優先順序越高,PRI = PRI + NI
  • nice [-n] 優先順序,不能修改已經存在程式的值,nice -n -5 service httpd start
  • renice [優先順序] PID,修改已經存在程式的優先順序,renice -10 2125

工作管理

工作管理指在單個登入終端中同時管理多個工作的行為(最小化放入後臺)。

把程式放入後臺:

  • tar -zcf etc.tar.gz /etc &,&表示放入後臺
  • top,按下ctrl+z快捷鍵,放在後臺暫停
    • jobs [-l],檢視後臺的程式,+表示最近一個放入後臺的工作,-表示倒數第二個放入後臺的

把後臺暫停的工作恢復:

  • fg %工作號,%可省略,恢復到前臺執行
  • bg %工作號,回覆到後臺執行

後臺命令脫離終端執行:

  • 方法一把需要後臺執行的命令放入 /etc/rc.local 檔案
  • 方法二使用系統定時任務,讓系統在指定的時間執行某個後臺命令
  • 方法三使用 nohup 命令,nohup [命令] &

系統資源檢視

vmstat [重新整理延時 重新整理次數],vmstat 1 3,r等待程式數,b不可喚醒程式,si從磁碟中交換到記憶體中資料,so從記憶體到硬碟,bi從塊裝置讀入資料,bo寫到塊裝置,in每秒被終端的程式次數,cs美妙事件切換次數,us非核心程式,sy核心程式,id空閒cpu,wa等待I/O,st被虛擬機器所盜用

dmesg | grep CPU,開機時核心檢測資訊

free [-bkmg],檢視記憶體使用狀態,b位元組,k KB,m MB,g GB

cat /proc/cpuinfo 檢視CPU資訊

uptime 檢視平均負載

uname [-ars] 檢視系統與核心資訊

file /bin/ls 檢視當前作業系統位數

lab_release -a 檢視發行版本

lsof [-cpu] 列出程式呼叫或開啟的檔案資訊,lsof | more,lsof /sbin/init 檢視檔案被哪個程式呼叫,lsof -c httpd 檢視程式呼叫哪些檔案,lsof -u root

系統定時任務

at 一次性定時任務:

  • chkconfig --list | grep atd,service atd start
  • systemctl list-unit-files | grep atd
  • at 訪問控制,/etc/at.allow 白名單, /etc/at.deny黑名單
  • at [-mc] 時間,m發email,c工作號
    • 時間:HH:MMHH:MM YYYY-MM-DDHH:MM[am|pm] [month] [date]HH:MM[am|pm] + [minutes | hours | days | weeks]
    • at now +2 minutes 2分鐘後執行指令碼,at> /root/hello.sh

crontab 迴圈定時任務:

  • service crond start
  • 訪問控制,/etc/cron.allow白名單, /etc/cron.deny黑名單
  • crontab [-elr]
    • e 進入編輯介面,*****執行的任務
      • 第一個*表示一小時中的第幾分鐘0-59,一天中第幾小時0-23,一個月中第幾天1-31,一年中第幾月1-12,一週中星期幾0-7
      • 0 8,12,16 * * * 命令在每天8點12點16點0分執行一次命令
      • 0 5 * * 1-6 命令週一到週六凌晨5點0分執行
      • */10 * * * * 命令每隔10分鐘執行一次命令
      • 0 0 1,15 * 1 命令每月1號和15號,每週1的0點0分執行
      • */5 * * * * /usr/bin/echo '111' >> /root/test
    • l 檢視root使用者的任務
    • r 刪除root使用者所有的定時任務
  • 定時任務命令要寫絕對路徑

系統的 crontab 設定:不同的使用者身份可以執行自己的定時任務,有些定時任務需要跨許可權系統執行,需要編輯 /etc/crontab 檔案:

  • 01 * * * * root run-parts /etc/cron.hourly
  • 02 4 * * * root run-parts /etc/cron.daily
  • 22 4 * * 0 root run-parts /etc/cron.weekly
  • 42 4 1 * * root run-parts /etc/cron.monthly
  • ls /etc | grep cron,上面四行程式碼原本在/etc/crontab中,後來分成了四個檔案,方便檢視任務,每小時執行的放一起
  • 系統任務兩種方式:
    • 直接寫在 /etc/crontab 檔案中
    • 在 /etc 檔案中的對應檔案寫入程式碼

anacron 配置,anacron 是用來保證在系統關機的時候錯過的定時任務,可以在系統開機之後再執行

  • anacron 會使用一天,七天,一個月作為檢測週期
  • vim /etc/anacrontab

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1600/viewspace-2824734/,如需轉載,請註明出處,否則將追究法律責任。

相關文章