欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    crontab用法详解实例.docx

    • 资源ID:7907063       资源大小:37.11KB        全文页数:32页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    crontab用法详解实例.docx

    1、crontab用法详解实例Linux crontab日志讲解crontab是Linux下最常用的计划任务服务。本文跟大家分享一下有关linux crontab日志存放的一些心得,希望本文能教会你更多东西。默认情况下,crontab中执行的日志写在/var/log下,如:#ls /var/log/cron*/var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4如果日志有问题,可以参考以下做法:为crontab增加日志crontab的日志比较简单,当crond执行任务失败时会给用户发一封邮件。恰巧在

    2、我们的一台服务器上发现一个任务没有正常执行,而且crond发邮件也失败了。通过看mail的日志,看到是磁盘空间不足造成的。此外,同事帮我为crontab中的任务增加自己的日志,这样出错后,比较容易看到原因。0 6 * * * $HOME/for_crontab/createTomorrowTables $HOME/for_crontab/mylog.log 2&1把错误输出和标准输出都输出到mylog.log中。注意:不要写成0 6 * * * $HOME/for_crontab/createTomorrowTables 2&1 $HOME/for_crontab/mylog.log否则就输出

    3、到标准输出了Linux的自动执行程序cron和crontab假如你有一些任务要定期执行,比如清理磁盘、删除过期文件、发送邮件和提醒,这个时候可以用cron来帮你。首先是安装,大多数发行版都预装了,Gentoo下的cron有许多种实现,可以用emerge -search cron来查看,这里用vixie-cron,因为功能比较完整,命令语法也比较通用。# emerge vixie-cron之后要启动cron服务:# /etc/init.d/vixie-cron start别忘了把cron加入到启动脚本中:# rc-update add vixie-cron default完成安装。系统cron设

    4、定:/etc/crontab通过 /etc/crontab 文件,可以设定系统定期执行的任务,当然,要想编辑这个文件,得有root权限。让我们打开 /etc/crontab,看看cron的语法:1.# for vixie cron2.#3.# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $4.#5.#6.7.# Global variables8.SHELL=/bin/bash9.PATH=/sbin:/b

    5、in:/usr/sbin:/usr/bin10.MAILTO=root11.HOME=/12.13.# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly14.0 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly15.1 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily16.15 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly1

    6、7.30 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly18.*/10 * * * * root test -x /usr/sbin/run-crons & /usr/sbin/run-crons 以上是一个默认的/etc/crontab文件,711行设定了执行任务时特定环境变量的值,MAILTO=root 指出出错信息发给root。真正描述执行的任务在1418行,每行代表了一个定期执行的任务,从前到后,分为3部分:第一部分,一堆奇怪的数字和星号,这部分描述任务的执行周期和时间,后面我们将详细解释。第二部分,上面的文件全部是roo

    7、t,描述了执行任务时的用户。第三部分,为需要执行的完整命令。第一部分分为5个小部分,没部分可以是数字或者星号,分别代表了分钟、小时、日期、月份、周,让我们来看一个例子:0 7 * * * root mpg123 /wakeup.mp3 分 时 日 月 周星号,即代表不限制,上面的例子就是:每天的7点0分,都将执行mpg123 /wakeup.mp3,放首歌,把自己从睡梦中叫醒以下是各部分的取之范围:分钟059小时023日期131月份112周06其中周的范围06,0代表星期天,16代表周一周六。让我们来看更多的例子:0 4 * * 0 root emerge -sync & emerge -uD

    8、 world #每周日凌晨4点,更新系统0 2 1 * * root rm -f /tmp/* #每月1号凌晨2点,清理/tmp下的文件0 8 6 5 * root mail robin /dev/null 2&1 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件; /dev/null 2&1 表示把所有标准输出发送到 /dev/null(linux的回收站),把标准错误输出(2)发送到和标准输出(1)同样的地方(即 /dev/null)。运行这行命令将不会产生任何输出。举例说明如下:30 15 13 6 1 * root tar czf /usr/lo

    9、cal/backups/daily/etc.tar.gz /etc /dev/null 2&1CentOS/FreeBSD下用crontab定时执行PHP程序的正确方法如下:在linux下,可以使用crontab+php的方法:1、使用crontab e编辑定时任务内容为:xx:xx:xx 执行一个test.php文件2、php文件必须在文件头一行,加上解释器路径(就象perl做的那样)#!/usr/local/bin/phpPHP的执行需要Apache的支持,shell脚本的执行需要Linux的支持,而Linux支持定时运行某个程序的功能。-将PHP作为Shell脚本语言使用(转载)英文原著

    10、:Darrell Brogdon,发表于 我比较懒哈,以前的方法就是直接在/etc/crontab里直接带上php路径,如*/5 * * * * root php test.php也能正确执行;有兴趣的朋友可写一个hello程序测试,将其所有输出到一个文件即可测试,我做了大量测试证明其可执行性;当然你的php要保证其正确性,建议你的每一个crontab计划任务先在shell中先正确运行一次后再写进crontab里,这是保证成功的必要条件。crontab如何以秒为执行你的Linux计划任务呢,许多同事和同学都问过我这个问题。其实这个问题很简单,我以实例说明下:我以前的办公室是一台ubuntu服务

    11、器,连接ADSL作NAT带办公室的机器上网,很不幸的发现,这样ADSL爱掉线,一掉线网关gateway就没了,所以写了一个shell脚本#!/bin/bashwhile :doif route | tail -l | grep 0.0.0.0then&/dev/nullelseadsl-stopadsl-startfisleep 10done将程序放进后台执行。执行脚本方法 nuhup sh route.sh &,注意前面要用上nohup,这样避免root用户logout时此脚本也退出生效的问题。程序的运行间隔时间是10s,很多同学不明解为什么要加一个sleep 10;大家可以拿虚拟机测试下,

    12、如果没有这条sleep 10的语句,你的Linux服务器会运行大量此route.sh,很快耗光你的服务器资源,你的系统负载会很快上去,Nagios马上会叫起来的另一个就是监控负载均衡器Nginx的shell脚本,用于 Nginx+Keepalived负载均衡高可用环境:#!/bin/bash while : do nginxpid=ps -C nginx -no-header | wc -l if $nginxpid -eq 0 ;then /usr/local/nginx/sbin/nginx sleep 5 if $nginxpid -eq 0 ;then /etc/init.d/keep

    13、alived stop fi fi sleep 5 done 另外,这里附带说下crontab的一个妙用:我在配置一台服务器的iptables时,不小心设置了某一项错误参数,结果锁定了SSH会话,导致我们经理及另一系统管理员员连不上服务器,郁闷之余,看到此法特推荐给大家,极其有用,建议大家学习参考:可以配置一计划任务crontab,每5分钟运行一次,即*/5 * * * * root /bin/sh /root/firestop.shfirestop.sh内容为#/bin/bashservice iptables stop这样即使你的脚本存在错误设置(或丢失的)规则时,也不至于将你锁在计算机外

    14、而无法返回与计算机的连接,让你放心大胆的调试你的脚本。最后说明下Crontab任务的执行环境问题。尽管可以更改执行 cron 任务時使用的环境,但经常最好创建一個包装脚本,以在运行实际需要的命令前定义任何环境境变量(如PATH)。这样做的部分原因是出于安全考虑;向 crontab 作业开放的区域越多,越可能得到包含可疑內容的東西。另一个原因是,这样可确保即使更改了环境中的一个依赖关系,你的crontab作仍将执行。Crontab命令的语法crontab 命令的用途就是:提交、编辑、列出或除去 cron 作业。语法crontab -e UserName | -l UserName | -r Us

    15、erName | -v UserName | File 描述crontab 命令提交、编辑、列出或除去 cron 作业。一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的。要提交一个 cron 作业,指定 crontab 命令用 -e 标志。crontab 命令调用一个编辑会话,允许创建一个 crontab 文件。在这个文件中,为每个 cron 创建条目。每个条目必须是一种 cron 守护程序可接受的格式。要得到创建条目的信息,参阅 crontab 文件条目格式。当创建完条目和退出文件后,crontab 命令将它复制到 /var/spool/cron/cron

    16、tabs 目录,并把它放到一个文件中,此文件的名称是当前的用户名。如果以用户名命名的文件已存在于 crontabs 目录中,crontab 命令会覆盖它。同样的,可以通过指定文件参数创建 crontab 文件。如果此文件已经存在,格式必须是 cron 守护程序所需要的。如果文件不存在,crontab 命令就调用编辑器。如果 EDITOR 环境变量存在,此命令就调用它指定的编辑器。否则,crontab 命令调用 vi 编辑器。要列出 crontab 文件的内容,就指定 crontab 命令并采用 -l 标志。要除去存在的文件,采用 -r 标志。可选的 UserName 参数可被 crontab

    17、文件的所有者或者 root 用户来使用,为指定的用户编辑、列出、除去或验证 cron 作业的状态。如果 UserName 是无效的,就会产生错误消息并退出程序。如果可选的 UserName 参数没有被指定,这个 crontab 标志对于 root 用户和当前用户可用。安全性只有 root 用户和 crontab 文件的所有者可以在 -e、-l、-r 和 -v 标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。cron 守护程序这个 cron 守护程序运行的命令和 crontab 文件条目是相对应的。如果不重新定向 cron 作业的输出为标准输出或标准错误

    18、,cron 守护程序就会通过电子邮件告知您任何命令输出或错误。如果在 crontab 文件中指定了不正确的 cron 作业,这个 cron 守护程序不运行这个作业。cron 守护程序只在 cron 守护程序被初始化时检查 crontab 文件。当用 crontab 命令改变 crontab 文件时,指示变化的消息被发送到 cron 守护程序。这消除了在规则的调度间隔检查新的或改变的文件的开销。控制使用 crontab 命令/var/adm/cron/cron.allow 和 /var/adm/cron/cron.deny 文件控制哪一个用户可以使用 crontab 命令。root 用户可以创建

    19、、编辑或删除这些文件。这些文件中的条目是用户登录名,每行一个名称。如果登录标识和多个的登录名称相关联,这个 crontab 命令采用第一个在 /etc/passwd 文件中的登录名称,而不管当前实际使用哪一个登录名称。而且,要允许用户启动 cron 作业,应该使用 chuser 命令将 /etc/security/user 文件中的守护程序属性设置为 TRUE。以下关于 cron.allow 文件的一个示例:root nick dee sarah如果 cron.allow 文件存在,只有在文件中出现其登录名称的用户可以使用 crontab 命令。root 用户的登录名必须出现在 cron.al

    20、low 文件中,如果这个文件存在的话。系统管理员可以明确的停止一个用户,通过使用 crontab 命令,同时在 cron.deny 文件中列出用户的登录名。如果只有 cron.deny 文件存在,任一名称没有出现在这个文件中的用户可以使用 crontab 命令。如果以下一个条件成立,用户将不能使用 crontab 命令:cron.allow 文件和 cron.deny 文件不存在(只允许 root 用户)。 cron.allow 文件存在,但用户的登录名并不列在其中。 cron.deny 文件存在,并且用户的登录名列在其中。如果 cron.allow 和 cron.deny 文件都不存在,只有

    21、被 root 用户授权的人可以用 crontab 命令提交一个作业。crontab 文件条目格式一个 crontab 文件包含每个 cron 作业的条目。条目由换行字符分开。每个 crontab 文件条目包括 6 个字段,它们被空格或制表符以以下格式分开:分 时 日期 月 星期 command这些字段接收以下值:分 0 到 59时 0 到 23日期 1 到 31月 1 到 12星期 0 到 6 (星期日到星期六)command shell 命令必须为每个字段指定一个值。除了 command 字段,这些字段可以包含以下内容:指定范围内的一个数。要在 5 月运行一个命令,在 month 字段指定

    22、5 。 两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行 cron 作业,把 2-5 放到 weekday 字段中。 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在 day_of_month 字段中可指定 1,31。 *(星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。注: 任一字符前如有一个反斜杠符号(包括 %)会引起字符被字面上的处理。天的规范是由两个字段(月的天和星期的天)组成的。如果指定两者都为元素的一个列表,这两个字段均被包含在其中。例如,如下条目:0 0 1,15 * 1 command将在每个月的第一天和第十五天运行 com

    23、mand,还有每个星期一。要仅在一个字段中指定天,另一字段应包含 * 。指定命令这个 cron 守护程序运行命名于所选日期和时间的第六个字段中的字段。如果包含一个 % (百分号)在第六字段,cron 守护程序像命令调用一样处理所有的任务,并使所有的后续任务在标准输入上可用,除非转义百分号 (%)。空行和第一个非空字符是编号标记(#)将被忽略。如果命令含有反斜杠 () 的参数,反斜杠前应加另一个反斜杠。注:shell 只运行该命令字段的第一行。所有其他的行作为标准的输入对于命令可用。cron 守护程序从 HOME 目录中启动一个子 shell。如果调度一个命令运行,这时您尚未登录,并且希望在 .

    24、profile 文件中的命令运行,这个命令必须明确的读取您的 .profile 文件。cron 守护程序为每个 shell 提供了一个缺省的环境,定义了 HOME, LOGNAME, SHELL (=/usr/bin/sh) 和 PATH (=/usr/bin)。标志-e UserName 编辑用户的 crontab 文件的副本,或者,如果一个有效的 UserName 的 crontab 文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到 crontab 目录作为用户的 crontab 文件。-l UserName 列出用户的 crontab 文件。-r UserName 从 crontab 目录除去用户的 crontab 文件。-v UserName 列出用户 cron 作业的状态。安全性审计事件:如果审计子系统已经被正确的配置和启用,crontab 守护程序就会当每次执行命令时产生以下审计记录(或事件):事件 信息CRON_JobRemove 列出哪一个用户除去了 cron 作业和除去的时间。CRON_JobAdd 列出哪一个用户添加了 cron 作业和添加的时间。有关如何正确选择和分组审计事件以及如何配置审计事件数据收集的更详细信息,请参阅 安全性 中的 Setting up Auditing。退出状态该命令返回以下退出值:0 成功完成。0


    注意事项

    本文(crontab用法详解实例.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开