实用脚本之清除日志---clear_log.sh

简介:

一个很使用的清除日志脚本

精简版

#!/bin/bash             // 一个Bash脚本的正确的开头部分. 
#Filename:clean_full_log.sh
#Datetime:2010_12_23 11:43
#Discription:Clean unused log in the directory /var/log

LOG_DIR=/var/log
# 如果使用变量,当然比把代码写死的好.
cd $LOG_DIR
cat /dev/null > messages
cat /dev/null > wtmp
echo "Logs cleaned up."

exit                      # 这个命令是一种正确并且合适的退出脚本的方法.

完整版 

#!/bin/bash             // 一个Bash脚本的正确的开头部分. 
#Filename:clean_log.sh
#Datetime:2010_12_23 15:28
#Discription:Clean certain of unused log in the directory /var/log
LOG_DIR=/var/log
ROOT_UID=0      # $UID为0的时候,用户才具有root用户的权限 
LINES=50            # 默认的保存行数 
E_XCD=66          # 不能修改目录? 
E_NOTROOT=67     # 非root用户将以error退出 

# 当然要使用root用户来运行. 
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

# Stephane Chazelas 建议使用下边 
#
# E_WRONGARGS=65 # 非数值参数(错误的参数格式) 
#
# case "$1" in
# "" ) lines=50;;
# *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;;
# * ) lines=$1;;
# esac

cd $LOG_DIR

if [ `pwd` != "$LOG_DIR" ] # 或者 if[ "$PWD" != "$LOG_DIR" ]
# 不在 /var/log中?
then
            echo "Can't change to $LOG_DIR."
         exit $E_XCD
fi # 在处理log file之前,再确认一遍当前目录是否正确.

# 更有效率的做法是: 
#
# cd /var/log || {
# echo "Cannot change to necessary directory." >&2
# exit $E_XCD;
# }

tail -$lines messages > mesg.temp      # 保存log file消息的最后部分. 
mv mesg.temp messages                      # 变为新的log目录. 

# cat /dev/null > messages
#* 不再需要了,使用上边的方法更安全. 

cat /dev/null > wtmp # ': > wtmp' 和 '> wtmp'具有相同的作用
echo "Logs cleaned up."

exit 0
# 退出之前返回0,
#+ 返回0表示成功.

 

转载至:http://club.topsage.com/viewthread.PHP?tid=668357&highlight=shell 
如有错误,欢迎指正

邮箱:czmcj@163.com 

作者:czmmiao 原文地址:http://czmmiao.iteye.com/blog/911380
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
14天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
69 1
|
15天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
70 1
|
19天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
25天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
45 0
|
26天前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
44 0
|
21天前
|
XML 运维 监控
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
【深入探究 C++ 日志库清理策略】glog、log4cplus 和 spdlog 的日志文件管理策略
59 0
|
3月前
|
Java Spring
【Spring Boot】logback和log4j日志异常处理
【1月更文挑战第25天】【Spring Boot】logback和log4j日志异常处理
|
27天前
|
安全 编译器 API
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
C++系统日志库精选:深入剖析glog与log4cplus,轻松搭建高效日志系统
86 0
|
1月前
|
存储
Hudi Log日志文件格式分析(一)
Hudi Log日志文件格式分析(一)
25 1
|
1月前
|
缓存 索引
Hudi Log日志文件写入分析(二)
Hudi Log日志文件写入分析(二)
20 1