[linux]var目錄作用

來源:互聯網
上載者:User

標籤:

var目錄 /var 包括系統運行時要改變的資料。其中包括每個系統是特定的,即不能夠與其他電腦共用的目錄,如/var/log,/var/lock,/var/run。有些目錄還是可以與其他系統共用,如/var/mail, /var/cache/man, /var/cache/fonts,/var/spool/news。var目錄存在的目的是把usr目錄在運行過程中需要更改的檔案或者臨時產生的檔案及目錄提取出來,由此可以使usr目錄掛載為唯讀方式。隱含要求var目錄必須掛載為可以讀寫的方式。
通過對於該目錄的分析注意如下的需要
1)  各個目錄存在的目的以及作用。
2)  通過目錄中的資訊能夠獲得什麼資訊,如何對於該資訊進行訪問。
3)  對於目錄中的檔案操作是否安全。
目的:該目錄儲存系統中使用的進程記錄。當一個進程終止時,把每個進程向統計檔案(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。該檔案可以通過資料的工具(sa,ac)進行分析。
使用:進程統計子系統預設不啟用,它必須啟動。在Linux系統中啟動進程統計使用accton命令,必須 用root身份來運行。accton命令的形式accton file,file必須先存在。如果不存在則先使用touch命令來建立pacct檔案:touch /var/log/pacct,然後運行accton: accton /var/account/pacct。一旦accton被啟用,就可以使用lastcomm命令監測系統中任何時候執行的命令。若要關閉統計,可以使用不帶任何參數的accton命令。
pact檔案不可用cat直接讀取其中的內容。
注意:該檔案會大量增長,需要注意維護(刪除,轉儲)
目的:系統崩潰時轉儲的檔案,可以通過該檔案分析down機的原因。
使用:crash工具對於該目錄中的檔案進行分析。參考文檔linux-2.6.20.6/Documentation/kdump/kdump.txt
crash -S/boot/System.map-2.6.18-53.el5PAE/boot/vmlinuz-2.6.18-53.el5PAE /var/crash/xxxx
目的:存放應用程式的快取資料,儲存在該目錄中的資料應用程式可以再產生,所以該目錄中的資料丟失後不會影響系統。
該目錄儲存系統或者某個應用程式運行過程中的狀態資訊。使用者不允許更改該目錄下的檔案。
郵件隱藏檔的目錄,在CGS中連結到/var/spool/mail。在fhs文檔中明確提出把它從/var/spool/mail提取出來以便於多主機多個應用程式共同使用。
add-on application在該目錄下存放變數,在/opt下存放靜態變數。
應用程式產生的臨時檔案,可以定時整理。/usr/tmp -> ../var/tmp。
   許多程式遵循在/var/lock 中產生一個鎖定檔案的約定,以支援他們正在使用某個特定的裝置或檔案。其他程式注意到這個鎖定檔案,將不試圖使用這個裝置或檔案。注意該目錄不可以隨便更改。
儲存著自系統啟動後的在該系統中正在啟動並執行進程pid號,並非所有的進程都在該目錄下存在pid檔案。每個pid檔案的作用與其應用程式相關,基本的作用就是標誌該進程已經運行,且標誌出該進程的pid號。在/var/run/subsys/目錄中有對應的檔案。當系統啟動後不用刪除其中的檔案,系統啟動後會清除該目錄中的檔案。/var/run/utmp是一個二進位檔案,記錄當前登入系統的使用者資訊。可用如who、w、users、finger命令顯示當中的內容。該記錄檔並不能包括所有精確的資訊,因為某些突發錯誤會終止使用者登入工作階段,而系統沒有及時更新utmp記錄,因此該記錄檔的記錄不是百分之百值得信賴的。
/etc/init.d/sendmail檔案對於/var/run和/var/lock/subsys目錄中的檔案的有使用案例
儲存某些需要後續進程繼續處理的資料。當進程處理完成儲存的資料檔案後,會把該檔案刪除。該目錄中的資料不要人工進行刪除。
尋找給目錄中各個子目錄的歸屬方法(以目錄/var/spool/voice為例):
[[email protected] spool]# rpm -qf /var/spool/voice
mgetty-voice-1.1.33-9.fc6
由此可以找出/var/spool/voice目錄與mgetty-voice包相關,從而可以使用如下命令來分析mgetty-voice包的命令及其作用。
存放/usr/local 中安裝的程式的可變資料(即系統管理員安裝的程式)。
編輯器存放的臨時檔案
/var/log/boot.log
該檔案記錄了系統在引導過程中發生的事件,就是Linux系統開機自我測試 (POST)過程顯示的資訊。Redhat決定淘汰對initlog的使用,所以在/etc/init.d/functions中將所有調用initlog的命令給注釋起來了,由此該檔案為空白。
/var/log/cron
該記錄檔記錄crontab守護進程crond所派生的子進程的動作。格式如下:
Aug 17 07:40:01 localhost crond[9434]: (root) CMD (/usr/lib/sa/sa1 1 1)
/var/log/maillog
該記錄檔記錄了每一個發送到系統或從系統發出的電子郵件的活動。它可以用來查看使用者使用哪個系統發送工具或把資料發送到哪個系統。
/var/log/syslog
       預設RedHatLinux不產生該記錄檔,但可以配置/etc/syslog.conf讓系統產生該記錄檔。它和/etc/log/messages記錄檔不同,它只記錄警告資訊,常常是系統出問題的資訊,所以更應該關注該檔案。要讓系統產生該記錄檔,在/etc/syslog.conf檔案中加上:*.warning /var/log/syslog該記錄檔能記錄當使用者登入時login記錄下的錯誤口令、Sendmail的問題、su命令執行失敗等資訊。
/var/log/lastlog
       該記錄檔記錄最近成功登入的事件和最後一次不成功的登入事件,由login產生。在每次使用者登入時被查詢,該檔案是二進位檔案,需要使用lastlog命令查看,根據UID排序顯示登入名稱、連接埠號碼和上次登入時間。如果某使用者從來沒有登入過,就顯示為"**Neverloggedin**"。該命令只能以root許可權執行。
/var/log/wtmp
       該記錄檔永久記錄每個使用者登入、登出及系統的啟動、停機的事件。因此隨著系統正常已耗用時間的增加,該檔案的大小也會越來越大,增加的速度取決於系統使用者登入的次數。該記錄檔可以用來查看使用者的登入記錄,last命令就通過訪問這個檔案獲得這些資訊,並以反序從後向前顯示使用者的登入記錄,last也能根據使用者、終端tty或時間顯示相應的記錄。
       /var/run/utmp  見/var/run目錄
       以上提及的3個檔案(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日誌子系統的關鍵檔案,都記錄了使用者登入的情況。這些檔案的所有記錄都包含了時間戳記。這些檔案是按二進位儲存的,故不能用less、cat之類的命令直接查看這些檔案,而是需要使用相關命令通過這些檔案而查看。
/var/log/xferlog
       該記錄檔記錄FTP會話,可以顯示出使用者向FTP伺服器或從伺服器拷貝了什麼檔案。該檔案會顯示使用者拷貝到伺服器上的用來入侵伺服器的惡意程式,以及該使用者拷貝了哪些檔案供他使用。
       該檔案的格式為:第一個域是日期和時間,第二個域是下載檔案所花費的秒數、遠程系統名稱、檔案大小、本地路徑名、傳輸類型(a:ASCII,b:二進位)、與壓縮相關的標誌或tar,或"_"(如果沒有壓縮的話)、傳輸方向(相對於伺服器而言:i代表進,o代表出)、訪問模式(a:匿名,g:輸入口令,r:真實使用者)、使用者名稱、服務名(通常是ftp)、認證方法(l:RFC931,或0),認證使用者的ID或"*"。
/var/log/Xfree86.x.log
       該記錄檔記錄了X-Window啟動的情況。
syslogd可以簡單地被稱為記錄系統活動的一個daemons。比如可以記錄誰,在什麼時間,在哪裡,做了什麼事情;也可以記錄系統曾經發生過什麼事情,比如什麼時候重新引導過、軟硬體的錯誤資訊等;當然也記錄著您系統上運行著的服務的資訊。通常,syslog 接受來自系統的各種功能的資訊,每個資訊都包括重要級。/etc/syslog.conf 檔案決定 syslogd 如何根據裝置和資訊重要層級來報告資訊。
/usr/include/sys/syslog.h
處理流程
                            
          /etc/syslog.conf
/etc/syslog.conf 檔案使用下面的形式
              facility.level    action
空白行和以#開頭的行可以忽略。Facility.level 欄位也被稱做 seletor。應該使用一次或多次 tab 鍵分隔 facility 和 action。大部分 Linux 使用這些空格為分隔字元。
facility
       facility指定 syslog 功能,主要包括以下這些:
              auth    認證系統,如login或su,即詢問使用者名稱和口令
              cron    系統執行定時任務時發出的資訊
              daemon   某些系統的精靈的syslog,如由in.ftpd產生的log
              kern    核心的資訊
              lpr     印表機的資訊
              mail    處理郵件的守護進程發出的資訊
              mark    定時發送訊息的時標程式
              news    新聞群組的守護進程的資訊
              user    本機使用者的應用程式的資訊
              uucp    uucp子系統的資訊
              local0----local7   與自訂程式使用,例如使用 local5 做為 ssh 功能
              *     表示所有可能的資訊來源
level
       與每個功能對應的優先順序是按一定順序排列的,emerg 是最進階,其次是 alert,依次類推。預設時,在 /etc/syslog.conf 記錄中指定的層級為該層級和更進階別。如果希望使用確定的層級可以使用兩個運算子號!(不等)和=。
user.=info
表示告知 syslog 接受所有在 info 層級上的 user 功能資訊。
 
syslog 層級如下:
emerg 或 panic   該系統不可用
alert            需要立即被修改的條件
crit             阻止某些工具或子系統功能實現的錯誤條件
err             阻止工具或某些子系統部分功能實現的錯誤條件
warning         預警資訊
notice           具有重要性的普通條件
info             提供資訊的訊息
debug           不包含函數條件或問題的其他資訊
none            沒有重要級,通常用於排錯
*              所有層級,除了none
action
       action欄位所表示的活動具有許多靈活性,特別是,可以使用名稱管道的作用是可以使syslogd 產生後處理資訊。
syslog 主要支援以下活動
file    指定檔案的絕對路徑
terminal 或 print    完全的串列或平行裝置標誌符
@host  遠端Log Service器
username 發送資訊到使用 write 的指定使用者中
named pipe 指定使用 mkfifo 命令來建立的 FIFO 檔案的絕對路徑。
 
由於 syslogd 在系統非常繁忙時,可能會丟失資訊,所以,可以用 cyclog 替換 syslog。
rpm -ql logrotate
       manlogrotate
       /etc/logrotate.conf
[[email protected] log]# cat/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
 
# keep 4 weeks worth of backlogs
rotate 4
 
# create new (empty) log files after rotating old ones
create
 
# uncomment this if you want your log files compressed
#compress
 
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
 
# no packages own wtmp -- we‘ll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}
 
# system-specific logs may be also be configured here.
運行時機:
[[email protected] log]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.4
/usr/share/doc/logrotate-3.7.4/CHANGES
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status
/etc/logrotate.d/
[[email protected] log]# cat/etc/logrotate.d/yum
/var/log/yum.log {
   missingok
   notifempty
    size 30k
    create 0600 root root
}
[[email protected] log]# rpm -qf/etc/logrotate.d/yum
yum-3.0.5-1.el5.centos.5
 
參考文檔《FilesystemHierarchy Standard》
http://www.ibm.com/developerworks/cn/linux/security/l-ossec/part1/
http://www.ibm.com/developerworks/cn/linux/security/l-ossec/part2/index.html
http://www.ibm.com/developerworks/cn/linux/security/l-ossec/part3/
來源: <var目錄 - 清閑居 - 部落格頻道 - CSDN.NET>
 
/var/account/pact /var/crash  /var/cache /var/empty    /var/games /var/lib /var/mail /var/opt /var/tmp /var/lock /var/run /var/spool /var/local /var/preserve /var/log sysklogd logrotate

來自為知筆記(Wiz)

[linux]var目錄作用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.