国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux logrotate命令用法詳解:進行日志轉儲(輪替)

2024-08-27 23:56:31
字體:
來源:轉載
供稿:網友
日志輪替之所以可以在指定的時間備份日志,是因為其依賴系統定時任務。如果大家還記得 /etc/cron.daily/ 目錄,就會發現這個目錄中是有 logrotate 文件的,查看一下這個文件,命令如下:

[root@localhost ~]# vi /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
#最主要的就是執行了logrotate命令
EXITVALUE=$?
if [ $EXITVALUE!= 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

也就是說,系統每天都會執行 /etc/cron.daily/logrotate 文件,運行這個文件中的“/usr/sbin/logrotate/etc/logrotate.conf>/dev/null 2>&1”命令。logrotate 命令會依據 /etc/logrotate.conf 配置文件的配置,來判斷配置文件中的日志是否符合日志輪替的條件(比如,日志備份時間已經滿一周),如果符合,日志就會進行輪替。所以說,日志輪替還是由 crond 服務發起的。

logrotate 命令的格式是什么樣的呢?我們來學習一下。

[root@localhost ~]# logrotate [選項] 配置文件名


選項:
  • 如果此命令沒有選項,則會按照配置文件中的條件進行日志輪替
  • -v:顯示日志輪替過程。加入了-v選項,會顯示日志的輪替過程
  • -f: 強制進行日志輪替。不管日志輪替的條件是否符合,強制配置文件中所有的日志進行輪替

我們執行 logrotate 命令,并查看一下執行過程。

[root@localhost ~]# logrotate -v /etc/logrotate.conf
#查看日志輪替的流程
…省略部分輸出…
rotating pattern:/var/log/alert.log weekly (6 rotations)
#這就是我們自己加入輪替的alert.log日志
empty log files are rotated, old logs are removed
considering log /var/log/alert.log
log does not need rotating
#時間不夠一周,所以不進行日志輪替
…省略部分輸出…

我們發現,/var/log/alert.log 加入了日志輪替,已經被 logrotate 識別并調用了,只是時間沒有達到輪替的標準,所以沒有進行輪替。那我們強制進行一次日志輪替,看看會有什么結果。

[root@localhost ~]# logrotate -vf /etc/logrotate.conf
#強制進行日志輪替,不管是否符合輪替條件
…省略部分輸出…
rotating pattern:/var/log/alert.log forced from command line (6 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/alert.log
log needs rotating
#日志需要輪替
rotating log /var/log/alert.log,log->rotateCount is 6
dateext suffix '-20130607'
#提取日期參數
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
running prerotate script
fscreate context set to unconfined_u:object_r:var_log_t:s0
renaming /var/log/alert.log to /var/log/alert.log-20130607
#舊的日志被重命名
creating new /var/log/alert.log mode = 0600 uid = 0 gid = 0
#創建新日志文件,同時指定權限、所有者和屬組
running postrotate script
…省略部分輸出…

我們發現,alert.log 日志已經完成了日志輪替。查看一下新生成的日志和舊日志,如下:

[root@localhost ~]# ll /var/log/alert.log*
-rw-------.1 root root 0 6月 7 10:07 /var/log/alert.log
-rw-------.1 root root 237 6月 7 09:58 /var/log/alert.log-20130607
#舊的日志文件已經輪替
[root@localhost ~]# lsattr /var/log/alert.log
-----a-------e- /var/log/alert.log
#新的日志文件被自動加入了chattr的a屬性

logrotate 命令在使用“-f”選項之后,就會不管日志是否符合輪替條件,而強制把所有的日志都進行輪替。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郧西县| 凤翔县| 黑山县| 乐东| 介休市| 克山县| 荔浦县| 嘉祥县| 玉环县| 阳西县| 嵊泗县| 惠来县| 大港区| 盐城市| 永定县| 洞头县| 高唐县| 珠海市| 鄂托克前旗| 桦甸市| 正蓝旗| 太原市| 阳曲县| 怀远县| 贵德县| 姚安县| 大连市| 五莲县| 芒康县| 太仓市| 沙坪坝区| 彰化县| 宜黄县| 周至县| 若羌县| 孟津县| 方正县| 资中县| 肥乡县| 丹东市| 旌德县|