linux编写自动清log的脚步
时间: 2023-07-12 13:10:19 浏览: 40
你可以使用以下脚本自动清理 Linux 系统中的日志文件:
```
#!/bin/bash
# 设置要清理的日志文件目录
LOG_DIR=/var/log
# 设置要清理的日志文件名
LOG_FILES="auth.log syslog"
# 设置要保留的日志文件数
KEEP_LOGS=5
cd $LOG_DIR
# 遍历要清理的日志文件
for LOG_FILE in $LOG_FILES
do
# 获取当前日志文件的备份数
NUM_LOGS=$(ls -l $LOG_FILE* | wc -l)
# 如果备份数超过保留的日志文件数,则删除最早的备份
if [ $NUM_LOGS -gt $KEEP_LOGS ]
then
# 获取最早的备份文件名
OLDEST_LOG=$(ls -1tr $LOG_FILE* | head -1)
# 删除最早的备份文件
rm $OLDEST_LOG
fi
done
```
将以上脚本保存为一个文件,例如 `log_cleanup.sh`,然后将其添加到 crontab 中以定期运行。例如,如果你想每天晚上 11 点运行该脚本,你可以使用以下命令将其添加到 crontab 中:
```
$ crontab -e
```
然后在打开的 crontab 文件中添加以下内容:
```
0 23 * * * /path/to/log_cleanup.sh
```
其中 `/path/to/log_cleanup.sh` 是你保存脚本的路径。保存并退出 crontab 文件后,该脚本就会每天晚上 11 点自动运行,清理指定目录中的日志文件。