linux-crontab简单使用

linux-crontab简单使用

最近在使用阿里云,项目部署到阿里云上一切运行正常,几个月之后突然发现项目中实时数据没有展示,百思不得其解,重启服务或者重启云主机暂时正常,过一会又没法读取实时数据了。发愁之际突然灵光一闪,没有读取到数据是不是因为没有写入数据的原因啊?没有写入数据是不是磁盘满了呢?

使用命令查看一番,磁盘确实已满
使用 df -h 命令进行查看
linux-crontab简单使用_第1张图片

crontab的使用

使用crontab可以周期性的执行一些任务,周期性删除日志文件就可以达到清理磁盘空间的目的。

示例

使用crontab周期性产生文件

测试生成文件可能更直观一些
/usr/local/logs/ 文件存放目录
/usr/local/job/ 执行脚本存放目录

1、首先编写想要执行的脚本 auto-mk-log.sh

#!/bin/sh
touch /usr/local/logs/access_`date +%Y%m%d%H%M`.log

2、添加可执行权限
#chmod -x auto-mk-log.sh

3、编辑crontab
每隔一分钟执行一次脚本
crontab -e
crontab

4、查看logs目录下是否产生了新文件
通过查看可以看到每分钟产生一个文件,说明crontab执行成功。linux-crontab简单使用_第2张图片

使用crontab周期删除文件

1、编写删除文件的脚本 auto-del-log.sh,并添加可执行权限
删除一天内logs文件夹下匹配*.log的文件
删除脚本

2、编辑crontab
crontab

3、查看结果
先前产生的众多文件已被删除,只有一个新生成的文件。
在这里插入图片描述

crontab表达式相关

分     时     日     月    星期     命令
0-59    0-23    1-31   1-12    0-6   command
“*”代表取值范围内的数字
“/”代表”每”
“-”代表从某个数字到某个数字

删除脚本说明

find /usr/local/logs/ -mtime -1 -name “*.log” -exec rm -rf {} ;

说明:
find:Linux查找命令,用户查找指定条件的文件
/usr/local/logs/:需要进行清理的目标目录
-mtime:标准语句写法
-1 :数字代表天数
-name "*.log":目标文件的类型,带有log的所有文件
-exec:固定写法
rm -rf:强制删除包括目录在内的文件
{} \;:固定写法,一对大括号+空格+\+;

小尾巴~~
只要有积累,就会有进步

你可能感兴趣的:(linux,linux,日志,crontab,脚本,定时任务)