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

用 systemd 的 timer(

直接 crontab -e

cat <(crontab -l) <(echo "1 2 3 4 5 scripty.sh") | crontab -
在用的~

第一,新项目尽量使用 systemd timer
第二,回家仔细阅读 crontab 的 man page

crontab 命令

crontab -e 个人习惯问题

有 systemd timer 用 systemd timer ,比 crontab 更高级。crontab 存留的意义是给没有 systemd 的系统和拒绝更新知识的老运维用的

systemd timer 一定要写两个文件?稍微有点不方便

以前用 crontab,后来定时任务越来越复杂,我后端用的 node ,直接用 pm2 来管理定时任务了.

自己管的东西用 crontab ,如果交付给甲方的应该用 systemd Timers ,否则有点 low

一直用 crontab 。看完这帖,后面会改用 systemd timer

一直以为只有 crontab, 原来还有 systemd timer , 以后也用 systemd timer

好吧 项目里的还是用 systemd timer 好了

一直用 crontab 。看完这帖,后面会改用 systemd timer

用户级别的 crontab 会导致进程被计入 user session
不是后台服务应有的姿态

一直用 crontab 。看完这帖,后面会改用 systemd timer

一直用 crontab 。看完这帖,后面会改用 systemd timer

偶尔用 systemd timer ,fuck systemd timer 。

一直用 crontab 。看完这帖,后面会改用 systemd timer

/etc/cron.d/ ; 因为可以用 ansilbe 管理

systemd timer 不太好统一管理,用过一段时间就放弃了;单个还好,有五个以上完全记不住。。

一直用 crontab 。看完这帖,后面继续用 crontab

拒绝 systemd 霸权,从我做起:)

一直用 crontab 。后来命令丢了一次用 /etc/cron.d/ 看完这帖,后面继续用 /etc/cron.d/,

感觉 systemd timer 有点复杂

继续用 crontab

我懒 我没办法学 systemd

systemd.timer

简单需求简单的用 crontab 就好
如果对计划时间比较细 或者任务比较复杂 可以用 timer

和需求没有啥关系,你想表达的领域可能比较冷门很多人回觉得无所谓,对于运维来说,Linux 文件规范就是如果增删改,那就优先放.d 目录下,还能有加载优先级享受。
就像增加环境变量,你能看到几乎所有人都改 /etc/profile 修改和判断和删除写一堆正则 shell 整这个文件,而不是/etc/profile.d。更稍微热门点的就是/etc/sysctl.d
Linux 里很多子配置文件目录,善用能减少一些自动化心智,特别 ansible 和批量的时候。
system timer 快速上手可以看我写的 gist gist.github.com/zhangguanzhang/abd6d1f2aadd2adb8bbe649893f2c3dc

怎么全是 systemd 的?就没人用 rc 吗?

如果是 systemd 的系统,那就是 systemd-timer 或者装一个 cronie 继续 crontab

我只是小开发。没人运维只能自己上(还好有各种 ai 帮助)。我想说的就是你提到的,比如加一个规则,写脚本的时候,要判断去重,然后再追加内容修改(别直接覆盖原来的)。还不如直接在.d 目录下加个文件,以后修改也在文件上变更。减少很多心智负担。当然 system timer 也挺好的,而且它也支持通过新增一个配置文件来修改 service 的某些属性,总感觉这种比直接改配置文件的要舒服得多。

#31 system 也可以.d 目录,例如 docker.service.d 目录

systemd

用了 35 年的 croantab -e, 现在 流行 systemd timer?

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

一直用 crontab 。看完这帖,后面会改用 systemd timer

systemd 就是大而全,contab 是小而美。用哪个自古以来就是一个争议话题。我的意见是,如果任务简单就使用 contab ,如果任务可能超时、需要依赖其他组件、有特定启动顺序、需要自动重试之类就用 systemd

用的 crontab ,终端设备,就一个启动脚本,每次开机后让他执行就够了