Sun Java System Messaging Server 6.3 管理指南

4.6 安排自动任务时间

Messaging Server 提供了一般任务调度机制,该机制使用名为 imsched 的进程。它用于调度 Messaging Server 进程。可以通过设置 local.schedule.taskname configutil 参数来启用此功能。如果要修改计划,则必须使用命令 stop-msg schedstart-msg sched 重新启动调度程序,或者使用 refresh sched 刷新调度程序进程。

此参数需要一个命令和执行该命令的时间安排。格式如下:

configutil -o local.schedule.taskname -v "schedule"

taskname 是此命令/计划组合的唯一名称。

schedule 的格式如下:

minute hour day-of-month month-of-year day-of-week command args

command args 可以是任何 Messaging Server 命令及其参数。路径可以是相对于 msg-svr-base 的路径,也可以是绝对路径。有关相对路径的示例,请参见4.6.2 预定义的自动任务

minute hour day-of-month month-of-year day-of-week 是运行命令的计划。它采用 UNIX crontab 格式。

这些值以空格或 Tab 分隔符分隔,可以分别为 0-59、0-23、1-31、1-12 或 0-6(其中 0 代表星期天)。每个时间字段都可以为以下内容之一:一个星号(表示所有合法值)、一个以逗号分隔的值的列表或一个以连字符分隔的两个值表示的范围。请注意,可以同时使用几号和星期几来指定时间,如果这样指定,将需要同时满足两者。例如,如果设置 17 号和星期二,则仅在某月的 17 号是星期二时才会运行命令。请参见表 20–10

请注意,如果要修改调度程序,则必须使用命令 stop-msg schedstart-msg sched 重新启动调度程序,或者刷新调度程序进程:

refresh sched

要禁用调度的任务,请运行以下命令:


# configutil -o local.schedule.taskname.enable -v no 
#  refresh sched

4.6.1 调度程序示例

在 12:30am、8:30am 和 4:30pm 运行 imexpire


# configutil -o local.schedule.rm_messages -v “30 0,8,16 * * * /opt/SUNWmsgsr/sbin/imexpire” 

每 20 分钟显示一次 MTA 通道队列邮件计数器:


# configutil -o local.schedule.counters -v “0,20,40 * * * * /opt/SUNWmsgsr/sbin/ims
# imta qm counters > /tmp/temp.txt” 

从星期一到星期五的午夜 (12AM) 运行 imsbackup


# configutil -o local.schedule.msbackup -v “0 0 * * 1-5 /opt/SUNWmsgsr/sbin/imsbackup -f \
backupfile /primary”

4.6.2 预定义的自动任务

在安装时,Messaging Server 将创建、调度并启用一组预定义的自动任务。这些任务如下所示。

为消息存储设置并启用了以下自动任务:


local.schedule.expire = "0 23 * * * sbin/imexpire"
local.schedule.expire.enable = 1
local.schedule.snapshotverify = "0 0,4,8,12,16,20 * * * sbin/imdbverify -m"
local.schedule.snapshotverify.enable = 1

为 MTA 设置并启用了以下自动任务:


local.schedule.purge="0 0,4,8,12,16,20 * * * sbin/imsimta purge -num=5"
local.schedule.purge.enable = 1
local.schedule.return_job = "30 0 * * * lib/return_job"
local.schedule.return_job.enable = 1

为消息存储设置并启用了以下自动任务:


local.schedule.msprobe = "5,15,25,35,45,55 * * * * lib/msprobe"
local.schedule.msprobe.enable = 1