欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2022-06-29 23:06:22
一、写备份并清除老日志shell脚本:复制代码 代码如下:#!/bin/sh#backup eoslog#author rhao#date 2008-12-27 #定义环...

一、写备份并清除老日志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