在 Linux/Unix 系统中使用 crontab
设置每日任务非常简单。以下是详细步骤和示例:
crontab -e
如果是第一次使用,会提示选择默认编辑器(如 nano
或 vim
)。
# 格式说明:
# 分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-7, 0和7均为周日) 命令
每天午夜 00:00 执行任务:
0 0 * * * /path/to/your/script.sh
每天上午 8:30 执行任务:
30 8 * * * /path/to/command arg1 arg2
每天下午 3:15 执行任务(输出日志到文件):
15 15 * * * /path/to/script.sh >> /var/log/daily_task.log 2>&1
@daily
:等同于 0 0 * * *
(每天午夜执行)bash
@daily /path/to/script.sh
查看当前用户的 crontab:
crontab -l
删除当前用户的 crontab:
crontab -r
为其他用户设置(需 root 权限):
sudo crontab -u username -e
/home/user/script.sh
而非 ~/script.sh
)。bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
0 0 * * * /path/to/script.sh
bash
chmod +x /path/to/script.sh
bash
0 0 * * * /path/to/script.sh > /tmp/cron.log 2>&1
0 2 * * * /usr/bin/mysqldump -u root -p'password' dbname > /backups/dbname_$(date +\%F).sql
(注意:%
在 crontab 中需转义为 \%
)
通过以上步骤,你可以轻松设置每日定时任务。如果有更复杂的需求(如每周或每月),只需调整时间字段即可。