首页 » Web前端 » phpexeccrontab技巧_Linux之crontab敕令

phpexeccrontab技巧_Linux之crontab敕令

访客 2024-11-29 0

扫一扫用手机浏览

文章目录 [+]

> systemctl start/stop/restart/status cron命令格式

crontab [-u user] filecrontab [-u user] { -e | -l | -r }

命令参数-u user:用来设定某个用户的crontab做事;file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
如果在命令行中没有指定这个文件,crontab命令将接管标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。
如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
crontab 的文件格式

phpexeccrontab技巧_Linux之crontab敕令

字段

phpexeccrontab技巧_Linux之crontab敕令
(图片来自网络侵删)

描述

许可的值

分钟

一小时的第几分

0-59

小时

一天的第几小时

0-23

日期

一个月的的第几天

1-31

月份

一年的第几个月

1-12

周几

一周的第几天

0-6

命令

命令

可以被实行的任何命令

常用方法

创建一个新的 crontab 文件,向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。
cron进程根据它来确定利用哪个编辑器编辑crontab文件。
99%的UNIX和LINUX用户都利用vi,如果你也是这样,那么你就编辑$HOME目录下的. profile文件,在个中加入这样一行

EDITOR=vi; export EDITOR

然后保存并退出。
不妨创建一个名为 cron的文件,个中是用户名,例如, davecron。
在该文件中加入如下的内容。

# (put your own initials here)echo the date to the console every# 15minutes between 6pm and 6am0,15,30,45 18-06 /bin/echo 'date' > /dev/console

保存并退出。
把稳前面5个域用空格分隔。

在上面的例子中,系统将每隔1 5分钟向掌握台输出一次当前韶光。
如果系统崩溃或挂起,从末了所显示的韶光就可以一眼看出系统是什么韶光停滞事情的。
在有些系统中,用tty1来表示掌握台,可以根据实际情形对上面的例子进行相应的修正。
为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数 $ crontab davecron

现在该文件已经提交给cron进程,它将每隔1 5分钟运行一次。
同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名便是用户名(即dave)。

利用-l参数列出crontab文件::

> crontab -l0,15,30,45 18-06 /bin/echo `date` > dev/tty1

可以利用这种方法在$HOME目录中对crontab文件做一备份::

$ crontab -l > $HOME/mycron

这样,一旦欠妥心误删了crontab文件,可以用上一节所讲述的方法迅速规复。

如果希望添加、删除或编辑crontab文件中的条款,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件crontab -e

可以像利用vi编辑其他任何文件那样修正crontab文件并退出。
如果修正了某些条款或添加了新的条款,那么在保存该文件时, cron会对其进行必要的完全性检讨。
如果个中的某个域涌现了超出许可范围的值,它会提示你。
我们在编辑crontab文件时,没准会加入新的条款。
例如,加入下面的一条:

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month30 3 1,7,14,21,26 /bin/find -name 'core' -exec rm {} \;

最好在crontab文件的每一个条款之上加入一条注释,这样就可以知道它的功能、运行韶光,更为主要的是,知道这是哪位用户的定时作业。

删除crontab文件crontab -r

每1分钟实行一次cmd

cmd每小时的第3和第15分钟实行

3,15 cmd在上午8点到11点的第3和第15分钟实行

3,15 8-11 cmd每隔两天的上午8点到11点的第3和第15分钟实行

3,15 8-11 /2 cmd每周一上午8点到11点的第3和第15分钟实行

3,15 8-11 1 cmd每晚的21:30重启smb

30 21 /etc/init.d/smb restart每月1、10、22日的4 : 45重启smb

45 4 1,10,22 /etc/init.d/smb restart每周六、周日的1 : 10重启smb

10 1 6,0 /etc/init.d/smb restart每天18 : 00至23 : 00之间每隔30分钟重启smb

0,30 18-23 /etc/init.d/smb restart每星期六的晚上11 : 00 pm重启smb

0 23 6 /etc/init.d/smb restart每一小时重启smb

0 /1 /etc/init.d/smb restart晚上11点到早上7点之间,每隔一小时重启smb

0 23-7 /etc/init.d/smb restart利用把稳事变把稳环境变量问题

有时我们创建了一个crontab,但是这个任务却无法自动实行,而手动实行这个任务却没有问题,这种情形一样平常是由于在crontab文件中没有配置环境变量引起的。

在crontab文件中定义多个调度任务时,须要特殊注环境变量的设置,由于我们手动实行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动实行任务调度时,是不会加载任何环境变量的,因此,就须要在crontab文件中指界说务运行所需的所有环境变量,这样,系统实行任务调度时就没有问题了。

不要假定cron知道所须要的分外环境,它实在并不知道。
以是你要担保在shelll脚本中供应所有必要的路径和环境变量,除了一些自动设置的全局变量。
以是把稳如下3点:

脚本中涉及文件路径时写全局路径;脚本实行要用到java或其他环境变量时,通过source命令引入环境变量,如::

cat start_cbp.sh#!/bin/shsource /etc/profileexport RUN_CONF=/home/rumenz/usr/local/temp/bin/run.sh -c mev &当手动实行脚本OK,但是crontab去世活不实行时,很可能是环境变量惹的祸,可考试测验在crontab中直接引入环境变量办理问题。
如::

0 /etc/profile;/bin/sh /var/www/java/bin/restart_audit.sh把稳清理系统用户的邮件日志

每条任务调度实行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常主要。
例如,可以在crontab文件中设置如下形式,忽略日志输出::

0 /3 /usr/local/bin/apachectl restart >/dev/null 2>&1

/dev/null 2>&1表示先将标准输出重定向到/dev/null,然后将标准缺点重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准缺点也会重定向到/dev/null,这样日志输出问题就办理了。

系统级任务调度与用户级任务调度

系统级任务调度紧张完成系统的一些掩护操作,用户级任务调度紧张完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却弗成,root用户的任务调度操作可以通过crontab –uroot –e来设置,也可以将调度任务直接写入/etc/crontab文件,须要把稳的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,纵然在root用户下创建一个定时重启系统的任务也是无效的。

标签:

相关文章

珠联璧合与SEO互联网时代的营销双璧

在互联网高速发展的今天,企业对于网络营销的需求日益增长。而在众多的网络营销手段中,珠联璧合与SEO(搜索引擎优化)无疑是最为人们关...

Web前端 2025-04-08 阅读0 评论0

详细介绍仿站SEO步骤,关键词布局的艺术

网站数量激增,如何在众多网站中脱颖而出,吸引更多的流量,成为了网站运营者关注的焦点。SEO(搜索引擎优化)作为提高网站排名、增加流...

Web前端 2025-04-08 阅读1 评论0