生产环境下的服务器的Crontab写法(生产环境下服务器开防火墙么)

admin3年前云主机55

生产环境下的服务器的Crontab写法

虽然关于 Crontab 的介绍到处都是,详细读了一遍这个词条,收获还是有的。Crontab 这个名字来自 “chronos”,一个古希腊语, “时间”的意思。

常见陷阱

每个System Admin或者是普通的 Unix 用户,在第一次使用 Crontab 的时候都会遇到问题. 运行 Crontab 的常见错误包括如下几种:1) 出于测试目的新创建了一条 Cron JOB, 时间间隔必须超过两分钟,否则 JOB 将调度不到。如果必须忽略这两分钟的载入配置时间差,可以通过重新启动 Cron Daemon 做到。

2) 从 Crontab 中启动 X Window 程序需要注意的事项:所以要么在程序前初始化 “DISPLAY=:0.0″, 要么在应用程序后面追加参数 –display :0.0

3) 命令中的 % 必须做转义处理: \% .我个人的意见是不要在命令行里带这个参数,干脆写到脚本里,然后调度该脚本即可。

其实我倒是认为使用 Crontab 最常见的一个问题往往是因为环境变量不对。经常会看到论坛里有人问:为什么我的 Crontab 创建了不执行? 准备创建一条 Cron JOB 的时候,很多人都喜欢在命令行下运行一遍,因为这个时候环境变量是随着 Shell 自动带进来,在 Crontab 中则可能因为找不到正确的环境变量,JOB 就不能执行。这个小问题就像出天花,一次教训之后就都记得了。
必须使用的一则技巧

每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >>/dev/null 2>&1。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。附: Crontab 的格式说明如下:

* 逗号(’,') 指定列表值。如: “1,3,4,7,8″
* 中横线(’-') 指定范围值 如 “1-6″, 代表 “1,2,3,4,5,6″
* 星号 (’*') 代表所有可能的值

Linux(开源系统似乎都可以)下还有个 “/” 可以用. 在 Minute 字段上,*/15 表示每 15 分钟执行一次. 而这个特性在商业 Unix ,比如 AIX 上就没有.

## Use the hash sign to prefix a comment
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed推荐记忆为分 时 日 月 星期


cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序。例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行。

服务的启动和停止
cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。

查看、编辑和删除
cron把命令行保存在crontab(cron table)文件里,这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab(在 /var/spool/cron/ 下)。要查看当前用户的crontab,输入 crontab -l;要编辑crontab,输入 crontab -e;要删除crontab,输入 crontab -r。如当前是root身份,要查看/编辑/删除/某用户的crontab,只需在相应的命令后加上 -u USERNAME(如 crontab -e -u USERNAME)即可。crontab文件的默认编辑器是vi,可以输入 export VISUAL='editor' 更改默认编辑器。

cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件,还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置,而编辑 /etc/crontab 文件是对系统级任务的配置。

语法说明
以下是两个cron语句的例子(在 /etc/crontab 文件里)。前者用来晚间备份 /etc 目录,后者运行Analog程序处理服务器的统计信息。

12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1
52 5 * * * root /usr/local/src/analog-5.32-lh/analog >> /dev/null 2>&1
以下是cron语句中的字段与字段说明:

字段 说明
1 分钟(0-59)
2 小时(2-24)
3 日期(1-31)
4 月份(1-12;或英文缩写Jan、Feb等)
5 周几(0-6,0为周日;或单词缩写Sun、Mon等)
6 用户名(执行命令时以此用户的身份)
7 要执行的命令(路径)

《生产环境下的服务器的Crontab写法(生产环境下服务器开防火墙么)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

redirector插件

Redirector插件:提高浏览器使用效率的必备工具什么是Redirector插件?Redirector是一款浏览器扩展程序,用于管理和自动重定向HTTP请求。用户可以根据自己的需求配置规则,当浏览...

GPU革新:高效机器学习与卓越游戏性能并驾齐驱

一、GPU基本构成与发展历程1、GPU的定义与基本构成GPU(Graphics Processing Unit,图形处理器)是一种专门用来处理计算机图形的加速器,它是计算机的重要组成部分之一。GPU的...

印度服务器延迟高吗?怎么解决?

印度服务器延迟高吗?怎么解决?印度服务器的延迟可能会因多种因素而有所不同,例如网络连接速度、数据中心的位置、服务器负载等。以下是几种可以缓解印度服务器高延迟问题的方法:选择就近的数据中心:选择距离您位...

云虚拟主机和云主机有什么区别?30秒认识云计算的两种极端

正文:一、基本定义云计算是指通过网络连接,将计算机的处理能力、存储能力和软件等资源转化为服务,提供给用户使用的一种计算模式。云计算使用虚拟化技术,将多个物理计算系统组合为一个虚拟系统,提供服务给用户。...

NCBI的BLAST算法简介及应用领域探究

一、BLAST算法简介BLAST是一种用于对生物序列进行比对的算法,是近年来生物信息学领域的一大重要发明。BLAST根据“局部序列相似性”来寻找序列间的匹配点,是一种广泛使用的序列比对算法。作为生物数...

北斗通短信:收发实时,覆盖全国,助您畅享便捷通讯

一、功能强大北斗通短信拥有实时收发的功能,不仅能够保证信息的实时性,而且还可以迅速传达信息,方便使用者进行交流和联络。此外,它的覆盖范围广泛,不受天气干扰,可在全国任何地方实现高效通讯。北斗通短信除了...