crond
是 Linux 中的一个守护进程,用于周期性地执行任务。它根据用户定义的计划任务表(通常是 crontab
文件)来调度和执行任务。以下是关于 crond
的详细解释和示例。
crond 的基本用法
启动和停止 crond 服务:
启动 crond 服务:
sudo systemctl start crond
停止 crond 服务:
sudo systemctl stop crond
重启 crond 服务:
sudo systemctl restart crond
查看 crond 服务状态:
sudo systemctl status crond
编辑 crontab 文件:
编辑当前用户的 crontab 文件:
crontab -e
列出当前用户的 crontab 任务:
crontab -l
删除当前用户的 crontab 任务:
crontab -r
crontab 文件格式
crontab 文件的格式如下:
分 时 日 月 周 命令
* * * * * command to be executed
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 7) (Sunday=0 or 7)
| | | +------- 月份 (1 - 12)
| | +--------- 每月的哪一天 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
crontab 示例
每分钟执行一次命令:
* * * * * /path/to/command
每天凌晨 2 点执行备份脚本:
0 2 * * * /path/to/backup.sh
每周一上午 5 点执行日志清理:
0 5 * * 1 /path/to/cleanup.sh
每月 1 号凌晨 3 点执行系统更新:
0 3 1 * * /path/to/update.sh
每隔 10 分钟执行一次脚本:
*/10 * * * * /path/to/script.sh
环境变量
crontab 中可以设置环境变量,例如:
MAILTO="user@example.com"
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
使用日志记录
crond 的日志通常记录在 /var/log/cron
文件中。可以通过查看该文件来排查和调试 crond 的问题:
sudo tail -f /var/log/cron
示例
比如一个备份脚本 backup.sh
,需要每天凌晨 1 点执行,并且希望将输出结果通过邮件发送给你。首先编辑 crontab 文件:
crontab -e
然后添加以下内容:
MAILTO="your-email@example.com"
0 1 * * * /path/to/backup.sh
这个配置会在每天凌晨 1 点执行 backup.sh
脚本,并将输出结果发送到 your-email@example.com
。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。