linux 系統自帶的 messages 和 /tmp 下文件清理功能 介紹


 

-》1. 關於linux 的/tmp 下的文件定時清理


在linux 6下該功能叫做 tmpwatch
cd /etc/cron.daily/tmpwatch
cat /etc/cron.daily/tmpwatch

[root@os log]# cat /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done

Q:
也就是除了如下目錄外:/tmp/.X11-unix
/tmp/.XIM-unix
/tmp/.font-unix
/tmp/.ICE-unix
/tmp/.Test-unix
/tmp/hsperfdata_*

tmp目錄會刪除10天未訪問過的文件。對嗎?
A:是的
這個宮嗯

-》參考文檔http://www.ttlsa.com/linux/the-tmp-directory-is-automatically-cleared-and-the-tmpwatch-command/
-》自動清理/tmp目錄帶來的可能影響1:
[warning]對於mysql服務器,如果將pid和socket文件創建在tmp目錄下,要將這兩個文件排除在外,否則mysql重啟或使用socket文件登錄時,提示找不到文件。可通過-U mysql[/warning]

自動清理/tmp目錄帶來的可能影響2:如果某些腳本定時依賴/tmp目錄下的日志,可能會導致腳本失效。

 

sampe: 加入/tmp 下某個目錄下的文件不會自動清理

cp /etc/cron.daily/tmpwatch /etc/cron.daily/tmpwatch.bak
modify /etc/cron.daily/tmpwatch
add "-x /tmp/MONITOR"

man tmpwatch
-x, --exclude=path
-X, --exclude-pattern=pattern
-U, --exclude-user=user

 

redhat7 /tmp自動清理歸systemd管


2. -》 關於 linux 的日志messages定時清理 logrota
這台主機messages的日期 是從 10/11 號03:37開始的, 我想知道是 kernal還是ansiable造成這種定期清理 messages的行為的

ansible-command那些日志是ansible執行的日志

應該是要改個配置,讓message的 log不要截斷就行了

你是說日志輪轉嗎?

這個日志輪詢實由cron時間定的哦
                        logrota管理message日志的輪詢,cron會每天跑做日志輪詢這樣,這個時間不一定都是這個時候,可能有些偏差。

 

logrota管理message日志的輪詢,cron會每天跑做日志輪詢這樣,這個時間不一定都是這個時候,可能有些偏差。

當然有時候可能系統Hung住或者什么其他原因,messages日志也有可能丟失

 

[root@os log]# cd /etc/cron.daily

[root@os cron.daily]# ls
0logwatch cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
[root@os log]# cd /etc/cron.daily
[root@os cron.daily]# ls
0logwatch cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
[root@os cron.daily]# more logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

 

你們現在message日志是每周做一次還是每日做一次日志輪詢嗎 ? 一周時間間隔剛好啊

怎么看是 每周做一次還是每日做一次日志輪詢。
cat /etc/logrotate.conf
/etc/logrotate.d/syslog
看這兩個文件,默認是每周weekly

cat /etc/logrotate.conf

[root@os cron.daily]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly <-每周清理一次。

# keep 4 weeks worth of backlogs
rotate 24

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext


[root@os cron.daily]# cat /etc/logrotate.d/syslog
/var/log/cron <-logrotate清理的文件目錄,每周清理一次。
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

Q: 我能調整成 每個月 一次嗎。
A: vi /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
monthly <-每月清理一次。

 

#######

參考文檔

tmp目錄自動清除和tmpwatch命令

  • A+
所屬分類: Linux  運維工具  運維案例

習慣性的將一些臨時文件放在tmp目錄下,讓其自然刪除。同時,為了保證tmp目錄不爆滿,系統默認情況下每日會處理一次tmp目錄文件,原理就是使用了tmpwatch。在系統最小安裝情況下,這個功能是沒有安裝的。
安裝:

安裝后會在/etc/cron.daily/目錄下生成一個tmpwatch文件。內容如下:

從代碼中可看出,tmp目錄會刪除240小時未訪問過的文件。

tmpwatch工具從指定的目錄中遞歸地搜索並刪除指定的目錄中一段時間未訪問的文件。

tmpwatch參數說明:

[warning]對於mysql服務器,如果將pid和socket文件創建在tmp目錄下,要將這兩個文件排除在外,否則mysql重啟或使用socket文件登錄時,提示找不到文件。可通過-U mysql[/warning]

轉載請注明來之運維生存時間:http://www.ttlsa.com/html/3323.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM