当前位置: 移动技术网 > 网络运营>服务器>Linux > Shell脚本定时备份清除运行系统日志的代码

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

2017年12月12日  | 移动技术网网络运营  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网