插件窝 干货文章 linux常用命令之计划任务

linux常用命令之计划任务

crontab 任务 command 执行 838    来源:    2025-05-11

Linux计划任务常用命令

计划任务是Linux系统中非常重要的功能,允许用户在特定时间自动执行命令或脚本。以下是Linux中常用的计划任务相关命令和配置方法。

1. crontab命令

crontab是管理用户计划任务的主要工具:

# 编辑当前用户的crontab文件
crontab -e

# 列出当前用户的crontab内容
crontab -l

# 删除当前用户的crontab内容
crontab -r

# 指定用户操作(需要root权限)
crontab -u username -e
crontab -u username -l
crontab -u username -r

2. crontab文件格式

crontab文件每行代表一个任务,格式如下:

* * * * * command_to_execute
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └── 星期几 (0 - 6) (0表示星期日)
│ │ │ └──── 月份 (1 - 12)
│ │ └────── 日 (1 - 31)
│ └──────── 小时 (0 - 23)
└────────── 分钟 (0 - 59)

3. 常用时间表达式示例

# 每分钟执行一次
* * * * * command

# 每小时的第5分钟执行
5 * * * * command

# 每天凌晨2点执行
0 2 * * * command

# 每周一上午8点执行
0 8 * * 1 command

# 每月1日凌晨3点执行
0 3 1 * * command

# 每5分钟执行一次
*/5 * * * * command

# 每周一到周五上午9点到下午5点每小时执行
0 9-17 * * 1-5 command

4. 系统级crontab

系统级的crontab文件位于: - /etc/crontab - 系统主crontab文件 - /etc/cron.d/ - 存放额外crontab文件的目录 - /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ - 按周期执行的脚本目录

5. at命令(一次性任务)

# 创建一个一次性任务
at now + 5 minutes
at 15:30 tomorrow
at 10:00 2023-12-25

# 列出待执行的at任务
atq

# 删除at任务
atrm [job_number]

6. 日志查看

# 查看cron日志(取决于系统配置)
tail -f /var/log/cron
journalctl -u cron
grep CRON /var/log/syslog

7. 环境变量问题

cron任务执行时环境变量可能与用户shell不同,建议: - 在脚本中设置完整路径 - 或者在crontab中设置必要的环境变量

# 在crontab中设置环境变量示例
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

8. 实用技巧

# 重定向输出到日志文件
* * * * * /path/to/command >> /var/log/mylog.log 2>&1

# 使用MAILTO接收执行结果
MAILTO="user@example.com"
* * * * * /path/to/command

# 测试cron任务
* * * * * /path/to/command && echo "Command succeeded at $(date)" >> /tmp/cron_test.log

掌握这些命令和技巧可以帮助您有效地管理和调试Linux系统中的计划任务。