這是系列文章第七篇,原來是單獨寫的,這次加入linux專欄裡面
7.1--Forword
Linux 系統裡面日誌無疑是相當重要的,對於我們分析系統故障,解決相關問題是大有裨益的。這篇文章是自己積累一些知識,以做備忘只用。
7.2--Start
Linux系統中日誌大致有系統日誌以及應用日誌,前者大多記錄在/var/log/下面,而後者則視情況分布在不同目錄下,當然也可能寫入/var/log下面。
這裡我們著重描述一下系統方面的日誌:
7.2.1,簡單分下類
位置:
/usr/adm - 早期版本的UNIX/var/adm - 新一點的版本使用這個位置/var/log - 一些版本的Solaris,linux,BSD,Free BSD使用這個位置/etc - 多數UNIX版本把utmp放在這裡,有些也把wtmp放在這裡,syslog.conf在這裡
引用一下:
連線時間日誌--由多個程式執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程式更新wtmp和utmp檔案,使系統管理員能夠跟蹤誰在何時登入到系統。
進程統計--由系統核心執行。當一個進程終止時,為每個進程往進程統計檔案(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤記錄檔--由syslogd(8)執行。各種系統守護進程、使用者程式和核心通過syslog(3)向檔案/var/log/messages報告值得注意的事件。另外有許多UNIX程式建立日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。
常見的記錄檔用途說明:
acct 或 pacct -- 記錄每個使用者使用的命令記錄access_log -- 主要當伺服器運行NCSA HTTPD時, 記錄什麼網站串連過你的伺服器aculog -- 儲存著你撥出去的MODEMS記錄lastlog -- 記錄了使用者最近的LOGIN記錄和每個使用者的最初目的地,有時是最後成功LOGIN的記錄loginlog -- 記錄一些不正常的LOGIN記錄messages -- 記錄輸出到系統控制台的記錄,另外的資訊由syslog來產生security -- 記錄一些使用UUCP系統企圖進入限制範圍的案例sulog -- 記錄使用su命令的記錄utmp -- 記錄當前登入到系統中的所有使用者, 這個檔案伴隨著使用者進入和離開系統而不斷變化.utmpx -- UTMP的擴充wtmp -- 記錄使用者登入和退出事件syslog -- 最重要的記錄檔,使用syslogd精靈來獲得日誌資訊:/dev/log -- 一個UNIX域通訊端,接受在本地機器上啟動並執行進程所產生的訊息/dev/klog -- 一個從UNIX核心接受訊息的裝置**514連接埠 -- 一個INTERNET通訊端,接受其他機器通過UDP產生的syslog訊息。uucp -- 記錄的UUCP的資訊,可以被本地UUCP活動更新, 也可有遠端站台發起的動作修改,資訊包括髮出和接受的呼叫,發出的請求,寄件者, 發送時間和發送主機lpd-errs -- 處理印表機故障資訊的日誌ftp日誌 -- 執行帶-l選項的ftpd能夠獲得記錄功能httpd日誌 -- HTTPD伺服器在日誌中記錄每一個WEB訪問記錄history日誌 -- 這個檔案儲存了使用者最近輸入命令的記錄vold.log -- 記錄使用外接媒介時遇到的錯誤記錄
這裡面wtmp和utmp檔案都是二進位檔案,也就是你不能通過cat或者vi查看的,可以通過系統命令來查看,常用的命令:who,user,w,ac,last
7.2.2,簡單介紹一下這些命令:
who:執行這項指令可得知目前有那些使用者登入系統,單獨執行who指令會列出登入帳號,使用的終端機,登入時間。
w:顯示的資訊比who更多,可以看下命令說明
使用者 登入的使用者。 tty 使用者使用的 tty 名稱。 FROM 本地 LOGIN@ 使用者登入的日期和時間。 IDLE 自一個程式上次試圖從終端讀取開始所持續的分鐘數。 JCPU 該終端上的所有進程及其子進程使用的系統組件時間。 PCPU 當前活動進程所使用的系統組件時間。 WHAT 當前進程的名稱和參數。
user:不解釋了,很簡單,顯示登入使用者。
last:顯示近期使用者或終端的登入情況
本日誌不斷補充中.........
7.3---Appendix
附:常用查看系統資訊命令
系統: # uname -a # 查看核心/作業系統/CPU資訊 # cat /etc/issue # cat /etc/redhat-release # 查看作業系統版本 # cat /proc/cpuinfo # 查看CPU資訊 # hostname # 查看電腦名稱 # lspci -tv # 列出所有PCI裝置 # lsusb -tv # 列出所有USB裝置 # lsmod # 列出載入的核心模組 # env # 查看環境變數 資源: # free -m # 查看記憶體使用量量和交換區使用量 # df -h # 查看各分區使用方式 # du -sh <目錄名> # 查看指定目錄的大小 # grep MemTotal /proc/meminfo # 查看記憶體總量 # grep MemFree /proc/meminfo # 查看空閑記憶體量 # uptime # 查看系統已耗用時間、使用者數、負載 # cat /proc/loadavg # 查看系統負載 磁碟和分區: # mount | column -t # 查看掛接的分區狀態 # fdisk -l # 查看所有分區 # swapon -s # 查看所有交換分區 # hdparm -i /dev/hda # 查看磁碟參數(僅適用於IDE裝置) # dmesg | grep IDE # 查看啟動時IDE裝置檢測狀況 網路: # ifconfig # 查看所有網路介面的屬性 # iptables -L # 查看防火牆設定 # route -n # 查看路由表 # netstat -lntp # 查看所有監聽連接埠 # netstat -antp # 查看所有已經建立的串連 # netstat -s # 查看網路統計資訊 進程: # ps -ef # 查看所有進程 # top # 即時顯示進程狀態(另一篇文章裡面有詳細的介紹) 使用者: # w # 查看活動使用者 # id <使用者名稱> # 查看指定使用者資訊 # last # 查看使用者登入日誌 # cut -d: -f1 /etc/passwd # 查看系統所有使用者 # cut -d: -f1 /etc/group # 查看系統所有組 # crontab -l # 查看目前使用者的計劃任務 服務: # chkconfig –list # 列出所有系統服務 # chkconfig –list | grep on # 列出所有啟動的系統服務 程式: # rpm -qa # 查看所有安裝的軟體包