crond和crontab 自我理解

    crond是linux系统中用来定期执行命令或指令程序的一种服务或软件。                               

    crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

    其中crond的基本常用命令含义如下:

        crontab  -e  编辑某个用户的crond服务(编辑任务计划)  crontab  -e  = vim  /var/spool/cron/root(用户名)

        crontab  -l   列出某个用户的crond的详细内容(已经做好的任务计划)

        crontab  -u  设定编辑某个用户的crond服务(设定编辑某个用户的的任务计划) 格式: crontab -u 用户 -e

        crontab  -r   删除某个用户下的crond服务(删除做好的任务计划)

    linux系统任务中定时任务调度工作可以分为两种情况:

        1、linux系统自身定期执行的任务工作,系统周期自行执行的任务工作。如轮询系统日志、备份系统数据、清理系统缓存等,这些任务无需我们认为干预。

        2、用户执行的任务工作

    定时软件种类:

        1、at :适合执行一次就结束的调度任务,对应的是atd服务。

        2、crond : 适合执行周期性的任务计划

        3、anacron :这个命令主要用于非7*24小时开机的服务器准备的,以天为周期或者以开机为周期,将所有停机之间未做的任务计划全部都做一遍。

    crontab -e 编辑模式详解:

        *                        *                            *                            *                             *                                需要执行的命令或脚本

    分(00—59)     时(00—23)        日(01—31)        月(01—12)        周(0—6(0=7))

    (以上五个星代表五个时间字段,其含义对应下方解释)

        例:每周六,周日上午九点运行shell脚本a.sh

            00    09    *    *    6,0        /bin/sh a.sh

    针对crontab -e 编辑中的注意事项:

        1、定时任务最好加上注释,这样方便其他人知道这条计划任务的作用,方便做任务交接。

                例: 创建时间        创建人        创建目的

        2、定时任务最好使用脚本进行执行

        3、在每一个定时任务后最好加   >/dev/null  2>&1 (因为短时间会没影响,长时间会占用inode过多,造成其他文件无处可放)

        4、执行shell脚本任务前一定要加 /bin/sh


        5、生产任务程序不要随意打印输出信息

        6、系统环境变量问题,,,系统默认环境变量定时任务有时会取不到,造成计划任务失败(命令行执行是可以成功的,脚本执行就是失败)

    针对计划任务建议:

                

绘图.gif


猜你喜欢

转载自blog.51cto.com/13214087/2116038
今日推荐