LINUX 自動備份程式日誌(shell)
定期備份指令碼案列
用tar壓縮7天前日誌
刪除7天壓縮完日誌
刪除壓縮完356天前日誌
#!/bin/bash
#delete expire log
#script name drop_log
#script default remove 7 day log and remove remove archived a year ago
#make date 2015/06/15
result_client=`find /orafile/app/smsclient/runlogs/ -mtime +7 -name "*log.*"|awk -F '/' '{print $6}'`
result_server=`find /orafile/app/smsserver/runlogs/ -mtime +7 -name "*log.*"|awk -F '/' '{print $6}'`
a=`echo $result_client|wc -c`
b=`echo $result_server|wc -c`
if [ $a -gt 1 ] ; then #判斷有沒有壓縮記錄
#for log_list in $result_client
#do
#auto_seq=$((auto_seq+1))
rj=`date +%Y%m%d`
if [ -f /orafile/runlogs/client$rj.tar.gz ] ; then #判斷檔案有沒有存在
echo "file already exists"
else
cd /orafile/app/smsclient/runlogs/
tar -czvf /orafile/runlogs/client$rj.tar.gz $result_client >/dev/null #這裡指定壓縮路徑
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "client log The backup successful"
else
echo "client log The backup failed"
fi
if [ $RESULT -eq 0 ] ; then
cd /orafile/app/smsclient/runlogs/ #切換要刪除目錄
rm -f $result_client #刪除已經壓縮日誌
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "client log The delete successful"
else
echo "client log The delete failed"
fi
fi
fi
#done
else
echo "There is no backup"
fi
if [ $b -gt 1 ] ; then #判斷有沒有壓縮記錄
#for log_list_1 in $result_server
#do
#auto_1_seq=$((auto_1_seq+1))
if [ -f /orafile/runlogs/server$rj.tar ] ; then #判斷檔案有沒有存在
echo "file already exists"
else
cd /orafile/app/smsserver/runlogs/
tar -czvf /orafile/runlogs/server$rj.tar.gz $result_server >/dev/null #這裡指定壓縮路徑
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "server log The backup successful"
else
echo "server log The backup failed"
fi
if [ $RESULT -eq 0 ] ; then
cd /orafile/app/smsserver/runlogs/ #切換要刪除目錄
rm -f $result_server #刪除已經壓縮日誌
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "server log The delete successful"
else
echo "server log The delete failed"
fi
fi
fi
#done
else
echo "There is no backup"
fi
RESULT=$?
if [ $RESULT -eq 0 ] ; then
find /orafile/runlogs/ -mtime +365 -name "*.tar" -exec rm -f {} \; #修改要刪除壓縮備份路徑預設365天
else
echo "remove archived a year ago failed"
fi
用tar壓縮7天前日誌
刪除7天壓縮完日誌
刪除壓縮完356天前日誌
#!/bin/bash
#delete expire log
#script name drop_log
#script default remove 7 day log and remove remove archived a year ago
#make date 2015/06/15
result_client=`find /orafile/app/smsclient/runlogs/ -mtime +7 -name "*log.*"|awk -F '/' '{print $6}'`
result_server=`find /orafile/app/smsserver/runlogs/ -mtime +7 -name "*log.*"|awk -F '/' '{print $6}'`
a=`echo $result_client|wc -c`
b=`echo $result_server|wc -c`
if [ $a -gt 1 ] ; then #判斷有沒有壓縮記錄
#for log_list in $result_client
#do
#auto_seq=$((auto_seq+1))
rj=`date +%Y%m%d`
if [ -f /orafile/runlogs/client$rj.tar.gz ] ; then #判斷檔案有沒有存在
echo "file already exists"
else
cd /orafile/app/smsclient/runlogs/
tar -czvf /orafile/runlogs/client$rj.tar.gz $result_client >/dev/null #這裡指定壓縮路徑
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "client log The backup successful"
else
echo "client log The backup failed"
fi
if [ $RESULT -eq 0 ] ; then
cd /orafile/app/smsclient/runlogs/ #切換要刪除目錄
rm -f $result_client #刪除已經壓縮日誌
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "client log The delete successful"
else
echo "client log The delete failed"
fi
fi
fi
#done
else
echo "There is no backup"
fi
if [ $b -gt 1 ] ; then #判斷有沒有壓縮記錄
#for log_list_1 in $result_server
#do
#auto_1_seq=$((auto_1_seq+1))
if [ -f /orafile/runlogs/server$rj.tar ] ; then #判斷檔案有沒有存在
echo "file already exists"
else
cd /orafile/app/smsserver/runlogs/
tar -czvf /orafile/runlogs/server$rj.tar.gz $result_server >/dev/null #這裡指定壓縮路徑
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "server log The backup successful"
else
echo "server log The backup failed"
fi
if [ $RESULT -eq 0 ] ; then
cd /orafile/app/smsserver/runlogs/ #切換要刪除目錄
rm -f $result_server #刪除已經壓縮日誌
RESULT=$?
if [ $RESULT -eq 0 ] ; then
echo "server log The delete successful"
else
echo "server log The delete failed"
fi
fi
fi
#done
else
echo "There is no backup"
fi
RESULT=$?
if [ $RESULT -eq 0 ] ; then
find /orafile/runlogs/ -mtime +365 -name "*.tar" -exec rm -f {} \; #修改要刪除壓縮備份路徑預設365天
else
echo "remove archived a year ago failed"
fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1972575/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell指令碼:自動記憶體監控及日誌備份指令碼記憶體
- MSsql每天自動備份自動清除日誌的操作方法SQL
- 【alert】每週自動備份alert日誌檔案
- oracle自動備份,儲存每天備份日誌的指令碼編寫Oracle指令碼
- ORACLE自動備份shell指令碼Oracle指令碼
- Linux程式設計-11.Shell Script(bash)--(3)用於自動備份的Shell Script(轉)Linux程式設計
- shell 備份檔案指令碼+自動清理指令碼
- Linux自動備份MySQLLinuxMySql
- oracle rman不能自動刪除歸檔日誌備份解決Oracle
- Shell Script(bash)--用於自動備份的Shell Script(轉)
- 備份之歸檔重做日誌備份
- 備份歸檔日誌
- sqlserver的日誌備份SQLServer
- Linux伺服器日誌備份到本地Linux伺服器
- exp自動備份on linux and on windowsLinuxWindows
- oracle備份把日誌錯Oracle
- 日誌傳送事務日誌備份設定
- RMAN備份歸檔日誌多份 %c
- Oracle 11g EXPDP、RMAN自動備份SHELL指令碼Oracle指令碼
- 備份歸檔日誌檔案
- rman全庫備份備份歸檔日誌檔案
- 【shell】用shell實現自動壓縮日誌並且清理壓縮包
- Linux下Mysql定時自動備份LinuxMySql
- Mysql--Linux Mysql定期自動備份MySqlLinux
- 通過shell指令碼新增備庫日誌指令碼
- 自動expftp備份FTP
- mysql之 xtrabackup原理、備份日誌分析、備份資訊獲取MySql
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- 滲透必備:linux下備份拿shellLinux
- MySQL日誌管理,備份和恢復MySql
- 實時備份mysql binlog日誌MySql
- RMAN備份歸檔日誌指令碼指令碼
- onbar的日誌搶救備份
- Linux Shell自動互動Linux
- rman開始備份歸檔日誌的時候,是不是會自動切換redo?
- 用Linux完成Oracle自動物理備份(轉)LinuxOracle
- windows/linux自動備份mysql並刪除7天前的備份WindowsLinuxMySql
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫