惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
量子位
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 【当耐特】
爱范儿
爱范儿
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
IT之家
IT之家
博客园_首页
博客园 - 聂微东
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗

server – Ed_'s Blog

给 Debian 开了自动安全更新 – yywr's Blog 终于修了个梯子 – yywr's Blog 防火墙配置工具 UFW – yywr's Blog 说说 LNMP 面板 – yywr's Blog Linux 程序开机启动并保活:Systemd 进程守护管理工具 – yywr's Blog Linux 下自动挂载 Samba /CIFS 共享文件夹 – yywr's Blog Ubuntu 开机自动挂载第二块硬盘 – yywr's Blog 重装了家里的服务器系统 – yywr's Blog 构建网络私有书架,实现听书看书 – yywr's Blog 主机安装 Tiny Tiny RSS 踩坑记 – yywr's Blog
Crontab 使用笔记 – yywr's Blog
yywr · 2023-08-16 · via server – Ed_'s Blog

很不想搬运这篇内容,感觉没什么意义,但每次想要用的时候都要去搜,然后点几次链接才能找到想要的内容,所以还是抄一份放这里备用吧

为了便利的工作,Windows 下的计划任务倒是用得多点,而且配置项还算丰富,很多需求都能够得到满足,Linux 下 corntab 目前主要就做两件事情,一个是备份站点项目文件,一个是更新 DDNS 记录

命令与参数

 crontab [ -u user ] { -e | -l | -r }
 -u : user 指定用户,默认当前用户,用它指定用户需要 sudo 提权
 -e : edit 编辑任务
 -l : list 列出用户下的任务
 -r : remove 删除用户下的任务,我觉得有 -e 就够了

任务格式

这是搬运这文章的原因,每次都要想一下它这个时间设置是怎么个格式法,它简洁、灵活,但每次都用的时候都记忆模糊

*    *    *    *    *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 |- 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

星号()是表示当前对应时间单位内里的每一个颗粒度,可以指定有效的时间点,也可以使用 – 号来选定范围,还可以使用 / 号来表示间隔,比如 “ */30 ” 可以表示每隔30分钟,当然它们也可以组合使用

使用方法

使用 crontab -e 来编辑当前用户的任务清单文件,在文件的最后面按上面的格式添加一条记录,保存退出即可(有些系统会调用 vim 有些会调用 nano)

先是按上面格式设置执行的时间,然后接运行的命令,一般是 bash + 脚本完整路径,比如:

#每30分钟跑一次DDNS的脚本
*/30 * * * * bash /home/usr/Config/DDNS-update.sh

 注意事项:不知道是因为环境变量还是其它什么原因,在当以 .sh脚本作执行动作时,最好在路径前加上 bash,我碰到过不加不运行的情况

其它可能需要知道的

守护进程: crond (Ubuntu 下名字是 cron.service) ,如果小概率发生任务未执行的情况,尝试用 systemctl 看下它还活没活

系统任务:我们编辑的是用户 任务,有系统任务,保存在 /etc/crontab ,不管它

主要文件:

  • /var/spool/cron/crontabs/ – 用户任务清单保存目录,以用户名命名
  • /etc/cron.allow – 允许使用crontab 的用户,一般没这个文件,按需要自己建议,里面填用户名就行,各占一行
  • /etc/cron.deny – 禁止使用crontab 的用户,一般 guest 用户是在列的
  • /etc/cron.daily – 一般是程序自动创建的任务,可能还有 cron.monthly / hourly 等,自行打 cron 后按 tab 键补全查看

参考:

本文是 居家服务器折腾笔记 的一部分