前面8天,我们掌握了Linux文件操作、权限、用户、检索、文本处理、系统监控。
今天进入自动化运维核心技能:
系统日志管理、Crontab定时任务。
真正的生产服务器,90%的自动化工作全部靠 Crontab 完成:
定时备份、定时清理日志、定时采集数据、定时重启服务。
学会今天内容,你的Linux能力从「手动操作」升级为「自动化运维」。
一、今日学习目标
✅ 掌握Linux系统核心日志文件位置与作用
✅ 学会日志查看、筛选、清理、轮转思路
✅ 精通 Crontab 定时任务语法
✅ 熟练配置每分钟/每小时/每天定时任务
✅ 掌握企业常用定时脚本模板与避坑规范
二、Linux核心系统日志详解
Linux所有系统、登录、报错、服务记录全部保存在 /var/log 目录
1、核心日志文件
- /var/log/messages :系统全局日志(硬件、服务、系统报错)
- /var/log/secure :安全日志、登录记录、爆破记录(排查入侵必看)
- /var/log/cron :定时任务执行日志
- /var/log/boot.log :系统开机启动日志
- /var/log/dmesg :硬件驱动、内核报错日志
2、日常日志排查套路
bash
# 查看最新日志
tail -f /var/log/messages
# 筛选报错日志
grep -i "error" /var/log/messages
# 查看最近登录异常
grep -i fail /var/log/secure
3、日志清理重要规范
严禁直接 rm 删除正在写入的日志文件!
会导致磁盘空间不释放、服务卡死。
正确清空日志方式:
bash
> /var/log/messages
三、Crontab 定时任务核心语法
1、开启定时任务编辑
bash
crontab -e
2、查看已有的定时任务
bash
crontab -l
3、删除所有定时任务
bash
crontab -r
4、五星语法口诀(重中之重)
plaintext
分 时 日 月 周 执行命令
字段对应:
- 分:0-59
- 时:0-23
- 日:1-31
- 月:1-12
- 周:0-6(0为周日)
特殊符号:
- * 每单位
- */n 每隔n时间
- , 指定多个时间
- - 时间段
四、高频实战定时任务模板(企业直接用)
1、每分钟执行一次
plaintext
* * * * * echo "每分钟测试" >> /home/test.log
2、每小时执行一次
plaintext
0 * * * * /home/backup.sh
3、每天凌晨2点执行备份
plaintext
0 2 * * * /home/backup.sh
4、每周日凌晨3点清理日志
plaintext
0 3 * * 0 > /var/log/messages
5、每隔10分钟执行一次
plaintext
*/10 * * * * /home/run.sh
五、生产环境常用实战场景
场景1:定时自动清理日志(最常用)
plaintext
0 1 * * * find /home/logs -name "*.log" -mtime +7 -delete
含义:每天凌晨1点,删除7天前所有日志文件
场景2:定时数据库备份
plaintext
0 2 * * * /usr/bin/mysqldump -uroot -p123456 db > /home/dbback.sql
场景3:定时重启Nginx
plaintext
0 4 * * * systemctl restart nginx
六、Crontab 九大避坑指南(新手必看)
1. 所有命令必须写绝对路径(crontab环境变量极少)
2. 脚本必须加执行权限 chmod +x
3. 时间写错是90%报错根源
4. 定时任务务必重定向日志,否则邮件报错堆积
5. 不要用rm -rf 写定时任务,极易误删系统文件
6. 周和日不要同时混用,容易时间冲突
7. 修改完一定要 crontab -l 核对
8. 系统重启后定时任务默认保留
9. 测试任务优先用每分钟测试,调试成功再改周期
七、今日实操作业(必敲)
bash
# 1. 查看系统现有定时任务
crontab -l
# 2. 编辑定时任务
crontab -e
# 3. 添加一条每分钟写入日志的测试任务
* * * * * echo "Linux Day9 定时任务测试" >> /home/cron_test.log
# 4. 等待一分钟查看效果
tail -f /home/cron_test.log
# 5. 清空定时任务(测试完成)
crontab -r
八、今日知识点总结
1. /var/log 是系统所有日志核心目录,排查故障首选
2. 正在运行的日志不可以rm删除,必须用 > 清空
3. Crontab 是Linux自动化核心,语法:分 时 日 月 周
4. 生产最常用:每日备份、定时清理日志、定时重启服务
5. 定时任务必须使用绝对路径,是新手最大坑点
6. 学会自动化任务,彻底摆脱重复手动运维操作
✅ 至此,你已经掌握 Linux日常运维90%的核心能力!