Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ForkNMB
V2EX  ›  Linux

Linux 定时任务添加

  •  
  •   ForkNMB · Jan 14, 2025 · 6336 views
    This topic created in 666 days ago, the information mentioned may be changed or developed.

    你们平时加定时任务用 crontab - 添加还是 在/etc/cron.d 下面添加一个文件的方式来添加定时任务。感觉如果用脚本来添加定时任务的话,是后者方便很多啊

    46 replies  •  2025-01-16 10:17:27 +08:00
    zzzsy
    zzzsy
    Jan 14, 2025 via Android❤️1
    1
    用 systemd 的 timer(
    javalaw2010
    javalaw2010
    Jan 14, 2025
    2
    直接 crontab -e
    linuxsir2020
    linuxsir2020
    Jan 14, 2025❤️1
    3
    cat <(crontab -l) <(echo "1 2 3 4 5 scripty.sh") | crontab -
    在用的~
    dalaoshu25
    dalaoshu25
    Jan 14, 2025❤️1
    4
    第一,新项目尽量使用 systemd timer
    第二,回家仔细阅读 crontab 的 man page
    EndlessMemory
    EndlessMemory
    Jan 14, 2025
    5
    crontab 命令
    kenneth104
    kenneth104
    Jan 14, 2025
    6
    crontab -e 个人习惯问题
    w568w
    w568w
    Jan 14, 2025❤️2
    7
    有 systemd timer 用 systemd timer ,比 crontab 更高级。crontab 存留的意义是给没有 systemd 的系统和拒绝更新知识的老运维用的
    lichao
    lichao
    Jan 14, 2025
    8
    systemd timer 一定要写两个文件?稍微有点不方便
    esee
    esee
    Jan 14, 2025
    9
    以前用 crontab,后来定时任务越来越复杂,我后端用的 node ,直接用 pm2 来管理定时任务了.
    salmon5
    salmon5
    Jan 14, 2025
    10
    自己管的东西用 crontab ,如果交付给甲方的应该用 systemd Timers ,否则有点 low
    fox0001
    fox0001
    Jan 14, 2025 via Android❤️8
    11
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    qloog
    qloog
    Jan 14, 2025
    12
    一直以为只有 crontab, 原来还有 systemd timer , 以后也用 systemd timer
    ForkNMB
    ForkNMB
    OP
    Jan 14, 2025
    13
    @w568w 好吧 项目里的还是用 systemd timer 好了
    fengshils
    fengshils
    Jan 14, 2025
    14
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    julyclyde
    julyclyde
    Jan 14, 2025
    15
    @javalaw2010
    @linuxsir2020
    @kenneth104
    用户级别的 crontab 会导致进程被计入 user session
    不是后台服务应有的姿态
    xpn
    xpn
    Jan 14, 2025
    16
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    wusheng0
    wusheng0
    Jan 14, 2025 via Android
    17
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    ruidoBlanco
    ruidoBlanco
    Jan 14, 2025
    18
    偶尔用 systemd timer ,fuck systemd timer 。
    aoE51t3250I229Ym
    aoE51t3250I229Ym
    Jan 14, 2025
    19
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    huangmingyou
    huangmingyou
    Jan 14, 2025
    20
    /etc/cron.d/ ; 因为可以用 ansilbe 管理
    byte404
    byte404
    Jan 14, 2025
    21
    systemd timer 不太好统一管理,用过一段时间就放弃了;单个还好,有五个以上完全记不住。。
    superrichman
    superrichman
    Jan 14, 2025
    22
    一直用 crontab 。看完这帖,后面继续用 crontab
    shylockhg
    shylockhg
    Jan 14, 2025
    23
    拒绝 systemd 霸权,从我做起:)
    FFV
    FFV
    Jan 14, 2025
    24
    一直用 crontab 。后来命令丢了一次用 /etc/cron.d/ 看完这帖,后面继续用 /etc/cron.d/,

    感觉 systemd timer 有点复杂
    chaselen
    chaselen
    Jan 14, 2025
    25
    继续用 crontab
    qiubaowei
    qiubaowei
    Jan 14, 2025
    26
    我懒 我没办法学 systemd
    SenLief
    SenLief
    Jan 14, 2025
    27
    systemd.timer
    Alliot
    Alliot
    Jan 14, 2025
    28
    简单需求简单的用 crontab 就好
    如果对计划时间比较细 或者任务比较复杂 可以用 timer
    guanzhangzhang
    guanzhangzhang
    Jan 14, 2025
    29
    和需求没有啥关系,你想表达的领域可能比较冷门很多人回觉得无所谓,对于运维来说,Linux 文件规范就是如果增删改,那就优先放.d 目录下,还能有加载优先级享受。
    就像增加环境变量,你能看到几乎所有人都改 /etc/profile 修改和判断和删除写一堆正则 shell 整这个文件,而不是`/etc/profile.d`。更稍微热门点的就是`/etc/sysctl.d`
    Linux 里很多子配置文件目录,善用能减少一些自动化心智,特别 ansible 和批量的时候。
    system timer 快速上手可以看我写的 gist https://gist.github.com/zhangguanzhang/abd6d1f2aadd2adb8bbe649893f2c3dc
    zuotun
    zuotun
    Jan 14, 2025
    30
    怎么全是 systemd 的?就没人用 rc 吗?
    kiolygenius
    kiolygenius
    Jan 14, 2025
    31
    如果是 systemd 的系统,那就是 systemd-timer 或者装一个 cronie 继续 crontab
    ForkNMB
    ForkNMB
    OP
    Jan 14, 2025
    32
    @guanzhangzhang 我只是小开发。没人运维只能自己上(还好有各种 ai 帮助)。我想说的就是你提到的,比如加一个规则,写脚本的时候,要判断去重,然后再追加内容修改(别直接覆盖原来的)。还不如直接在.d 目录下加个文件,以后修改也在文件上变更。减少很多心智负担。当然 system timer 也挺好的,而且它也支持通过新增一个配置文件来修改 service 的某些属性,总感觉这种比直接改配置文件的要舒服得多。
    guanzhangzhang
    guanzhangzhang
    Jan 14, 2025
    33
    @ForkNMB #31 system 也可以.d 目录,例如 docker.service.d 目录
    cybernty
    cybernty
    Jan 14, 2025
    34
    systemd
    skyrim61
    skyrim61
    Jan 14, 2025
    35
    用了 35 年的 croantab -e, 现在 流行 systemd timer?
    totoro625
    totoro625
    Jan 14, 2025
    36
    crontab 命令经常因为环境变量与 bash 变量不一致导致脚本无法正常运行
    因为前面的程序不是我写的,也不想 debug
    于是起了一个 screen ,每月 1 号定期执行一次:
    #!/bin/bash
    while true; do
    day=$(date +%d)
    if [ "$day" -eq "01" ]; then
    bash ***.sh
    sleep 86400
    else
    sleep 86400
    fi
    done
    justwkj07
    justwkj07
    Jan 15, 2025
    37
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    heimoshuiyu
    heimoshuiyu
    Jan 15, 2025
    38
    systemd 就是大而全,contab 是小而美。用哪个自古以来就是一个争议话题。我的意见是,如果任务简单就使用 contab ,如果任务可能超时、需要依赖其他组件、有特定启动顺序、需要自动重试之类就用 systemd
    huza1a
    huza1a
    Jan 15, 2025
    39
    用的 crontab ,终端设备,就一个启动脚本,每次开机后让他执行就够了
    mylara
    mylara
    Jan 15, 2025
    40
    一直用 crontab 。看完这帖,后面会改用 systemd timer
    julyclyde
    julyclyde
    Jan 15, 2025
    41
    @totoro625 man crond 里明确说明了带有什么环境变量
    如果不能正常运行,那是你脚本自己的问题
    laminux29
    laminux29
    Jan 15, 2025
    42
    用 crontab 有个小问题,它执行命令时,一定要把命令写绝对路径。或者在操作前,导入环境变量。
    james122333
    james122333
    Jan 15, 2025 via Android
    43
    当然是脚本大于 cron 大于 systemd-timer
    首先 systemd-timer 分散配置不好 配置语句也啰唆不是很让人想学
    cron 简单与统一不错 到分钟级已经可以 缺点在于灵活性低 不能玩出花样
    shell 等脚本就不同了 一样可以写排程 外加可输入输出 可以用输入输出触发运行 执行一些骚操作 强太多了
    james122333
    james122333
    Jan 15, 2025 via Android
    44
    systemd 同样也是灵活性低
    momo65535
    momo65535
    Jan 16, 2025
    45
    crontab -e
    rickiey
    rickiey
    Jan 16, 2025
    46
    一直用 crontab 。看完这帖,后面继续用 crontab
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2182 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 14:07 · PVG 22:07 · LAX 06:07 · JFK 09:07
    ♥ Do have faith in what you're doing.