V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
DopaminePlz
V2EX  ›  Linux

cron 没有配置文件?

  •  
  •   DopaminePlz · 2020-09-21 07:11:17 +08:00 via Android · 2826 次点击
    这是一个创建于 1555 天前的主题,其中的信息可能已经有所发展或是发生改变。
    吐槽一下,反人类的设计。crontab -e 编辑后不知道跑到哪里去了, 如果没有重定向 crontab -l 保存到文件,下次重装系统的话就只能一行行自己再写过。
    第 1 条附言  ·  2020-09-21 12:25:37 +08:00
    看了诸位的留言,本人坚定了自己确实比较菜的想法。我一般去 /etc 那里去找,没有想到系统把配置文件想到存放 /var/spool 下面。昨晚找了一下,第一条链接是说没有好的办法,并建议用重定向的办法,也没有再看其它的搜索结果。
    24 条回复    2020-09-22 02:29:33 +08:00
    ETiV
        1
    ETiV  
       2020-09-21 07:13:44 +08:00 via iPhone
    Google 一下
    crontab per-user location
    arch9999
        2
    arch9999  
       2020-09-21 07:39:42 +08:00   ❤️ 2
    科普一下,cron 并不是像某些人说的: “cron 在运行后每分钟的前 59 秒都在猜用户设定的定时计划,所以它最低的时间间隔是分钟。”

    这是及其荒谬的一种说法。

    实际上,仔细查看源代码就会发现,其实 cron 通过“特有”(内核赋予)的方式将用户给定的定时计划写入到 CPU 内部一个专有的存储单元,所以 cron 无需在文件系统中存储配置文件也可以正常运行用户给定的定时计划,并精准的运行。
    privil
        3
    privil  
       2020-09-21 08:21:00 +08:00
    当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。
    privil
        4
    privil  
       2020-09-21 08:21:27 +08:00   ❤️ 11
    你这属于 菜,无能狂怒吗?
    sutra
        5
    sutra  
       2020-09-21 08:33:16 +08:00
    and for macOS: sudo cat /var/at/tabs/${USER}
    jinliming2
        6
    jinliming2  
       2020-09-21 08:48:41 +08:00
    (我选择 systemd.timer
    Linux 的配置文件可以在这里找到:/var/spool/cron/crontabs/用户名
    ysc3839
        7
    ysc3839  
       2020-09-21 08:56:42 +08:00 via Android   ❤️ 1
    @arch9999 “猜用户设定的定时计划”是什么意思? crond 本来就有“用户设定的定时计划”的信息,为什么要“猜”?

    在我看来,“将用户给定的定时计划写入到 CPU 内部一个专有的存储单元”才是及其荒谬的一种说法,市面上不同用途的 CPU 那么多,不太可能所有 CPU 都提供一个专有的存储单元。
    同时仔细查看 busybox 的源代码就会发现,它仅仅是因为 sleep_time 设置成了 60,所以它最低的时间间隔是分钟。https://github.com/mirror/busybox/blob/a949399d178f7b052ada2099c62621736eafce44/miscutils/crond.c#L1066-L1074
    也可以从代码中看出,busybox crond 是通过读取文件系统中的配置信息来运行的。
    mepwang
        8
    mepwang  
       2020-09-21 09:05:24 +08:00 via iPhone
    @ysc3839 确实每个 CPU,从服务器到桌面到嵌入式,都提供了多个特殊的存储单元(定时器 /timer ),专门用来处理定时,精度可以是 CPU 时钟
    arch9999
        9
    arch9999  
       2020-09-21 09:07:43 +08:00
    @ysc3839 #7

    荒谬,那你怎么解释楼主找不到配置文件,难道是他眼瞎吗?
    pmispig
        10
    pmispig  
       2020-09-21 09:11:38 +08:00
    那你为何不用 /etc/crontab 呢,我就最讨厌 crontab -e 的姿势了
    ysc3839
        11
    ysc3839  
       2020-09-21 09:12:54 +08:00 via Android
    @arch9999 我解释不了“楼主找不到配置文件”,但是这和你说的话是否正确有什么关系吗?
    我上面的回复是在反驳你的说法,并不是在讨论“楼主找不到配置文件”。
    arch9999
        12
    arch9999  
       2020-09-21 09:19:01 +08:00
    @ysc3839 #11

    别的地方我管不着,在这个帖子里,cron 的配置文件一定是被存储到 CPU 的某个存储单元了,否则他不会找不到。
    love
        13
    love  
       2020-09-21 09:46:56 +08:00   ❤️ 1
    @arch9999 你仔细看,他没有找,他是用标准编辑方式 crontab -e 改文件,这个方式没告诉你最终文件在哪,这和 CPU 有什么关系(话说 cron 真放到 CPU 了?这特么高射炮打蚊子了
    rootww21
        14
    rootww21  
       2020-09-21 10:08:08 +08:00
    哈哈哈 乐了
    rootww21
        15
    rootww21  
       2020-09-21 10:08:32 +08:00
    /var/spool/cron/username 不是这里吗
    skymei
        16
    skymei  
       2020-09-21 10:13:03 +08:00
    你可以在 /etc/cron.d 里面配置的,不需要 -e 全局的方式
    liberty1900
        17
    liberty1900  
       2020-09-21 10:18:03 +08:00 via Android
    类 Unix 系统一切都是文件
    这个也跑不了
    liangming1
        18
    liangming1  
       2020-09-21 10:28:17 +08:00
    可以理解为 无能狂怒
    catinsides
        19
    catinsides  
       2020-09-21 12:07:10 +08:00
    提问姿势:
    cron 的配置文件在哪里? ×
    cron 怎么连配置文件都没有!√
    swulling
        20
    swulling  
       2020-09-21 12:32:37 +08:00 via iPhone
    @arch9999 找不到只是因为 lz 没看文档,并不是 cron 不写配置文件,也不是配置文件不存在,更不是有啥 cpu 来存。

    就好像有盲人发帖说看不见太阳,而你在一本正经的解释太阳本身就看不见。
    liuxu
        21
    liuxu  
       2020-09-21 16:11:09 +08:00
    好了楼上的大哥们别打架了,linux 的大佬们就喜欢用这么直接的问候内心的表达方式

    /etc 下一般是用户编辑,软件读取的配置文件
    /var 下一般是由软件生成的数据文件

    常识,了解一下就可以了,《鸟哥的 linux 私房菜》有一章有说明
    arch9999
        22
    arch9999  
       2020-09-22 00:14:53 +08:00
    @love #13
    @swulling #20

    你们开心就好咯,我只是编个故事让他觉得找不到配置文件好受一点。
    swulling
        23
    swulling  
       2020-09-22 02:19:14 +08:00 via iPhone
    @arch9999 呵呵
    arch9999
        24
    arch9999  
       2020-09-22 02:29:33 +08:00
    @swulling #23
    呵呵
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3605 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.