定时清理日志信息:
目录下的单个日志文件: 如 /mnt/zklc/tmp/a.log
1- 在家目录下创建一个bin目录,在bin目录里面写上一个脚本 deletelog.sh
内容如下:
#!/bin/bash
echo '' > /mnt/zklc/tmp/a.log;
添加执行权限:
chmod 777 /home/liushuo/bin/deletelog.sh
2- 在定时任务里面写一个任务,定时执行这个脚本
进入定时任务编写界面
crontab -e
编写定时任务(每月的15号将数据清空)
0 23 15 * * /mnt/removelog/sh/deletelog.sh
目录下的多个日志文件
第一步:
root用户下操作 创建相关的目录
cd /mnt/
mkdir removelog
chmod 777 removelog
cd /mnt/removelog/
mkdir /mnt/removelog/sh
mkdir /mnt/removelog/log
第二步编写sh脚本( vim /mnt/removelog/sh/deletelog.sh)
脚本内容如下:
#!/bin/bash
find /home/liushuo/test/log/ -mtime +30 -name "*.log" | xargs -i mv {} /mnt/removelog/log/;
##查询/var/spool/mail下面的文件,将最近30天之外的日志数据文件挪到/mnt/removelog/log/目录下面(这个时间指的是操作修改的时间)
##比如日志文件包含(今天的日期是20210708)
## -rw-rw-r--. 1 liushuo liushuo 22739 7月 10 01:22 2021-07-08-error.log
## -rw-rw-r--. 1 liushuo liushuo 2235 5月 10 08:22 2021-05-10-error.log
## -rw-rw-r--. 1 liushuo liushuo 23453 3月 10 11:30 2021-03-10-error.log
## 被挪走的文件就是2021-03-10-error.log 和 2021-05-10-error.log
find /mnt/removelog/log -name "*.log" -exec rm -rf {} \;
##将/mnt/removelog/log目录下的所有文件删除掉
为.sh添加执行权限
chmod 777 /mnt/removelog/sh/deletelog.sh
第三步:
将定时任务写入到contrb定时任务中(deletelog.sh 目录:/mnt/removelog/sh)
在root用户下执行:crontab -e 进入定时任务编写界面,编写任务如下
0 2 * * * /mnt/removelog/sh/deletelog.sh
contrb注释:
0 2 * * * /mnt/removelog/sh/deletelog.sh
分 时 日 月 周 |<============命令串============>|*表示不论何时都会执行的意思
,表示分隔时间段 如0 2,3 * * * 命令串 表示每天2:00和3:00都会执行命令串
-表示时间范围 如20 8-10 * * * 命令串 表示每天8:20 9:20 10:20 都会执行命令串
*/n 表示每隔n时间执行一次 如*/5 * * * * 命令串 表示每隔五分钟执行一次命令串