DirectAdmin控制面板计划任务(Cronjob)详细教程

2014年1月5日dbonly

DirectAdmin面板计划任务其实就是Unix中的crontab,唯一的区别就是时间部分在DA中被更直观的表现出来,其本质是相同的。

既然这样,首先看看crontab的格式,借用维基百科上的这个表可以相当直观的表现:

计划任务文件格式说明

# ——分钟 (0 – 59)
# | ——小时 (0 – 23)
# | | ——日 (1 – 31)
# | | | ——月 (1 – 12)
# | | | | ——星期 (0 – 7)(星期日=0或7)
# | | | | |
# * * * * * 被执行的命令

说明

  • 一般情况下,各时间之间是且的关系,但日期和星期之间是或的关系。
  • 在“星期域”(第五个域),0和7都被视为星期日。

Cronjob应用实例

命令:0 */2 * * * /sbin/service httpd restart
解释:每两个小时重启一次apache

命令:50 7 * * * /sbin/service sshd start
解释:每天7:50开启ssh服务

命令:50 22 * * * /sbin/service sshd stop
解释:每天22:50关闭ssh服务

命令:0 0 1,15 * * fsck /home
解释:每月1号和15号检查/home 磁盘

命令:1 * * * * /home/bruce/backup
解释:每小时的第1分钟执行 /home/bruce/backup 这个文件

命令:00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} /
解释:每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件

命令:30 6 */10 * * ls
解释:每月的1、11、21、31日是的6:30执行一次ls命令

命令:0 7 * * * /bin/ls
解释:每天早上7点执行一次 /bin/ls

命令:0 6-12/3 * 12 * /usr/bin/backup
解释:在 12 月内,每天的早上6点到12点中,每隔3个小时执行一次 /usr/bin/backup

命令:0 17 * * 1-5 mail -s “hi” alex@domain.name < /tmp/maildata
解释:周一到周五每天下午5:00,寄一封信给 alex@domain.name

命令:20 0-23/2 * * * echo “haha”
解释:每月每天的午夜0点20分、2点20分、4点20 分……,执行 echo “haha”

时间部分大致就是这样,命令部分根据不同的需要填写不同命令。

当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。因为shell命令的结果可以通过 ‘>’ 的形式来定义输出,/dev/null 代表空设备文件,> 代表重定向到哪里。1 表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于”1>/dev/null”,2 表示stderr标准错误,& 表示等同于的意思,2>&1,表示2的输出重定向等同于1。

那么重定向输出语句的含义:

  • 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
  • 2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

DA的计划任务中常用的的命令

1、运行指定的php文件

/usr/local/bin/php /home/demo_user/domains/domain.com/public_html/script.php

2、访问指定网址

/usr/local/bin/curl –silent http://www.domain.com/cron.php > /dev/null

后记

本文来自 在北极吃冰条 的博客,原文链接:DirectAdmin(DA)面板计划任务(cronjob)详细教程

DA是我经常使用的Linux主机控制面板,因此,在Linux上执行计划任务就成了一项常规任务。在搜索了许多资料后,发现这篇文章最有价值,因此转载过来,以作备用。

留言

电子邮件地址不会被公开。 必填项已用*标注

上一篇 下一篇