实用脚本之清除日志---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日志并进行多维度分析。
相关文章
|
5天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
14 1
|
6天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
|
12天前
|
XML Java Maven
Springboot整合与使用log4j2日志框架【详解版】
该文介绍了如何在Spring Boot中切换默认的LogBack日志系统至Log4j2。首先,需要在Maven依赖中排除`spring-boot-starter-logging`并引入`spring-boot-starter-log4j2`。其次,创建`log4j2-spring.xml`配置文件放在`src/main/resources`下,配置包括控制台和文件的日志输出、日志格式和文件切分策略。此外,可通过在不同环境的`application.yml`中指定不同的log4j2配置文件。最后,文章提到通过示例代码解释了日志格式中的各种占位符含义。
|
12天前
|
运维 监控 Go
Golang深入浅出之-Go语言中的日志记录:log与logrus库
【4月更文挑战第27天】本文比较了Go语言中标准库`log`与第三方库`logrus`的日志功能。`log`简单但不支持日志级别配置和多样化格式,而`logrus`提供更丰富的功能,如日志级别控制、自定义格式和钩子。文章指出了使用`logrus`时可能遇到的问题,如全局logger滥用、日志级别设置不当和过度依赖字段,并给出了避免错误的建议,强调理解日志级别、合理利用结构化日志、模块化日志管理和定期审查日志配置的重要性。通过这些实践,开发者能提高应用监控和故障排查能力。
87 1
|
14天前
|
弹性计算 运维 Shell
|
20天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
90 0
|
23天前
|
SQL 存储 监控
SLS 查询新范式:使用 SPL 对日志进行交互式探索
像 Unix 命令一样支持多级管道级联,像加工预览一样实时处理查询结果,更便捷的交互,更丰富的算子,更灵活的探索半结构化日志,快来试试使用 SPL 语言查询日志数据吧~
46319 4
|
24天前
|
Apache
web服务器(Apache)访问日志(access_log)详细解释
web服务器(Apache)访问日志(access_log)详细解释
|
1月前
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示"Accepted password",失败则显示"Failed password"。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
114 4
|
1月前
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
116781 10