`

实用脚本之清除日志---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

分享到:
评论

相关推荐

    如何定时清理Linux系统中的Nginx日志.pdf

    首先,我们需要创建一个名为`clear_log.sh`的脚本,用于日志的分割和清空。这个脚本的基本结构如下: ```bash #!/bin/bash cp /usr/local/nginx/logs/error.log /usr/local/nginx/error-$(date -d "yesterday" +"%Y...

    如何定时清理Linux系统中的Nginx日志.docx

    在描述中提到了`clear_log.sh`脚本,这是一个用于将当前的日志文件备份并清空的脚本。在 `/usr/local/nginx/clear_log.sh`路径下创建该文件,并输入以下内容: ```bash #!/bin/bash cp /usr/local/nginx/logs/error...

    DataGuard之自动删除已应用的归档日志[参考].pdf

    本文将详细介绍DataGuard之自动删除已应用的归档日志的技术要点,并提供相关的Shell脚本。 一、判断备机上哪些日志已经被应用到备库上 为了判断备机上哪些日志已经被应用到备库上,可以通过查询v$archived_log的...

    sh中执行sql脚本

    `clear.sh`这个文件名暗示它是一个清理或者初始化操作的Shell脚本。 首先,我们需要了解基本的Shell语法。在Shell脚本中,我们可以使用`#!/bin/bash`或`#!/bin/sh`作为脚本的首行,来指定使用哪个Shell解释器执行...

    Linux operation every Saturday

    - `/root/bin/v_clear.sh`: 清理日志的脚本路径。 - `ALL`: 指定清理所有类型的日志。 ### 二、磁盘空间监控与管理 #### 知识点概述: 对于Linux服务器而言,磁盘空间的有效管理至关重要。应定期检查磁盘使用情况...

    ubuntu-command.rar_ubantu

    例如,`grep "error" logfile.log`在日志文件中查找"error"。 14. **find**:在文件系统中查找文件。如`find ~ -name "myfile"`将在用户主目录下查找名为"myfile"的文件。 15. **chmod**:改变文件或目录的权限。...

    简易脚本实例带你了解Shell脚本

    脚本`ip_show.sh`展示获取当前IP地址的方法,`host_messages.sh`显示主机名、IP地址和当前登录用户,而`clear_log.sh`清理日志文件。 9. **循环创建用户**: 最后的`create_user.sh`脚本利用`for`循环读取用户...

    shell_command.txt

    - **clear**: 清除终端屏幕。 - 用法:`clear` - **sleep**: 让程序暂停一段时间。 - 用法:`sleep [秒数]` - 示例:`sleep 1`(让程序暂停1秒钟)。 - **history**: 显示历史命令记录。 - 用法:`history...

    解决Tomcat 中catalina.out持续累加问题

    1. 在Tomcat的bin目录下创建一个名为clear_log.sh的Shell脚本,并添加以下内容: ```bash #!/bin/sh d=`date +%Y-%m-%d` d7=`date -d '7 day ago' +\%Y-\%m-\%d` cp /opt/apache-tomcat-8.5.9/logs/catalina....

    Linux命令大全

    - `tail -f ubiclient.log`: 实时显示 `ubiclient.log` 日志文件的最新内容。 #### 9. 终止进程:`kill` - `kill -9 PID`: 终止指定进程ID (PID) 的进程。 #### 10. 删除文件或目录:`rm` - `rm -rf directory`:...

    Linux下RMAN备份策略.txt

    5. **清理临时文件**:创建一个名为`clearfile.sh`的脚本来定期清理Oracle产生的临时文件,如审计文件和跟踪文件等。 ```bash vi /opt/app/oracle/rman_bak/scripts/clearfile.sh chmod +x /opt/app/oracle/rman_...

    java script或者vbscript 脚本使用原始socket通信

    只在xp 环境下试过,x86系统应该问题不大,x64可能不支持,使用前先执行SocketReg.exe对组件进行注册,然后就可以在网页脚本中使用套接字了,这个组件是99年国外一公司开发的,本意是用来实现http ,ftp,smtp pop3...

    Oracle_11g日常操作与维护手册

    - **日志清理**: 使用命令`ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP [group_number];`来清理未归档的日志文件。 - **重做日志切换次数查询**: 使用命令`SELECT sequence#, first_change#, next_change# FROM ...

    Linux服务器下MariaDB 10自动化安装部署

    接下来,创建一个自动化安装脚本,例如`mariadb_auto_install.sh`,并将以下内容添加到脚本中: ```bash #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin export PATH # 检查是否以root...

    A-UNIX常用操作命令说明文档.doc

    - `chmod 755 script.sh`: 设置脚本文件 `script.sh` 的权限为可读、可写、可执行。 #### 15. 改变文件用户和组 - **命令**: 使用 `chown` 和 `chgrp` 来更改文件的所有者和所属组。 - **格式**: - `chown user:...

    LINUX教程 LINUX教程

    - `clear`: 清除终端屏幕。 - `history`: 显示执行过的命令历史记录。 **5. 定时任务** - `crontab`: 编辑定时任务表。 - `e`: 编辑当前用户的定时任务列表。 - `l`: 查看当前用户的定时任务列表。 - `r`: 删除...

    linux进阶指令.docx

    `tail -f log.txt`会持续显示`log.txt`文件的最新添加内容。 5. **Less指令**:分页查看文件内容。在输出内容过多时很有用,按空格键向下翻页,`q`键退出。 6. **Wc指令**:统计文件的行数、单词数和字节数。`wc -...

    shell日志颜色处理及清理系统日志的方法

    在提供的示例脚本中,`clear_old_log`函数用于删除超出限制的旧日志文件。它首先通过`ls -t`按修改时间排序列出文件,然后选择最早的文件(即最旧的文件)。如果文件大小超过预设的最大值(`maxsize`),则根据...

Global site tag (gtag.js) - Google Analytics