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
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17