溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux var log可不可以刪掉

發(fā)布時(shí)間:2023-03-13 10:34:20 來(lái)源:億速云 閱讀:365 作者:iii 欄目:建站服務(wù)器

這篇文章主要講解了“l(fā)inux var log可不可以刪掉”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“l(fā)inux var log可不可以刪掉”吧!

linux var log可以刪掉,“/var/log”是Linux系統(tǒng)登錄文件放置的地方,里面比較重要的文件有“/var/log/messages”、“/var/log/wtmp”等,其他不重要的日志就可以刪除。

var log里就是記錄點(diǎn)日志而已,可以刪除,不過(guò)為了句柄安全,最好刪除后重啟xenserver。

【Shell腳本】清除/var/log下的日志文件

【腳本要求】

  • 清除/var/log目錄下/var/log/messages和/var/log/wtmp中的內(nèi)容;

  • 該腳本帶一個(gè)參數(shù)用來(lái)設(shè)置保留日志的行數(shù),無(wú)參數(shù)時(shí)時(shí)默認(rèn)保留最后50行,有參數(shù)時(shí)判斷參數(shù)是否是純數(shù)字;

  • 只有root身份才能執(zhí)行此腳本,非root用戶執(zhí)行此腳本時(shí),將以error形式退出并返回錯(cuò)誤代碼;

  • 判斷是否正確進(jìn)入到/var/log目錄,如果不能進(jìn)入到該目錄,將以error形式退出并返回錯(cuò)誤代碼;

【基礎(chǔ)知識(shí)】

/var/log是Linux系統(tǒng)登錄文件放置的地方。里面比較重要的文件有/var/log/messages,/var/log/wtmp等。

/var/log/messages存放的是系統(tǒng)發(fā)生錯(cuò)誤時(shí)的信息,如果系統(tǒng)發(fā)生莫名其妙的錯(cuò)誤,那么一定要查看此文件。

/var/log/wtmp則記錄了正確登陸過(guò)系統(tǒng)的帳號(hào)信息,對(duì)于追蹤登陸系統(tǒng)者的行為很有幫助。

【知識(shí)點(diǎn)總結(jié)】

1、任何shell腳本第一行都應(yīng)該是以#!開頭。除了腳本第一行的#其它行的#表示腳本的注釋。注釋可以放在命令行的結(jié)尾,也可以另起一行。

2、LOG_DIR、UID_ROOT、LINE、E_XCD、E_NOTROOT、E_WRONGARGS等常量要大寫

3、$UID是當(dāng)前登陸用戶的UID,root用戶的UID為0

4、-nq用于兩個(gè)整數(shù)之間相等的比較

5、判斷式中括號(hào)[]的兩端和需要有空格的地方都有加空格。例如,[空$UID空-nq空$UID_ROOT空]

6、雙引號(hào)""中的特殊符號(hào)保持原有含義,單引號(hào)''中的特殊字符一律看作一般字符。

7、此腳本用到if語(yǔ)句和case語(yǔ)句,注意他們的語(yǔ)法結(jié)構(gòu)。

8、*是通配符,代表任意數(shù)量的任意字符,它也可以用來(lái)匹配給定目錄下任意文件名,在算術(shù)運(yùn)算中代表乘法。

9、[!0-9],[0-9]代表0~9這10個(gè)數(shù)字,!表示取反,這里代表不含有0~9這10個(gè)數(shù)字。

10、||連接兩個(gè)命令時(shí),當(dāng)前面的命令執(zhí)行錯(cuò)誤時(shí)(命令返回碼不為0),才執(zhí)行后面的命令。與此相對(duì)的是&&,&&前面的命令執(zhí)行正確時(shí),才執(zhí)行后面的命令。

11、大括號(hào){}中間的成為代碼塊,其中聲明的變量對(duì)于腳本其他部分代碼來(lái)說(shuō)還是可見的。而小括號(hào)()中生命的變量對(duì)腳本其他部分來(lái)說(shuō)是不可見的,因?yàn)?)中的代碼將作為一個(gè)子Shell來(lái)運(yùn)行。

12、tail命令是輸出文件的后面若干行,語(yǔ)法是tail -n filename表示輸出filename最后面的n行。類似的還有命令head,表示輸出文件的前面若干行,語(yǔ)法是head -n filename表示輸出filename最前面的n行。

13、>&2代表將stdout指定到stderr。其它數(shù)據(jù)流重定向符還有:>代表的數(shù)據(jù)流重定向功能,以覆蓋的方法將stdout指定到文件或者設(shè)備上,>>代表以追加的方法將stdout指定到文件或者設(shè)備上,2>以覆蓋的方法將stderr指定到文件或者設(shè)備上,2>>代表以追加的方法將stderr指定到文件或者設(shè)備上。&>以覆蓋的方法將stdout和stderr指定到文件或者設(shè)備上,&>>代表以追加的方法將stdout和stderr指定到文件或者設(shè)備上。

14、mv命令可以將文件或者目錄移動(dòng)到一個(gè)指定的目錄,帶上參數(shù)-i可以提示目標(biāo)存在時(shí)是否覆蓋;也可以對(duì)文件或者目錄進(jìn)行重命名。

15、/dev/null是一個(gè)垃圾桶黑洞設(shè)備,有非常重要的作用,一是可以產(chǎn)生空白內(nèi)容,另外可以吞噬任何導(dǎo)向這個(gè)設(shè)備的信息。此處是用來(lái)產(chǎn)生空白內(nèi)容。

16、分號(hào)“;”用于將同一行上的多個(gè)命令分隔開來(lái)。

【腳本清單】

#!/bin/bash
LOG_DIR=/var/log
UID_ROOT=0
LINE=50
E_XCD=66
E_NOTROOT=67
E_WRONGARGS=65
#保證只有root用戶才可以執(zhí)行此腳本
if [ $UID -nq $UID_ROOT ] ; then
    echo "This script. must be run by root"
    exit $E_NOTROOT
fi
#測(cè)試命令行的參數(shù)
case $1 in
    " "     )lines=$LINE;;
    *[!0-9]*)echo "Usage: `basename $0` file-to-cleanup";exit $E_WRONGARGS;;
    *       )lines=$1;;
esac
#處理log之前,再次確認(rèn)當(dāng)前目錄是否正確
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

感謝各位的閱讀,以上就是“l(fā)inux var log可不可以刪掉”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)linux var log可不可以刪掉這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI