linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。
1.创建shell脚本,并分配权限
# 新建一个可执行文件
touch 文件名.sh
# 分配可运行权限
chmod +x 文件名.sh
比如:
touch delete_log.sh
chmod +x delete_log.sh
2.编辑shell脚本
- 进入编辑命令
#示例
vi delete_log.sh
- 输入i进入编辑模式,编辑.sh文件如下:
#!/bin/bash# 日志文件存放的目录
LOG_DIR="/home/work/log/ral"# 查找并删除一周前的日志文件
find "$LOG_DIR" -type f -name "ral.log.*" -mtime +7 -exec rm -f {} \;
find "$LOG_DIR" -type f -name "ral-worker.log.*" -mtime +7 -exec rm -f {} \;
编辑完后, 按esc键输入:wq保存退出。
3.新增调度任务
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
执行脚本进入编辑任务页面
crontab -e
- 将.sh执行脚本加入到系统计划任务,到设定时间就自动执行
设置每天凌晨0点10分执行delete_log.sh文件进行数据清理任务了
10 0 * * * /home/work/delete_log.sh
- 编辑完后, 按esc键输入:wq保存退出。
#查看计划列表
crontab -l