首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在没有交互式编辑器的情况下使用Bash自动创建cron作业?

如何在没有交互式编辑器的情况下使用Bash自动创建cron作业?
EN

Stack Overflow用户
提问于 2009-05-18 16:37:47
回答 21查看 411.3K关注 0票数 508

crontab是否有理由在不使用编辑器(crontab -e)的情况下创建cron作业?如果是这样的话,从Bash脚本创建cron作业的代码是什么?

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2009-05-18 16:47:43

可以添加到crontab中,如下所示:

代码语言:javascript
运行
复制
#write out current crontab
crontab -l > mycron
#echo new cron into cron file
echo "00 09 * * 1-5 echo hello" >> mycron
#install new cron file
crontab mycron
rm mycron

Cron线解释

代码语言:javascript
运行
复制
* * * * * "command to be executed"
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

nixCraft.

票数 687
EN

Stack Overflow用户

发布于 2009-05-18 18:02:42

你也许能在飞行中做到。

代码语言:javascript
运行
复制
crontab -l | { cat; echo "0 0 0 0 0 some entry"; } | crontab -

crontab -l列出当前的crontab作业,cat打印它,echo打印新命令,crontab -将所有打印的内容添加到crontab文件中。您可以通过执行一个新的crontab -l来看到效果。

票数 384
EN

Stack Overflow用户

发布于 2013-07-31 16:05:54

这个较短的文件不需要临时文件,它不受多次插入的影响,它允许您更改现有条目的日程安排。

说你有这些:

代码语言:javascript
运行
复制
croncmd="/home/me/myfunction myargs > /home/me/myfunction.log 2>&1"
cronjob="0 */15 * * * $croncmd"

若要将其添加到crontab中,不需要重复:

代码语言:javascript
运行
复制
( crontab -l | grep -v -F "$croncmd" ; echo "$cronjob" ) | crontab -

要从crontab中删除它,不管它当前的计划是什么:

代码语言:javascript
运行
复制
( crontab -l | grep -v -F "$croncmd" ) | crontab -

备注:

  • grep -F匹配字符串,因为我们不想将它解释为正则表达式。
  • 我们还忽略了时间调度,只查找命令。这样,可以更改计划,而不需要向crontab添加新行的风险。
票数 110
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/878600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档