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

Linux 定时任务添加

  •  
  •   ForkNMB · 10 天前 · 3519 次点击

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

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

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