cron 没有配置文件?
- 0次
- 2021-06-16 10:54:43
- idczone
吐槽一下,反人类的设计。crontab -e 编辑后不知道跑到哪里去了, 如果没有重定向 crontab -l 保存到文件,下次重装系统的话就只能一行行自己再写过。
Google 一下
crontab per-user location
科普一下,cron 并不是像某些人说的: “cron 在运行后每分钟的前 59 秒都在猜用户设定的定时计划,所以它最低的时间间隔是分钟。”
这是及其荒谬的一种说法。
实际上,仔细查看源代码就会发现,其实 cron 通过“特有”(内核赋予)的方式将用户给定的定时计划写入到 CPU 内部一个专有的存储单元,所以 cron 无需在文件系统中存储配置文件也可以正常运行用户给定的定时计划,并精准的运行。
当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。
你这属于 菜,无能狂怒吗?
and for macOS: sudo cat /var/at/tabs/${USER}
(我选择 systemd.timer
Linux 的配置文件可以在这里找到:/var/spool/cron/crontabs/用户名
“猜用户设定的定时计划”是什么意思? crond 本来就有“用户设定的定时计划”的信息,为什么要“猜”?
在我看来,“将用户给定的定时计划写入到 CPU 内部一个专有的存储单元”才是及其荒谬的一种说法,市面上不同用途的 CPU 那么多,不太可能所有 CPU 都提供一个专有的存储单元。
同时仔细查看 busybox 的源代码就会发现,它仅仅是因为 sleep_time 设置成了 60,所以它最低的时间间隔是分钟。https://github.com/mirror/busybox/blob/a949399d178f7b052ada2099c62621736eafce44/miscutils/crond.c/>也可以从代码中看出,busybox crond 是通过读取文件系统中的配置信息来运行的。
确实每个 CPU,从服务器到桌面到嵌入式,都提供了多个特殊的存储单元(定时器 /timer ),专门用来处理定时,精度可以是 CPU 时钟
荒谬,那你怎么解释楼主找不到配置文件,难道是他眼瞎吗?
那你为何不用 /etc/crontab 呢,我就最讨厌 crontab -e 的姿势了
我解释不了“楼主找不到配置文件”,但是这和你说的话是否正确有什么关系吗?
我上面的回复是在反驳你的说法,并不是在讨论“楼主找不到配置文件”。
别的地方我管不着,在这个帖子里,cron 的配置文件一定是被存储到 CPU 的某个存储单元了,否则他不会找不到。
你仔细看,他没有找,他是用标准编辑方式 crontab -e 改文件,这个方式没告诉你最终文件在哪,这和 CPU 有什么关系(话说 cron 真放到 CPU 了?这特么高射炮打蚊子了
哈哈哈 乐了
/var/spool/cron/username 不是这里吗
你可以在 /etc/cron.d 里面配置的,不需要 -e 全局的方式
类 Unix 系统一切都是文件
这个也跑不了
可以理解为 无能狂怒
提问姿势:
cron 的配置文件在哪里? ×
cron 怎么连配置文件都没有!√
找不到只是因为 lz 没看文档,并不是 cron 不写配置文件,也不是配置文件不存在,更不是有啥 cpu 来存。
就好像有盲人发帖说看不见太阳,而你在一本正经的解释太阳本身就看不见。
好了楼上的大哥们别打架了,linux 的大佬们就喜欢用这么直接的问候内心的表达方式
/etc 下一般是用户编辑,软件读取的配置文件
/var 下一般是由软件生成的数据文件
常识,了解一下就可以了,《鸟哥的 linux 私房菜》有一章有说明
你们开心就好咯,我只是编个故事让他觉得找不到配置文件好受一点。
呵呵
呵呵