每天凌晨一點,將tomcat中的catalina.out日誌壓縮並備份到目標資料夾中,以當天日期為格式,然後清空日誌。
刪除超過15天的備份日誌,並將logs中的其他日誌檔案每7天清空一次(如 localhost.2018-09-21.log等)
用date函式擷取當前時間日期
將logs中的catalina.out檔案用gzip命令打包壓縮移動到目標資料夾
用find命令清除更改時間為15天以前的壓縮包
用find命令配合for迴圈清空7天以前的日誌檔案
用crontab定時命令每天凌晨一點執行一次此shell指令碼
#!/bin/bash
d=`date +%y-%m-%d`
path1=/usr/local/myshell
path2=/usr/local/tomcat/logs
cd$path2
gzip -c catalina.out>
$path1/catalina.$d.gz
cat /dev/null>
$path2/catalina.out
find
$path1 -mtime +15 -name "*.gz" -exec rm -rf \;
for i in
`find $path2 -mtime +7 -name "*.log"
` do
cat /dev/null>
$idone
for l in
`find $path2 -mtime +7 -name "*.txt"
` do
cat /dev/null>
$ldone
date +%y-%m-%d
date命令 顯示當前時間
「+
」 加號為設定顯示的日期格式
%y
年%m
月%d
日%h
小時%m
分鐘%s
秒
gzip -c catalina.out>$path1/catalina.$d.gz
gzip 為壓縮命令 壓縮字尾為.gz
格式為 gzip -命令 要壓縮的檔案>
壓縮後的路徑檔案
-c
不改動原始檔案
cat /dev/null>$path2/catalina.out
/dev/null
是乙個黑洞檔案 可以用於丟掉資料,任何進入她的資料都會丟失,將她匯入任何檔案,檔案都會變成空白。
用cat
進行查詢並輸入/dev/null
中的內容進入日誌,從而實現清空日誌的目的
find $path1 -mtime +15 -name "*.gz" -exec rm -rf {} \;
find命令為查詢
-mtime
為內容被修改的時間(經常用於find 配合rm刪除多少天前建立的檔案)
-ctime
為狀態發生改變的時間(許可權 位置等)
-atime
為最近訪問的時間
「+
」為多少天前 「-
」為多少天內
-name
為名字符合name的檔案
-exec
將查詢到的內容進行後續的操作
{}
代表find查到的結果
;
是代表 -exec後的命令一直到;
結束
\
為轉義
for l infind $path2 -mtime +7 -name "*.txt"
for 迴圈意味重複查詢符合「」
中條件的檔案並進行清空檔案的操作
0 1 * * * /usr/local/myshell/tomcat.sh
crontab -e 可以編輯定時任務
0 1 * * *
這五個符號分別為 分鐘 小時 日 月 星期
*為所有時間
所以上面的意思為每天凌晨一點執行一次tomcat.sh
mysql自動備份shell
bin bash mysqldump hip或者網域名稱 預設localhost u賬戶 p密碼 資料庫 gzip home backup sql 資料庫 date y m d h m s sql.gz 我們在加入linux計畫任務 cron守護程序 crontab e 編輯任務 crontab l...
CentOS MySQL自動備份shell指令碼
在資料庫的日常維護工作中,除了保證業務的正常執行以外,就是要對資料庫進行備份,以免造成資料庫的丟失,從而給企業帶來重大經濟損失。通常備份可以按照備份時資料庫狀態分為熱備和冷備,按照備份資料庫檔案的大小分為增量備份 差異備份和全量備份。這裡,我們講解一種全量備份的方法,來實現定時備份資料到mysql指...
jenkins執行shell啟動tomcat失敗
環境 centos 6.5 jenkins版本 1.6 狀況 整合jenkins bitbucket,構建持續部署。構建完畢,jenkins會執行伺服器某個目錄下的shell,指令碼中功能是複製war包到tomcat目錄下,重啟tomcat。但是,tomcat只是啟動了一下,就關閉了,並沒有啟動to...