FreeBSD 下用户如何使用 Cron 执行定时任务

类别: 操作系统 & 服务器 阅读量:36

首页 > 文章 > 所有文章 > FreeBSD 下用户如何使用 Cron 执行定时任务

在FreeBSD系统中,同 Linux 系统中一样可以使用 Cron 执行定时任务。

Cron 系统服务管理

在 FreeBSD 中可以通过 rc 系统管理 Cron 服务,可以管理服务的启用、启动、停止、重启及查看状态。

查看 Cron 服务的运行状态

使用以下命令查看 Cron 服务是否正在运行:

service cron status

根据输出信息判断服务是否运行。

配置 Cron 开机自启动

FreeBSD默认已启用Cron服务,,无需手动配置。

当然你可以编辑/etc/rc.conf文件,添加启动项:

echo 'cron_enable="YES"' >> /etc/rc.conf

启动、停止与重启Cron服务

  • 启动服务:service cron start
  • 停止服务:service cron stop
  • 重启服务(修改配置后生效):service cron restart
  • 重新加载配置(不中断服务):service cron reload

Cron 的配置类型

FreeBSD 中的 Cron 任务分为“系统级”和“用户级”,二者在配置路径、权限要求上都存在一定的区别。

系统级Cron

主要用于执行系统级的定时任务(如系统更新、全局日志清理等)。该 cron 任务比用户级任务多了一个“用户”字段,可以配置执行任务的用户,也是十分方便,不过需要修改系统配置文件。推荐少用。

配置的字段说明

#分 时    日    月   周    执行用户     命令

配置方式

使用root权限编辑/etc/crontab,即可配置系统级cron:

sudo vi /etc/crontab

添加类似如下的内容:

# 环境变量配置
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
# 字段说明:分 时 日 月 周 执行用户 命令
# 每小时执行一次/usr/libexec/atrun命令,示例
0       *       *       *       *       root    /usr/libexec/atrun

使配置生效

执行如下命令重新加载配置,让配置生效:

service cron reload

用户级 Cron

主要用户执行用户自己的 cron 定时任务,无需特殊的权限。

注意:只有 root 用户才有自己的用户级 Cron

文件目录为:`/var/cron/tabs

文件名称:同用户名一致

示例:用户 root 的配置文件为 /var/cron/tabs/root

配置的字段说明

#分 时    日    月   周     命令

编辑方式

  1. 使用 crontab -e 命令编辑,该命令会把此次添加的定时任务,追加到用户配置文件的后面。
  2. 直接编辑配置文件

Cron 字段使用解释

各字段含义与取值范围

如下给出个字段的含义及其对应的取值范围:

字段 含义 取值范围 特殊说明
分钟 0-59 表示每小时的第N分钟
小时 0-23 0表示凌晨,23表示晚上11点
日期 1-31 需结合月份判断合法性(如2月无30日)
月份 1-12 或 Jan-Dec 支持英文缩写(不区分大小写)
星期 0-7 或 Sun-Sat 0和7均表示周日,支持英文缩写
执行用户 执行命令的用户 系统存在的用户(如root、www) 仅系统级crontab包含该字段
命令 需执行的命令或脚本 合法的系统命令或可执行脚本路径 建议使用绝对路径,避免环境变量问题

特殊字符的使用

Cron 任务中支持使用如下几种特殊字符:

特殊字符 含义 示例
* 匹配该字段的所有取值 “分”字段为*,表示每分钟执行
/ 表示“每隔N单位” “时”字段为*/2,表示每2小时执行
- 表示连续的取值范围 “分”字段为10-20,表示10到20分钟每分钟执行
, 表示多个不连续的取值 “周”字段为1,3,5,表示周一、三、五执行
? 仅用于“日”和“周”字段,避免冲突 “日”字段为10,“周”字段为?,表示每月10日执行(忽略星期)

结语

在本文中介绍了如何在 FreeBSD 中如何使用 Cron 添加执行定时任务,介绍了管理服务的启用、启动、停止、重启及查看状态,系统级和用户级cron,及其具体的使用方法。

相关页面



评论

暂无评论,快来抢沙发吧~