【发布时间】:2015-04-18 17:02:59
【问题描述】:
在使用 Nova boot 创建 vm 时,我为其提供了一个用户数据脚本 (云初始化脚本)。
我想知道的是,如何在该云初始化脚本中指定(或任何其他方式):- 安排 cron 作业每 2 小时运行一次
假设我想运行“du -s njain/” 每 2 小时查找一次目录的大小
我知道“runcmd”可以用来做一次......但我如何让它定期运行? du -s ../njain/
【问题讨论】:
标签: cloud-init
在使用 Nova boot 创建 vm 时,我为其提供了一个用户数据脚本 (云初始化脚本)。
我想知道的是,如何在该云初始化脚本中指定(或任何其他方式):- 安排 cron 作业每 2 小时运行一次
假设我想运行“du -s njain/” 每 2 小时查找一次目录的大小
我知道“runcmd”可以用来做一次......但我如何让它定期运行? du -s ../njain/
【问题讨论】:
标签: cloud-init
现在可能为时已晚,但通过 cloud-init 进行操作的正确方法是使用 cloud-config write_files 模块并在 /etc/cron.d 中创建一个 cron 入口文件
对于您的示例,cloud-init 用户数据将类似于:
#cloud-config
write_files:
- owner: root:root
path: /etc/cron.d/your_cronjob
content: * */2 * * * [USER] du -s njain/
注意:您必须将 [USER] 替换为您希望运行 cronjob 的用户。
【讨论】:
content: "* */2 * * * [USER] du -s njain/\n"
我使用 crontab 而不是使用 cloud-init, crontab 可用于定期安排任务。 由于我不确定如何使用 cloud init 来执行此操作...我最终使用下面的 crontab 制作了一个图像模板
sudo crontab -e
【讨论】: