15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*

简介: 15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*

这个“ crontab -e ”是针对使用者的 cron 来设计的,如果是“系统的例行性任务”时, 该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性工作调度呢?当然不需要,你只要编辑/etc/crontab 这个文件就可以。有一点需要特别注意,那就是 crontab -e 这个 crontab 其实是 /usr/bin/crontab 这个可执行文件,但是 /etc/crontab 可是一个“纯文本文件”,你可以root 的身份编辑一下这个文件。


基本上, cron 这个服务的最低侦测限制是“分钟”,所以“ cron 会每分钟去读取一次/etc/crontab 与 /var/spool/cron 里面的数据内容 ”,因此,只要你编辑完 /etc/crontab 这个文件,并且将他储存之后,那么 cron 的设置就自动的会来执行了!


在 Linux 下面的 crontab 会自动的帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是某些原因或者是其他的 Unix 系统中,由于 crontab 是读到内存当中的,所以在你修改完 /etc/crontab 之后,可能并不会马上执行, 这个时候请重新启动 crond 这个服务:

systemctl restart crond


这个文件与将刚刚我们下达 crontab -e的内容几乎完全一模一样!只是有几个地方不太相同:

MAILTO=root:

这个项目是说,当 /etc/crontab 这个文件中的例行性工作的指令发生错误时,或者是该工作的执行结果有 STDOUT/STDERR 时,会将错误讯息或者是屏幕显示的讯息传给谁?默不过, 由于 root 并无法在用户端中以 POP3 之类的软件收信,因此,通常都将这个 e-mail 改成自己的帐号,好让我随时了解系统的状况!例如: MAILTO=dmtsai@my.host.name认当然是由系统直接寄发一封 mail 给 root。

PATH=....:

“分 时 日 月 周 身份 指令”七个字段的设置


这个 /etc/crontab 里面可以设置的基本语法与 crontab -e 不太相同!前面同样是分、时、日、月、周五个字段, 但是在五个字段后面接的并不是指令,而是一个新的字段,那就是“执行后面那串指令的身份”为何!这与使用者的 crontab -e 不相同。由于使用者自己的 crontab并不需要指定身份,但 /etc/crontab 里面当然要指定身份啦!以上表的内容来说,系统默认的例行性工作是以 root 的身份来进行的。


crond 服务读取配置文件的位置

一般来说,crond 默认有三个地方会有执行脚本配置文件,他们分别是:

/etc/crontab

/etc/cron.d/*

/var/spool/cron/*

这三个地方中,跟系统的运行比较有关系的两个配置文件是放在 /etc/crontab 文件内以及/etc/cron.d/* 目录内的文件, 另外一个是跟用户自己的工作比较有关的配置文件,就是放在/var/spool/cron/ 里面的文件群。 现在我们已经知道了 /var/spool/cron 以及 /etc/crontab 的内容,那现在来瞧瞧 /etc/cron.d 里面的东西吧!

如果你想要自己开发新的软件,该软件要拥有自己的 crontab 定时指令时,就可以将“分、时、日、月、周、身份、指令”的配置文件放置到 /etc/cron.d/ 目录下! 在此目录下的文件是“crontab 的配置文件脚本”。


个人化的行为使用“ crontab -e ”:如果你是依据个人需求来创建的例行工作调度,建议直接使用 crontab -e 来创建你的工作调度较佳, 这样也能保障你的指令行为不会被大家看到 。


系统维护管理使用“ vim /etc/crontab ”:如果你这个例行工作调度是系统的重要工作,为了让自己管理方便,同时容易追踪,建议直接写入 /etc/crontab 较佳。


自己开发软件使用“ vim /etc/cron.d/newfile ”:如果你是想要自己开发软件,那当然最好就是使用全新的配置文件,并且放置于 /etc/cron.d/ 目录内即可。


固定每小时、每日、每周、每天执行的特别工作:如果与系统维护有关,还是建议放置到 /etc/crontab 中来集中管理较好。 如果想要偷懒,或者是一定要再某个周期内进行的任务,也可以放置到上面谈到的几个目录中,直接写入指令即可。

15.3.3 一些注意事项

有的时候,我们以系统的 cron 来进行例行性工作的创建时,要注意一些使用方面的特性。 举例来说,如果我们有四个工作都是五分钟要进行一次的,那么是否这四个动作全部都在同一个时间点进行? 如果同时进行,该四个动作又很耗系统资源,如此一来,每五分钟的某个时刻不是会让系统忙得要死?所以要注意:

资源分配不均的问题


当大量使用 crontab 的时候,总是会有问题发生的,最严重的问题就是“系统资源分配不均”的问题,包括:

流量

区域内其他 PC 的流量侦测

CPU 使用率

RAM 使用率

线上人数实时侦测

如果每个流程都在同一个时间启动的话,那么在某个时段时,我的系统会变的相当的繁忙,所以,这个时候就必须要分别设置,我可以这样做:


注意:

取消不要的输出项目,安全的检验,周与日月不可同时并存。

相关文章
|
4月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
338 3
Linux系统禁用swap
|
4月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
655 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
451 0
Linux系统初始化脚本
|
4月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
392 1
|
4月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1088 1
|
Unix Linux
Linux中的Crontab:定时任务管理器
`crontab`是Linux下的定时任务管理器,用于设置周期性执行的任务。用户可以通过`crontab -l`查看任务,`crontab -e`编辑,`crontab -r`删除任务。任务格式为:`* * * * * command`,分别代表分钟、小时、日期、月份、星期,例如`30 10 * * * /path/to/script.sh`。注意确保命令有执行权限,处理环境变量,并关注日志文件 `/var/log/syslog` 或 `/var/log/cron`。学会使用`crontab`能有效自动化Linux系统的日常任务。
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
910 5
|
数据挖掘 Linux Shell
linux 使用crontab 创建定时任务
linux 使用crontab 创建定时任务
314 0
linux 使用crontab 创建定时任务
|
资源调度 Kubernetes 调度
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
119367 59
|
Ubuntu Linux Shell
Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
本文是博主学习linux定时任务的记录,希望对大家有所帮助
1084 0
Linux Crontab 定时任务 及 Ubuntu 中cron指令使用