Linux备份日志目录脚本,Shell脚本定时备份清除运行系统日志的代码

一、写备份并清除老日志Shell脚本:

#!/bin/sh

#backup eoslog

#author rhao

#date 2008-12-27

#定义环境变量

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

# 定义并创建日志备份目录

SAS_LOG_BAK_HOME=$EOS_HOME/saslog/

mkdir -p $SAS_LOG_BAK_HOME

# 切换目录为EOS日志文件目录

cd $SAS_LOG_HOME

# 获取当前系统日期

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

二、将脚本加入操作系统的crontab 中,直接VI加入即可

[eos@xcfwbz1 SAS]$ crontab -l

59 23 * * * /home/eos/SAS/backup_eoslog.sh

上面表示每天23:59分执行该脚本

清除日志(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值