Shell腳本定時備份清除運行系統(tǒng)日志的代碼
一、寫備份并清除老日志Shell腳本:
#!/bin/sh
#backup eoslog
#author rhao
#date 2008-12-27
#定義環(huán)境變量
EOS_HOME=/home/eos
SAS_HOME=/home/eos/SAS
# 測試主輔結點
if test -d '/home/eos/SAS/SAS1_web1'
then
SAS_LOG_HOME=$SAS_HOME/SAS1_web1/SAS_Domain/bin
else
SAS_LOG_HOME=$SAS_HOME/SAS2_web1/SAS_Domain/bin
fi
# 定義并創(chuàng)建日志備份目錄
SAS_LOG_BAK_HOME=$EOS_HOME/saslog/
mkdir -p $SAS_LOG_BAK_HOME
# 切換目錄為EOS日志文件目錄
cd $SAS_LOG_HOME
# 獲取當前系統(tǒng)日期
TODAY=`date +%Y%m%d`
# 備份當前日志
cp nohup.out $SAS_LOG_BAK_HOME/$TODAY.log
# 清除當前日志
touch nohup.null
cp nohup.null nohup.out -f
rm nohup.null
# 清除七天前的日志
for rmfile in `find $SAS_LOG_BAK_HOME -ctime +7 `;
do /bin/rm -rf $rmfile;
done
二、將腳本加入操作系統(tǒng)的crontab 中,直接VI加入即可
[eos@xcfwbz1 SAS]$ crontab -l
59 23 * * * /home/eos/SAS/backup_eoslog.sh
上面表示每天23:59分執(zhí)行該腳本
清除日志(log)的shell腳本
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ]
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi
tail -$lines messages > mesg.temp
mv mesg.temp messages
echo "Logs cleaned up."
exit 0
相關文章
Linux系統(tǒng)中bash shell編程的10個基礎問題講解
這篇文章主要介紹了Linux系統(tǒng)中bash shell編程的10個基礎問題講解,這10個問題涵蓋了很多Linux shell編程的基本知識點及bash shell的特性,非常推薦!需要的朋友可以參考下2016-02-02shell腳本中main函數(shù)中$#獲取不到腳本傳入?yún)?shù)個數(shù)淺析
Linux的shell腳本,有時候我們在運行shell腳本時會給腳本傳入?yún)?shù),出于邏輯上的嚴謹,在腳本中可能會做一些邏輯判斷或處理,例如判斷腳本傳入?yún)?shù)的個數(shù),這篇文章主要介紹了shell腳本中main函數(shù)中$#獲取不到腳本傳入?yún)?shù)個數(shù)淺析,需要的朋友可以參考下2024-03-03使用Linux的alternatives命令替換選擇軟件的版本方法
下面小編就為大家?guī)硪黄褂肔inux的alternatives命令替換選擇軟件的版本方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Shell腳本連接oracle數(shù)據(jù)庫的實現(xiàn)代碼
這篇文章主要介紹了Shell腳本連接oracle數(shù)據(jù)庫的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Linux 查看內(nèi)存插槽數(shù)、最大容量的方法
下面小編就為大家?guī)硪黄狶inux 查看內(nèi)存插槽數(shù)、最大容量的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05