您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux var log可不可以刪掉”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux var log可不可以刪掉”吧!
linux var log可以刪掉,“/var/log”是Linux系統登錄文件放置的地方,里面比較重要的文件有“/var/log/messages”、“/var/log/wtmp”等,其他不重要的日志就可以刪除。
var log里就是記錄點日志而已,可以刪除,不過為了句柄安全,最好刪除后重啟xenserver。
【Shell腳本】清除/var/log下的日志文件
【腳本要求】
清除/var/log目錄下/var/log/messages和/var/log/wtmp中的內容;
該腳本帶一個參數用來設置保留日志的行數,無參數時時默認保留最后50行,有參數時判斷參數是否是純數字;
只有root身份才能執行此腳本,非root用戶執行此腳本時,將以error形式退出并返回錯誤代碼;
判斷是否正確進入到/var/log目錄,如果不能進入到該目錄,將以error形式退出并返回錯誤代碼;
【基礎知識】
/var/log是Linux系統登錄文件放置的地方。里面比較重要的文件有/var/log/messages,/var/log/wtmp等。
/var/log/messages存放的是系統發生錯誤時的信息,如果系統發生莫名其妙的錯誤,那么一定要查看此文件。
/var/log/wtmp則記錄了正確登陸過系統的帳號信息,對于追蹤登陸系統者的行為很有幫助。
【知識點總結】
1、任何shell腳本第一行都應該是以#!開頭。除了腳本第一行的#其它行的#表示腳本的注釋。注釋可以放在命令行的結尾,也可以另起一行。
2、LOG_DIR、UID_ROOT、LINE、E_XCD、E_NOTROOT、E_WRONGARGS等常量要大寫
3、$UID是當前登陸用戶的UID,root用戶的UID為0
4、-nq用于兩個整數之間相等的比較
5、判斷式中括號[]的兩端和需要有空格的地方都有加空格。例如,[空$UID空-nq空$UID_ROOT空]
6、雙引號""中的特殊符號保持原有含義,單引號''中的特殊字符一律看作一般字符。
7、此腳本用到if語句和case語句,注意他們的語法結構。
8、*是通配符,代表任意數量的任意字符,它也可以用來匹配給定目錄下任意文件名,在算術運算中代表乘法。
9、[!0-9],[0-9]代表0~9這10個數字,!表示取反,這里代表不含有0~9這10個數字。
10、||連接兩個命令時,當前面的命令執行錯誤時(命令返回碼不為0),才執行后面的命令。與此相對的是&&,&&前面的命令執行正確時,才執行后面的命令。
11、大括號{}中間的成為代碼塊,其中聲明的變量對于腳本其他部分代碼來說還是可見的。而小括號()中生命的變量對腳本其他部分來說是不可見的,因為()中的代碼將作為一個子Shell來運行。
12、tail命令是輸出文件的后面若干行,語法是tail -n filename表示輸出filename最后面的n行。類似的還有命令head,表示輸出文件的前面若干行,語法是head -n filename表示輸出filename最前面的n行。
13、>&2代表將stdout指定到stderr。其它數據流重定向符還有:>代表的數據流重定向功能,以覆蓋的方法將stdout指定到文件或者設備上,>>代表以追加的方法將stdout指定到文件或者設備上,2>以覆蓋的方法將stderr指定到文件或者設備上,2>>代表以追加的方法將stderr指定到文件或者設備上。&>以覆蓋的方法將stdout和stderr指定到文件或者設備上,&>>代表以追加的方法將stdout和stderr指定到文件或者設備上。
14、mv命令可以將文件或者目錄移動到一個指定的目錄,帶上參數-i可以提示目標存在時是否覆蓋;也可以對文件或者目錄進行重命名。
15、/dev/null是一個垃圾桶黑洞設備,有非常重要的作用,一是可以產生空白內容,另外可以吞噬任何導向這個設備的信息。此處是用來產生空白內容。
16、分號“;”用于將同一行上的多個命令分隔開來。
【腳本清單】
#!/bin/bash
LOG_DIR=/var/log
UID_ROOT=0
LINE=50
E_XCD=66
E_NOTROOT=67
E_WRONGARGS=65
#保證只有root用戶才可以執行此腳本
if [ $UID -nq $UID_ROOT ] ; then
echo "This script. must be run by root"
exit $E_NOTROOT
fi
#測試命令行的參數
case $1 in
" " )lines=$LINE;;
*[!0-9]*)echo "Usage: `basename $0` file-to-cleanup";exit $E_WRONGARGS;;
* )lines=$1;;
esac
#處理log之前,再次確認當前目錄是否正確
cd &LOG_DIR || {
echo "Cannot change to &LOG_DIR" >&2
exit $E_XCD
}
#處理log
tail -$lines messages>mesg.temp
mv mesg.temp messages
cat /dev/null > wtmp
#處理完畢
echo "Logs cleaned up "
exit 0
感謝各位的閱讀,以上就是“linux var log可不可以刪掉”的內容了,經過本文的學習后,相信大家對linux var log可不可以刪掉這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。