liguojia 2013-02-23
一、写备份并清除老日志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
代码如下:
[eos@xcfwbz1 SAS]$ crontab -l 59 23 * * * /home/eos/SAS/backup_eoslog.sh
清除日志(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