好吧,我正在考虑创建一个依赖于 cronjob 的 webscript。
我想知道,它是否会对 crontabs 的数量造成任何服务器损坏?
假设我每天要完成 50 个 crontab,它会伤害服务器吗?如果不是,在 512MB 内存的 linux 服务器中添加的最大 crontab 数量是多少
当您创建新作业时,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。