编写清理日志脚本clearlog.sh

本文介绍了一个用于Linux系统的Shell脚本,该脚本能够查找并删除指定目录下超过30天的老日志文件。文章还提到了在编写此类脚本时常见的错误及其修正方法。

 

linux 删除指定日期之前的文件

https://blog.youkuaiyun.com/zljjava/article/details/8351060

 

 

1 #!/bin/bash
2 find /home/tomcat/base/logs -mtime +30 -name "*.log" -exec rm {}\;

 

抄也能抄错。一个是windows下符号的问题,另外一个是结尾的问题。提示

 

find: missing argument to `-exec'

 

关键问题在这里。中间必须要要一个空格。

参考 https://blog.youkuaiyun.com/xiadingling/article/details/50770588

 

1 #!/bin/bash
2 find /home/tomcat/base/logs -mtime +30 -name "*.log" -exec rm {} \;

 

转载于:https://www.cnblogs.com/nanahome/p/9196484.html

### 如何配置每日清理 Nginx 访问日志 为了实现每天自动清理 Nginx 的 `access.log` 文件,可以采用多种方法。以下是两种常见的方式: #### 方法一:使用 Logrotate 工具处理 Nginx 日志文件 Logrotate 是 Linux 系统上用于管理日志文件的工具,能够定期轮转、压缩并删除旧的日志文件。 创建或编辑 `/etc/logrotate.d/nginx` 配置文件来定义针对 Nginx 日志的具体策略[^1]: ```bash /var/log/nginx/access.log { daily # 每天执行一次 rotate 30 # 保留最近30天的日志副本 compress # 压缩过期的日志文件 missingok # 如果日志不存在则忽略错误 notifempty # 只有当文件不为空时才进行操作 create # 创建新的空日志文件 postrotate # 在完成上述动作之后运行命令 /usr/sbin/nginx -s reload > /dev/null 2>&1 || true; endscript } ``` 此设置会确保每晚零点左右触发日志轮替过程,并通过发送信号给 Nginx 来重新打开新日志文件描述符。 #### 方法二:编写自定义 Shell 脚本配合 Cron 定时任务 如果不想依赖于系统的 logrotate 功能,则可以通过编写简单的 shell 脚本来手动清除这些日志数据,并利用 cron 设置定时计划任务来进行自动化维护。 脚本示例 (`/root/clear_nginx_logs.sh`) : ```bash #!/bin/bash LOG_PATH="/var/log/nginx" ACCESS_LOG="$LOG_PATH/access.log" # 清除现有访问日志内容 > $ACCESS_LOG # 发送 SIGHUP 给 Nginx 主进程使其重载配置刷新日志句柄 killall -HUP nginx ``` 赋予可执行权限: ```bash chmod +x /root/clear_nginx_logs.sh ``` 接着,在 crontab 中加入如下条目以便每天凌晨两点整执行该脚本: ```bash 0 2 * * * root /root/clear_nginx_logs.sh >> /dev/null 2>&1 ``` 这种方法简单直接,适用于那些不需要复杂日志管理和存档需求的小型站点环境[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值