crontab
// 查看crond状态
[root@i-m60lx3hh ~]# systemctl status crond// 查看crond进程
[root@i-m60lx3hh ~]# ps aux |grep crond// 清理系统缓存
[root@i-m60lx3hh ~]# echo 3 > /proc//sys/vm/drop_caches// 配置文件
/etc/crontab //Crontab配置⽂件
/etc/cron.deny //该⽂件中所列⽤户不允许使⽤crontab命令
/var/spool/cron/* //所有⽤户定时⽂件都存放此⽬录,⽂件以⽤户名命名
/var/log/cron*/ //定时任务执⾏后的⽇志⽂件,可⽤来回溯//定时任务实际存储路径
/var/spool/cron/crontab -l # 也可以查看// 日志查看
/var/log/cron// 参数介绍
-e 编辑crontab⽂件内容 crontab -e
-l 查看crontab⽂件内容 crontab -l
-r 删除crontab⽂件内容 crontab -r
-u 管理其他⽤户的计划任务 crontab -u user -l
注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username// 示例
00 02 * * * ls //每天2:00整
00 02 1 * * ls //每⽉1号2:00整
00 02 14 2 * ls //每年2⽉14号2:00整
00 02 * * 7 ls //每周⽇2:00整
00 02 * 6 5 ls //每年6⽉的周五2:00整
00 02 14 * 7 ls //每⽉14号2:00整或每周⽇2:00整,这两个时间都执⾏
00 02 14 2 7 ls //每年 2 ⽉ 14 号 2:00 整 或者 每周⽇ 2:00 整,这两个时间都执⾏
00 02 * * * ls //每天2:00整
* 02 * * * ls //每天2:00中的每⼀分钟 (逻辑错误)
* * * * * ls //每分钟执⾏ ls
* * 14 2 * ls //2⽉14号的每分钟(逻辑错误)
*/5 * * * * ls //每隔5分钟
00 02 * 1,5,8 * ls //每年1,5,8⽉的每天2:00整
00 02 1-8 * * ls //每⽉1到8号的2:00整// 定时任务增加必要注释
[root@i-m60lx3hh scripts]# crontab -l
##time sync by user 2025-03-10
*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null// 执行shell脚本任务前需要家/bin/sh ,脚本结尾加&>/dev/null
[root@i-m60lx3hh scripts]# crontab -l
##backup www to /backup user 2025-03-10
00 01 * * * /bin/sh /soft/scripts/www_backup.sh &>/dev/null[root@i-m60lx3hh scripts]# crontab -e
#每天凌晨切割nginx⽇志
00 00 * * * /bin/sh -x /soft/scripts/cut_nginx.sh &> /soft/scripts/log/nginx.log
#每天5点备份数据库
00 05 * * * /bin/sh -x /soft/scripts/dump_sql.sh &>/soft/scripts/log/mysql.log
#每5分钟检测数据库是否正常
*/5 * * * * /bin/sh /soft/scripts/start_mysql.sh &>/dev/null
//注意:
1.我们所有的crond服务是运⾏的程序。⽽crontab命令⽤户⽤来设置定时规则的命令。
2.crond服务是企业⽣产⼯作中常⽤的重要服务,at很少使⽤,可以忽略。
3.⼏乎每个服务器都会⽤到crond服务。1.⼿动执⾏保留执⾏命令的正确结果
2.编写脚本
脚本需要统⼀路径/soft/scripts
脚本开头建议填写注释信息, 包括执⾏时间、周期、任务
脚本内容复制执⾏成功的命令⾄脚本⽂件中(减少每个环节出错⼏率)
脚本内容尽可能的优化, 使⽤⼀些变量或使⽤简单的判断语句
脚本执⾏的输出信息不要随意打印, 可以重定向⾄其他位置保留或丢⼊⿊洞
3.执⾏脚本
使⽤bash执⾏, 防⽌脚本没有增加执⾏权限(/usr/bin/bash)
执⾏命令以及脚本成功后并复制该命令
4.编写计划任务
加上必要的注释信息, ⼈、时间、任务
设定计划任务执⾏的周期
粘贴执⾏脚本的命令(不要⼿敲)
5.调试计划任务
增加任务频率测试、调整系统时间测试(不能⽤于⽣产)
检查环境变量问题、检查crond服务产⽣⽇志进⾏排查