惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
MyScale Blog
MyScale Blog
Jina AI
Jina AI
B
Blog
Microsoft Security Blog
Microsoft Security Blog
T
Troy Hunt's Blog
博客园_首页
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
T
Tenable Blog
B
Blog RSS Feed
S
Securelist
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
罗磊的独立博客
AWS News Blog
AWS News Blog
V
V2EX
宝玉的分享
宝玉的分享
J
Java Code Geeks
小众软件
小众软件
Spread Privacy
Spread Privacy
腾讯CDC
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
V
Visual Studio Blog
The Hacker News
The Hacker News
C
CERT Recently Published Vulnerability Notes
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
C
Check Point Blog
Webroot Blog
Webroot Blog
D
DataBreaches.Net
Cloudbric
Cloudbric
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子 docker学习(2)-安装 docker学习(1)-基本概念 Github 使用 Self-hosted Runner 实现服务器自动化部署 github创建分支 + Pull Request 合并 Git Rebase vs Git Merge:深入理解与实战选择 Git 系统学习教程:从零到团队协作 AI学习笔记(2)-OpenClaw安装 windbg分析dmp文件 docker desktop 和 Vmware冲突的解决办法
《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化
xiashengwang · 2026-04-22 · via 博客园 - xiashengwang

2026-04-22 11:26  xiashengwang  阅读(16)  评论()    收藏  举报

第 14 篇:定时任务 – 用 crontab 自动化

学习目标

  • 理解 cron 服务的工作原理
  • 学会编辑用户的定时任务(crontab
  • 掌握 cron 时间表达式
  • 能够编写简单的备份脚本并定时执行

核心概念

cron 与 crontab

  • cron:Linux 的后台守护进程,每分钟检查一次预定义的计划任务。
  • crontab:每个用户的任务表文件。使用 crontab 命令管理。

crontab 命令

crontab -e          # 编辑当前用户的定时任务
crontab -l          # 列出所有任务
crontab -r          # 删除所有任务

时间表达式格式

分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7,0和7都代表周日) 命令

常用示例:

  • 0 2 * * * – 每天凌晨 2 点
  • */5 * * * * – 每 5 分钟
  • 0 9-17 * * 1-5 – 工作日的 9 点到 17 点之间的整点
  • 0 0 1 * * – 每月 1 号凌晨

动手实验

实验 1:创建一个每分钟记录时间的任务

crontab -e
# 添加一行:
* * * * * echo "$(date) - Hello from cron" >> ~/cron_test.log
# 保存退出
# 等待一两分钟,然后查看
cat ~/cron_test.log

实验 2:备份 /var/log 下的 messages 日志

# 创建备份脚本
mkdir ~/backup
cat > ~/backup/log_backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR=~/backup
DATE=$(date +\%Y\%m\%d_\%H\%M%S)
cp /var/log/messages $BACKUP_DIR/messages_$DATE
gzip $BACKUP_DIR/messages_$DATE
find $BACKUP_DIR -name "messages_*.gz" -mtime +7 -delete
EOF
chmod +x ~/backup/log_backup.sh

实验 3:添加 crontab 每天凌晨 3 点执行备份

crontab -e
# 添加:
0 3 * * * /home/你的用户名/backup/log_backup.sh
# 查看已添加的任务
crontab -l

常见错误

  • 脚本未执行:检查脚本是否有执行权限,路径使用绝对路径
  • 环境变量不同:cron 执行时环境变量很少,命令或脚本中应使用绝对路径
  • 日志查看:可将输出重定向到文件,如 >> /tmp/cron.log 2>&1

思考题

  1. 如何让 cron 任务在每周一和周四的下午 3:30 执行?
  • 30 15 * * 1,4
  1. 查看 cron 的执行日志(一般记录在 /var/log/cron),观察是否有错误。