linux切割文件
『壹』 linux下將文件按行分割的命令
1)按2行切割 -l 2
2)指定切割後的文件前綴名 data_
3)指定切割後的文源兄塌件後綴名為數字 -d
4)指定切割後的文件後綴名數字的長度 -a 4,即位寬(10進制),這里長度可根據切割出來的文件有多少估算,到底拆分為幾個文件,由總行數,和每個文件的行數決定,不用指定。
如果為-a 4文件的後綴數字從0000開始計算,依次為0001,0002,0003,0004
split -l 2 data.log -d -a 4 data_
將文件data.log進行拆分,每個塵燃文件2行,如果文件總共有7行,則分為data_0000,雹圓data_0001,data_0002,data_0003
『貳』 Linux下使用cronolog切割伺服器日誌文件的方法
Linux下運行的Web伺服器Apache,默認日誌文件是不分割的,一個整文件既不易於管理,也不易於分析統計。安裝cronolog後,可以將日誌文件按時間分割,易於管理和分析。
cronolog安裝配置非常簡單,下載後只需要輸入幾個命令即可完成。
1、下載(最新版本)
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
2、解壓縮
# tar zxvf cronolog-1.6.2.tar.gz
3、進入cronolog安裝文件所在目錄
# cd cronolog-1.6.2
4、運行安裝
# ./configure
# make
# make install
5、查看cronolog安裝後所在目錄(驗證安裝是否成功)
# which cronolog
一般情況下顯示為:/usr/local/sbin/cronolog
整個安裝過程結束,下面需要把日誌的格式配置一下:
1、虛擬主機配置文件 httpd-vhosts.conf
將Web日誌設置 CustomLog 修改為以下格式
CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined
當然,錯誤日誌設置 ErrorLog 也可以利用 cronolog 分割,設置為
ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"
2、如果伺服器上只有一個站點(當然這種情況比較少),直接按上面所說格式修改 httpd.conf 文件日誌設置部分。
說明:
綠色部分 為 cronolog 安裝後所在位置,系統版本不同可能位置不完全一樣,以 which 命令查看到的位置為准;
藍色部分 為設置的日誌文件所在位置,根據需要修改;
紅色部分 為設置的日誌文件標識性字元,根據需要修改;
%Y%m%d 為日誌文件分割方式,例子中為「年月日」,也可以修改成自己需要的。
修改httpd.conf文件:
這個文件在我的電腦上是在 /etc/httpd/conf/httpd.conf 不同的伺服器 應該是不一樣的
在最後加上
# ServerAdmin [email protected]
# DocumentRoot /www/docs/mmy-host.example.com
# ServerName mmy-host.example.com
ErrorLog /data/logs/apache/webapps.wps.cn-error_log
CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%d/access_log.%H" combined
#這個保證了每天一個文件夾 文件夾下 每個小時產生一個log
#CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%%Hdaccess_log" combined
進入到 /etc/init.d/httpd configtest 這樣驗證你的配置文件是否正確
進入到 /etc/init.d/httpd restart 重啟apache 伺服器(不同的'系統應該是不一樣 要自己找到)
用於Tomcat
第一步
將
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
修改為
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi
第二步
將
touch "$CATALINA_OUT"
改為
#touch "$CATALINA_OUT"
第三步
將
org.apache.catalina.startup.Bootstrap "$@" start
>> "$CATALINA_OUT" 2>&1 &
修改為
org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
重新啟動 Tomcat
service tomcat restart
可以在 Tomcat 的 logs 目錄底下找到以系統日期為結尾的 catalina.out.yyyy-mm-dd 的檔案,這樣子就成功了。
後續就是持續觀察看看是不是每天都有產生一個新的 catalina.out.yyyy-mm-dd 檔案。然後再安排定期刪除這些較舊的 log 檔即可。