菜单

Administrator
发布于 2026-10-10 / 1 阅读
0
0

Linux 学习笔记 L13:定时任务与日志

cron 让脚本每天凌晨自己跑,journalctl 让日志有处查。

cron 表达式详解

crontab -e
分 时 日 月 周 命令
*  *  *  *  *  command

字段

范围

分

0-59

时

0-23

日

1-31

月

1-12

周

0-7(0和7都是周日)

0 3 * * * /backup/backup.sh        # 每天凌晨 3 点
*/10 * * * * /opt/check.sh        # 每 10 分钟
0 0 1 * * /opt/monthly.sh         # 每月 1 号午夜
30 8 * * 1 /opt/weekly.sh         # 每周一 8:30

crontab 常见坑

crontab -l    # 看当前用户的任务
crontab -r    # 删除所有任务(危险!)
  1. cron 环境变量极简,脚本里写绝对路径

  2. % 在 cron 里是换行,要用转义 \%

  3. 输出没地方去会发邮件,加 >/dev/null 2>&1 丢掉或重定向到日志

  4. 改完用 crontab -l 确认

0 3 * * * /backup/backup.sh >> /var/log/backup.log 2>&1

journalctl:查系统日志

journalctl -u nginx              # 看 nginx 服务的日志
journalctl -u nginx -f           # 实时跟(像 tail -f)
journalctl --since "1 hour ago"  # 最近一小时
journalctl -p err                # 只看错误级别
journalctl --disk-usage          # 日志占了多少磁盘

logrotate:日志轮转

日志不切会撑爆磁盘。/etc/logrotate.d/ 里配:

/var/log/nginx/*.log {
  daily
  rotate 7
  compress
  missingok
}

每天切一次,留 7 份,压缩旧的。

实战:每天凌晨备份

# 1. 确认脚本可执行
chmod +x /backup/backup.sh
# 2. 加 cron
crontab -e
# 加一行:
0 3 * * * /backup/backup.sh >> /var/log/backup.log 2>&1
# 3. 第二天查日志确认跑了
grep "备份完成" /var/log/backup.log

小结

命令

作用

crontab -e/l

编辑/查看定时任务

journalctl -u

看服务日志

journalctl -f

实时跟踪

logrotate

日志轮转

下一篇 L14:搭建 Web 服务——nginx 虚拟主机实战,从外网访问。


评论