前言
最近Linux服务器每天有大量日志产生,并且内容量也高达几百M,如果不及时清理,很容易就把服务器硬盘空间挤爆了,但是靠人力手工去清除太麻烦,所以考虑设置定时任务,让服务器定时清理日志
操作
写清除日志脚本
(1)确定好你要清除的日志文件路径
(2)新建sh脚本文件,命名为clearlog.sh,内容输入以下
#!/bin/bash
echo "---清理日志---"
find 你的日志文件路径 -mtime +7 -name '*.log' -exec rm -rf {} ;
echo "---清理完成---"
- 在你的日志文件路径 写上实际需要的
- -mtime +7 :查找在指定时间曾被更改过的文件或目录,单位以24小时计算。
- 因此这句命令总的意思就是清除指定路径7天前以log为后缀的文件
部署定时任务
实现定时任务,需要在Linux服务器安装crontab服务
安装crontab
(1)安装crond服务
[root@localhost ~]# yum install crontabs |
|---|
(2)启动
[root@localhost ~]# service crond restart |
|---|
(3)查看目前有哪些定时任务
[root@localhost ~]# crontab -l |
|---|
指定要执行的定时脚本
(1)编辑定时任务
[root@localhost ~]# vim /etc/crontab |
|---|
(2)在最后一行,指定定时任务执行频率,指定要执行的脚本
在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效
注意:记得在要执行的shell 脚本开头使用以下代码 :#!/bin/sh。
以下是例子:
* * * * * 用户名 绝对路径文件 (每一分钟执行一次)
0 0 1,15 * * 用户名 绝对路径文件 (每月1号、15号执行一次)
0 */2 * * * 用户名 绝对路径文件 (每两小时执行一次)
0 0 * * 0 用户名 绝对路径文件 (每周执行一次)
0 0 1 * * 用户名 绝对路径文件 (每月执行一次)
(3)保存定时任务
[root@localhost ~]# crontab /etc/crontab |
|---|
(4)部署定时任务
[root@localhost ~]# service crond reload |
|---|
| ------------------------------------------- |
(5)查看定时任务执行日志
[root@localhost ~]# cat /var/log/cron |
|---|
| ------------------------------------------- |