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

Linux 定时任务添加

  •  
  •   ForkNMB · 3 天前 · 3255 次点击

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

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

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