需求描述:
一台前置服务器,每天生产大量日志文件,需要配置定时任务,每天执行一次,检查并删除30天前的日志文件。
配置过程:
- 1 选择自己的脚本目录
mkdir /home/bin
cd /home/bin
- 2 创建脚本文件
touch del_30.sh
- 3 配置脚本,定义find函数,删除目录/apps/log/下所有类型文件
find /apps/log/* -type f -mtime +30 -exec rm -rf {} \;
#find查找文件
# /apps/log/* 对应目录下所有文件
# -type f 所有类型的文件
# -mtime +30 修改时间超过30天的
#Access time 访问时间、
#Modify time 最后一次修改内容时间、
#Change time 最后一次改变文件时间,包括权限等等
# -exec 执行函数
# rm -rf 删除命令
# {} \ 表示find匹配到的所有文件( {} \中间有控制 ,\;中间没有空格)
- 4 设置可执行权限
chmod +x del_30.sh
- 5 添加定时任务
crontab -e
(1)前边是corn表达式,
(2)然后接你的sh文件,
(3)最后为执行结果输出地址,一般配置“ >/dev/null 2>&1 & ”表示不打印在任
何地方,相当于个黑洞。
-
6 可用crontab -e查看以有哪些定时,如
7对于有些服务器未安装crontab命令,则需提前安装,联网安装:
yum install vixie-cron
yum install crontabs
- 8 无网安装
源码包下载地址:https://centos.pkgs.org/7/centos-x86_64/crontabs-1.11-6.20121102git.el7.noarch.rpm.html
可在此网站找到对应服务器类型到rpm包,进行安装,常用安装命令
rpm -q 包名:查询包是否安装
rpm -qa:查询所有已安装的RPM包
* rpm -ivh 包全名
* -i(install):安装
* -v(verbose):显示详细信息
* -h(hash):显示进度
* --nodeps:不检测依赖性
- 9 测试安装是否完成,验收结果,cron 是 linux 的内置服务,可以用以下的方法启动、关闭这个服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
Linux操作集目录 //www.greatytc.com/p/7839d27c62f8