-》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+
習慣性的將一些臨時文件放在tmp目錄下,讓其自然刪除。同時,為了保證tmp目錄不爆滿,系統默認情況下每日會處理一次tmp目錄文件,原理就是使用了tmpwatch。在系統最小安裝情況下,這個功能是沒有安裝的。
安裝:
1
|
# yum install tmpwatch.x86_64
|
安裝后會在/etc/cron.daily/目錄下生成一個tmpwatch文件。內容如下:
1
2
3
4
5
6
7
8
9
10
11
|
# cat /etc/cron.daily/tmpwatch
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_*' 240 /tmp
/usr/sbin/tmpwatch "$flags" 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 720 "$d"
fi
done
|
從代碼中可看出,tmp目錄會刪除240小時未訪問過的文件。
tmpwatch工具從指定的目錄中遞歸地搜索並刪除指定的目錄中一段時間未訪問的文件。
tmpwatch參數說明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-u, --atime 基於訪問時間來刪除文件,默認的。
-m, --mtime 基於修改時間來刪除文件。
-c, --ctime 基於創建時間來刪除文件,對於目錄,基於mtime。
-M, --dirmtime 刪除目錄基於目錄的修改時間而不是訪問時間。
-a, --all 刪除所有的文件類型,不只是普通文件,符號鏈接和目錄。
-d, --nodirs 不嘗試刪除目錄,即使是空目錄。
-d, --nosymlinks 不嘗試刪除符號鏈接。
-f, --force 強制刪除。
-q, --quiet 只報告錯誤信息。
-s, --fuser 如果文件已經是打開狀態在刪除前,嘗試使用“定影”命令。默認不啟用。
-t, --test 僅作測試,並不真的刪除文件或目錄。
-U, --exclude-user=user 不刪除屬於誰的文件。
-v, --verbose 打印詳細信息。
-x, --exclude=path 排除路徑,如果路徑是一個目錄,它包含的所有文件被排除了。如果路徑不存在,它必須是一個絕對路徑不包含符號鏈接。
-X, --exclude-pattern=pattern 排除某規則下的路徑。
|
[warning]對於mysql服務器,如果將pid和socket文件創建在tmp目錄下,要將這兩個文件排除在外,否則mysql重啟或使用socket文件登錄時,提示找不到文件。可通過-U mysql[/warning]
轉載請注明來之運維生存時間:http://www.ttlsa.com/html/3323.html