shell程式設計 自動備份tomcat日誌詳解

2021-08-31 16:08:10 字數 2231 閱讀 7618

每天凌晨一點,將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...