Shell脚本定时备份清除运行系统日志的代码
程序员文章站
2023-11-19 14:39:34
一、写备份并清除老日志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
下一篇: PS怎么清除操作历史记录/剪贴板等缓存?