什么是cron job的服务器用法?

时间:2012-09-04 00:10:41

标签: linux cron debian crontab

好的, 我正在考虑创建一个依赖于cronjob的webscript ..我想知道,它会不会使服务器损坏crontabs的数量?

假设我每天要完成50个crontabs,它会不会对服务器造成伤害? 如果不是,那么在linux服务器@ 512MB内存中添加的最大crontabs数量

1 个答案:

答案 0 :(得分:1)

创建新作业时cron守护程序调用函数job_addjob.c),此函数将内存分配给作业并将其添加到作业列表的尾部。 作业是在堆上分配的,所以理论上你只受机器上安装的RAM的限制。

CRON代码中的一些注释:

工作结构:

typedef struct _job {
    struct _job     *next;
    entry           *e;
    user            *u;
} job;

每个用户crontab条目由以下内容定义:

typedef struct _entry {
        struct _entry   *next;
        uid_t           uid;
        gid_t           gid;
        char            **envp;
        char            *cmd;
        bitstr_t        bit_decl(minute, MINUTE_COUNT);
        bitstr_t        bit_decl(hour,   HOUR_COUNT);
        bitstr_t        bit_decl(dom,    DOM_COUNT);
        bitstr_t        bit_decl(month,  MONTH_COUNT);
        bitstr_t        bit_decl(dow,    DOW_COUNT);
        int             flags;
#define DOM_STAR        0x01
#define DOW_STAR        0x02
#define WHEN_REBOOT     0x04
} entry;

用户结构:

typedef struct _user {
        struct _user    *next, *prev;   /* links */
        char            *name;
        time_t          mtime;          /* last modtime of crontab */
        entry           *crontab;       /* this person's crontab */
} user;

你可以看到这个结构并没有消耗大量的内存。 如果您对cron的实施方式感到好奇,可以在此处查看代码:cron ubuntu source