ujamii / update-cronjobs
Bash 脚本,用于更新当前项目的 cronjobs(仅限当前项目)
v1.0.0
2019-02-18 08:04 UTC
This package is auto-updated.
Last update: 2024-09-18 21:10:40 UTC
README
Bash 脚本,用于更新当前项目的 cronjobs,仅限这些。
update-cronjobs.sh
通过标准输入接收 cronjobs,格式为正常的 crontab 格式,并将它们放入一个特殊的块中,而不会触及 crontab 文件中已经存在的 cronjobs。
这允许你构建一个脚本来在部署时自动更新你的项目 cronjobs。
如果你不是部署应用程序的人,你可以只向系统管理员传递要执行的脚本来设置你的 cronjobs 的名称,而不是告诉他你想要在 cronjobs 文件中的每一行。
如果你将更新 cronjobs 的脚本放入你的项目 git / svn 仓库中,你突然就有了一个包含它们执行时间的 cronjobs,而不需要在你的框架 / cms 中安装大的 cron-like-behaviour 套件。
使用 composer 设置
composer require ujamii/update-cronjobs
将 scripts/setupCronjobs.sh 添加到你的项目中
#!/usr/bin/env bash PROJECT_ROOT=$(cd $(dirname $0)/..; pwd -P) CRONJOBS_NAME='My great project' ${PROJECT_ROOT}/vendor/ujamii/update-cronjobs/update-cronjobs.sh "${CRONJOBS_NAME}" $1 <<-EOF @daily ${PROJECT_ROOT}/bin/console daily-cronjob-example # Send mails every 5 minutes */5 * * * * ${PROJECT_ROOT}/bin/console sendmails # ... Your other cronjobs ... EOF
现在你可以运行 ./scripts/setupCronjobs.sh
来更新你的项目 cronjobs,而不会影响 crontab 中已经存在的其他 cronjobs。
这将导致以下 crontab
#---- My great project cronjobs start here ----# @daily bin/console daily-cronjob-example # Send mails every 5 minutes */5 * * * * bin/console sendmails # ... Your other cronjobs ... #---- My great project cronjobs end here ------#
要再次删除整个块,包括开始和结束标记,请调用 ./scripts/setupCronjobs.sh -r
这同样不会影响 crontab 中的其他 cronjobs,只会删除项目块。