這是系列文章第七篇,原來是單獨寫的,這次加入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 # 查看所有安裝的軟件包
~~~