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

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

首页>文章>所有文章>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-230表示凌晨,23表示晚上11点
日期1-31需结合月份判断合法性(如2月无30日)
月份1-12 或 Jan-Dec支持英文缩写(不区分大小写)
星期0-7 或 Sun-Sat0和7均表示周日,支持英文缩写
执行用户执行命令的用户系统存在的用户(如root、www)仅系统级crontab包含该字段
命令需执行的命令或脚本合法的系统命令或可执行脚本路径建议使用绝对路径,避免环境变量问题

特殊字符的使用

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

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

结语

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

相关页面



评论

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