加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 23:23:01 所属栏目:Linux 来源:网络整理
导读:好的, 我正在考虑创建一个取决于cronjob的webscript ..我想知道,它会不会使任何服务器损坏crontabs的数量? 假设我每天要完成50个crontabs,会不会对服务器造成伤害? 如果不是,那么在linux服务器@ 512MB内存中添加的最大crontabs数量是多少 解决方法 当您创
好的,
我正在考虑创建一个取决于cronjob的webscript ..我想知道,它会不会使任何服务器损坏crontabs的数量?

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

解决方法

当您创建新作业时,cron守护程序调用函数job_add(job.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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读