1. 程式人生 > >Linux下通過logrotate定時清理壓縮軟體日誌,如mysql、nginx、tomcat

Linux下通過logrotate定時清理壓縮軟體日誌,如mysql、nginx、tomcat

tomcat日誌如果放任不管,那麼日誌檔案會越來越大,檢視起來也不方便。另外,如果catalina.out的大小超過了2G,那麼tomcat可能在沒有錯誤提示的情況下崩潰、無法啟動。
所以為了避免出現這個問題,我們應該每天分割catalina.out,logrotate就很好的解決了這一問題。
一、logrotate介紹
logrotate軟體是一個日誌管理工具,用於非分隔日誌,刪除舊的日誌檔案,並建立新的日誌檔案,起到“轉儲作用”,可以為系統節省磁碟空間。一般centos系統已經自帶安裝好了。
logrotate是基於crontab執行的,其指令碼是/etc/cron.daily/logtotate,日誌輪轉是系統自發完成的,實際執行時,logrotate會呼叫配置檔案/etc/logrotate.conf。可以在/etc/logrotate.d目錄裡放置自定義好的配置檔案,用來覆蓋logrotate.conf的預設值。
二、logrotate使用示例


/opt/tomcat/logs/catalina.out {  
    rotate 14  
    daily  
    copytruncate  
    compress  
    notifempty  
    missingok  
    size 5M  
}

如果等不及cron自動執行日誌輪轉,想手動強制切割日誌,需要加-f引數;不過正式執行前最好通過Debug選項來驗證一下(-d引數),這對除錯也很重要
# /usr/sbin/logrotate -f /etc/logrotate.d/nginx
# /usr/sbin/logrotate -d -f /etc/logrotate.d/nginx

logrotate命令格式:
logrotate [OPTION...] <configfile>
-d, --debug :debug模式,測試配置檔案是否有錯誤。
-f, --force :強制轉儲檔案。
-m, --mail=command :壓縮日誌後,傳送日誌到指定郵箱。
-s, --state=statefile :使用指定的狀態檔案。
-v, --verbose :顯示轉儲過程。

根據日誌切割設定進行操作,並顯示詳細資訊
[[email protected]_web1 ~]# /usr/sbin/logrotate -v /etc/logrotate.conf 
[

[email protected]_web1 ~]# /usr/sbin/logrotate -v /etc/logrotate.d/php

根據日誌切割設定進行執行,並顯示詳細資訊,但是不進行具體操作,debug模式
[[email protected]_web1 ~]# /usr/sbin/logrotate -d /etc/logrotate.conf 
[[email protected]_web1 ~]# /usr/sbin/logrotate -d /etc/logrotate.d/nginx


三、logrotate常用引數
rotate 14 表示保留14天的備份檔案  
daily 表示每天整理一次  
copytruncate 表示先複製log檔案的內容,然後再清空  
compress 表示壓縮備分檔案  
missingok 表示如果日誌不存在則忽略該警告資訊
notifempty 表示如果log檔案是空的,就不進行rotate
size(或minsize) log-size   當日志文件到達指定的大小時才轉儲,log-size能指定bytes(預設)及KB (sizek)或MB(sizem)。當日志文件 >= log-size 的時候就轉儲。 
以下為合法格式:
size = 5 或 size 5 (>= 5 個位元組就轉儲)
size = 100k 或 size 100k

size = 100M 或 size 100M

總結:logrotate是每天自行的,tomcat、mysql、nginx的一些日誌都可以通過這個工具來定期清理的,我可以在/etc/cron.daily資料夾裡面找到logrotate的配置檔案,他是通過cron每天執行的。

相關推薦

Linux通過logrotate定時清理壓縮軟體日誌mysqlnginxtomcat

tomcat日誌如果放任不管,那麼日誌檔案會越來越大,檢視起來也不方便。另外,如果catalina.out的大小超過了2G,那麼tomcat可能在沒有錯誤提示的情況下崩潰、無法啟動。 所以為了避免出現這個問題,我們應該每天分割catalina.out,logrotate就

何在linux通過ssh執行X圖形軟體

伺服器端:編輯/etc/ssh/sshd_config中的以下內容 啟用AllowTcpForwarding 啟用X11Forwarding 將X11DisplayOffset設定為10. 啟用X11UseLocalhost 客戶機端:編輯/etc/

基於TCP協議實現Linux客戶端與伺服器之間的通訊實現多執行緒多程序伺服器

TCP是TCP/IP協議族中一個比較重要的協議,這是一種可靠、建立連結、面向位元組流的傳輸,工作在傳輸層。和TCP相對的不可靠、無連結、面向資料報的協議UDP,瞭解UDP客戶端與伺服器之間通訊請戳UDP協議實現的伺服器與客戶端通訊 TCP協議建立連線 首

linux的shell——如何修改shell的提示符能夠出現登入使用者名稱主機名和路徑

有的機器上可能登上去後顯示總是-bash-3.00$,解決方法是對比其他機器的~/.bash_profile檔案,發現補充上以下東西就可以顯示"[email protected]機器名 當前dir“了。 2 if [ -f ~/.bashrc ]; then 3 . ~/.bashrc 4 fi

Linux通過php對Mysql中的資料進行定時統計併入庫

本文講解Linux下對資料庫的資料進行統計計算並將結果入庫到另一個表中。本文分3部分進行講解:第一部分介紹:linux下執行php的命令;第二部分介紹:通過指令碼實現統計前幾個月的資料併入庫;第三部分介紹:如何實現每日凌晨對昨日的資料進行統計併入庫。 1.Linux下執行

Linux通過RPM如何安裝和解除安裝軟體

在 Linux 作業系統下,幾乎所有的軟體均通過RPM 進行安裝、解除安裝及管理等操作。RPM 的全稱為Redhat Package Manager(紅帽子包管理器) ,是由Redhat 公司提出的,用於管理Linux 下軟體包的軟體。Linux 安裝時,除了幾個核心模組以外

Linux通過find命令進行rm文件刪除的小技巧

ase test sysconfig ger sdn tun 執行過程 fun alt 我們常常會通過find命令進行批量操作。如:批量刪除舊文件、批量改動、基於時間的文件統計、基於文件大小的文件統計等。在這些操作其中,因為rm刪除操作會導致文件夾結構變化,

linux通過yum倉庫安裝mysql

linux mysql 倉庫 環境:Centos6.5查看centos版本:[[email protected]/* */ ~]# cat /etc/redhat-release CentOS release 6.5 (Final)1.查看是否安裝了mysql[[email 

Linux通過vconfig配置vlan

strong str 都是 指定 ssa 註冊 chkconfig init add 初衷: 我在centos上面搭建了一個dhcp server,由於client發來的dhcp request是加了tag的,為了使dhcp server能夠正常response分給clie

linux添加定時任務

制表符 exp pat tab bad 自己 oot inux sun linux下定時任務文件在/etc/crontab 直接vim /etc/crontab 打開就行 在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域

Linux通過源碼編譯安裝程序

安裝程序 configure 系統目錄 install 命令 com 需要 figure .com ASK: Linux下通過源碼編譯安裝程序(configure/make/make install的作用) configure Linux 平臺有各種不同的配置,安裝時需

linux通過軟連接實現訪問項目路徑外面的資源

技術 虛擬目錄 color 相關 上傳文件 eclipse 擔心 成功 tail 在javaweb項目開發中,圖片上傳是個比較常見的場景。一般都是在項目路徑下建個文件夾,然後上傳到該文件夾下;這樣這個圖片就可以和靜態資源一樣被直接訪問。這樣的好處就是訪問這圖

Linux通過rdesktop遠程windows主機

rdesktopLinux下使用rdesktop命令,可完美遠程windows主機。實驗環境如下:OS版本:elementaryos-0.4.1-stable.20170814-x64本機環境:物理機一般有的Linux發行版的軟件中心,都會有Remmina遠程工具,比如國產deepin OS,使用起來也很方便

linux通過phpize為php在不重新編譯php情況安裝模塊memcache

memcache with tps emca 添加 pecl inux usr ron 通過phpize為php在不重新編譯php情況下安裝模塊memcache 1. 下載 wget http://pecl.php.net/get/memcache-2.2.4.tgz

(轉)Linux通過rsync與inotify(異步文件系統事件監控機制)實現文件實時同步

-a 推送 root started init.d log tool mysql同步 .tar.gz Linux下通過rsync與inotify(異步文件系統事件監控機制)實現文件實時同步原文:http://www.summerspacestation.com/linux%

linuxfind查找文件後使用xargs和exec進行刪除壓縮處理。

find exec xargsmtime 文件內容上次修改時間   atime 文件被讀取或訪問的時間   ctime 文件狀態變化時間   mtime 和 atime 的含義都是很容易理解的,而 ctime 則需要更多的解釋。由於 inode 維護著每個文件上的元數據,因此,如果與文件有關的元數據發生變化,

Linux創建加密的壓縮文件

child html 歸檔 加密壓縮 cin url copy list with Linux下創建加密的壓縮文件 code[class*="language-"],pre[class*="language-"] { color: #333; background: non

記錄linux通過對limits的設置來優化系統性能

pgrep 目前 接下來 total 滿足 執行 獲取 linux下 第一個 系統中子進程繼承父進程的系統限制。只有以root用戶運行的進程能任意修改限制。其它進程不能增加硬限制值。這樣在一個session中登錄進程設置的硬限制值影響該session中的所有進程。 當要優化

SpringBoot熱部署和linux通過vim修改jar裡面的檔案

解決問題: 1、在專案測試或者部署後,經常會遇到需要更改一些配置檔案或者java類,這時使用SpringBoot熱部署可以快速的修改後重啟,方便開發測試; 2、在專案上線後,會遇到一些需要修改的地方,使用linux下的vim工具可以快速的修改已部署好的專案。 一、引入熱部署依賴 &l

[轉載][old] linux 通過wine 執行windows程式包括IE

一、相關說明 Ubuntu9.10 舉例(因為它方便,N多東西直接線上安裝,省得編譯了),其他linux基本相同(不同的就是有些要進行原始碼安裝,但用到的軟體是一樣的),整個安裝我以經做成指令碼放方便下載安裝不過指令碼寫的比較簡單沒有做太多判斷到這裡下載:http://download.csdn