【问题标题】:Newbie: Where to place script for cronjob?新手:cronjob 的脚本放在哪里?
【发布时间】:2017-05-10 21:17:33
【问题描述】:

我正在部署一个 apache 容器,它从我的 github 下载 php 代码,但该代码应该每 5 分钟运行一次,因为它会提取一个外部 API 并填充一个数据库。

我一直在阅读 openshift 中的 cron 并且确实了解脚本,但我不知道将脚本放在哪里。所有示例都在讨论如何将脚本放在以下目录中:“.openshift/cron/minutely/awesome_job”但它在哪里?????

我是否应该在本地硬盘上创建它并使用 OC 客户端从该目录部署 apache cointainer?我迷路了。

使用公共 Paas OpenShift。

【问题讨论】:

  • 嗨!也许你应该按照 tuto 创建你的 cron 容器:docs.openshift.org/latest/dev_guide/cron_jobs.html。并将您要更新的卷挂载到您的 croned 容器中(使用 tuto 创建)。这样,它将直接将更改推送到您的 apache 容器中
  • 向我解释一下你的脚本是如何工作的,它只会触发一个新的git pull 到克隆到你的 apache 容器中的 git 项目中吗?我也许可以尝试给你一个更具体的答案
  • 部署 Apache / PHP 时,它会从 github 拉取我的应用程序代码。完成后,Openshift 将在 github 代码更改时更新。所以我的应用程序更改都有效。但是应用程序的一部分必须每 x 分钟触发一次。那就是我需要触发器运行的地方: #!/bin/sh /bin/rm -f /tmp/nest_php_* ; /usr/bin/php /var/www/nest/insert.php > /dev/null
  • 用 openshift 的 crons 听起来很难做到,从你的 php 应用程序中每 5 分钟触发一次该脚本不是更容易吗?因为我在这里看不到任何其他足够干净的解决方案;)
  • 那很好,但我认为 PHP 做不到 :-)

标签: openshift


【解决方案1】:

我的在 /etc/cron.daily/ 中,但也有其他风格,例如 .hourly、.weekly、.monthly.. 这是 debian。 我也经常将它们放在 /usr/local 中。如果这些是个人工作,或者在我自己的主目录中。基本上你给 cron 一个路径,所以它去那里。

【讨论】:

  • 嗯,不,我的意思是:如何获取在公共 PaaS 中运行的容器中的文件?我现在部署了一个默认的 Apache 容器,我可以给它一个源代码库github.com/TheGabeMan/MyNew.git 但是它会在哪里找到带有 cronjob 的脚本来拉入容器呢?我不想在部署后编辑容器的内容。或者我应该说图像而不是容器?
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 2021-05-07
  • 2017-12-20
  • 2010-10-17
  • 2014-08-13
  • 2014-11-08
  • 2015-06-29
相关资源
最近更新 更多