快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
开发一个Crontab案例库应用,展示各种实用的定时任务配置案例。每个案例应包括:任务描述、Crontab表达式、实现代码/命令、注意事项。支持按场景(如运维、开发、数据分析)分类浏览,提供'一键复制'功能,用户可以直接复制案例到自己的Crontab中。同时包含测试功能,允许用户在不修改实际Crontab的情况下测试任务执行效果。- 点击'项目生成'按钮,等待项目生成完整后预览效果
今天想和大家分享一些我在工作中积累的Crontab实用案例。作为Linux系统中最常用的定时任务工具,Crontab几乎成了每个开发者和运维人员的必备技能。下面这些案例都是经过实战检验的,希望能帮到大家。
日志文件定期清理这个任务每天凌晨3点自动清理7天前的日志文件。表达式是
0 3 * * * find /var/log -name "*.log" -mtime +7 -exec rm {} \;。注意要确保执行用户有对应目录的权限。数据库定时备份每周日凌晨2点进行MySQL数据库备份,表达式为
0 2 * * 0 mysqldump -u root -p密码 数据库名 > /backups/db_$(date +\%Y\%m\%d).sql。建议备份完成后添加校验步骤。服务状态监控每5分钟检查Nginx服务状态,表达式
*/5 * * * * systemctl status nginx || systemctl restart nginx。这个简单监控可以避免服务意外停止。数据同步任务每小时同步两个目录的数据,表达式
0 * * * * rsync -avz /source/dir/ user@remote:/target/dir/。注意要提前配置好SSH免密登录。定时发送报告工作日早上9点发送系统状态报告,表达式
0 9 * * 1-5 /usr/local/bin/send_report.sh。报告脚本需要提前准备好。缓存清理每月1号凌晨清理缓存,表达式
0 0 1 * * echo 3 > /proc/sys/vm/drop_caches。这个操作会清空系统缓存。证书自动续期每周检查一次SSL证书,表达式
0 0 * * 0 /usr/bin/certbot renew --quiet。适用于Let's Encrypt证书。定时数据统计每天23:30运行数据分析脚本,表达式
30 23 * * * /opt/scripts/data_analysis.py。注意脚本要有执行权限。系统更新每周六凌晨4点自动更新系统,表达式
0 4 * * 6 apt-get update && apt-get upgrade -y。适用于Debian系系统。自定义监控每10分钟检查磁盘空间,表达式
*/10 * * * * df -h | awk '$5 > 90 {print $6}' | mail -s "磁盘告警" admin@example.com。超过90%使用率会发邮件告警。
在使用这些定时任务时,有几点经验分享:
- 所有任务都应该先手动测试确保能正常运行
- 重要的任务建议添加日志记录
- 长时间运行的任务要考虑加锁机制
- 关键任务最好有失败通知机制
- 表达式要尽量精确,避免过于频繁
最近我在InsCode(快马)平台上创建了一个Crontab案例库项目,可以很方便地测试和分享这些定时任务配置。平台的一键部署功能特别实用,不用自己搭建环境就能直接运行测试。
对于刚接触Crontab的同学,建议先从简单的任务开始,逐步增加复杂度。每个任务都要确保有明确的日志记录,这样出问题时才好排查。希望这些案例能帮助大家更好地使用这个强大的定时任务工具。
快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
开发一个Crontab案例库应用,展示各种实用的定时任务配置案例。每个案例应包括:任务描述、Crontab表达式、实现代码/命令、注意事项。支持按场景(如运维、开发、数据分析)分类浏览,提供'一键复制'功能,用户可以直接复制案例到自己的Crontab中。同时包含测试功能,允许用户在不修改实际Crontab的情况下测试任务执行效果。- 点击'项目生成'按钮,等待项目生成完整后预览效果