corntab是linux的定时任务,主要是用于对linux服务文件进行备份或删除,搭配shell脚本来执行,比如说对日志文件定期删除或备份
简单以删除linux文件作为例子说明
创建删除日志shell脚本
source /etc/profile
find /home/dbbak/ -mtime +7 -type f -name "*.sql.*" -exec rm -f {} \;
/home/dbbak是存放日志的位置,*.sql.*是找到以文件名内包含了.sql.的文件,+7是表示只保存7天的日志,其他时间段的日志都删除
脚本创建好可以直接sh执行下,检验下shell脚本是否可以执行,执行效果是否正常
日志策略是:每天会创建一个日志文件,文件名命名规则是xxx.sql.log,以往的日志在文件名后携带日期
设置定时任务
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
进入编辑,采用cron表达式+需要执行的shell脚本命令比如:
* * * * * sh /root/shell/logs.sh
每分钟执行一次logs.sh,设置完后保存wq文件退出编辑,如果编辑中存在错误语法,会提示错误信息,按y可以进入原先编辑模式,检查语法进行编辑,按n退出编辑
检查定时当前存在哪些定时任务
crontab -l
显示当前执行着的定时任务
检验定时任务是否有执行
查看日志存放位置,是否删除了只剩下前8天的日志,超过前8天的日志都删除了,当前这里需要保证日志有足够多,具体shell脚本怎么编辑删除,请自行查看其他资料
为什么是8天,linux中find的语法问题,+n是指(n+1)天之前的文件,-mtime是指文件最近一次修改时间,结合上述的表达式可推算出是删除8天前上创建的日志
crontab的cron表达式与springboot的cron表达式
特别注意了。crontab的cron表达式与springboot的cron表达式的语法位数是不一样的,一定要注意,千万不要直接将springboot的定时任务中cron表达式套用在crontab上,至于我为什么知道??????、你们懂的!!!!!哈哈哈哈