【问题标题】:cloudinit how to schedule a periodic task while bootstrapping a vmcloudinit 如何在引导 vm 时安排定期任务
【发布时间】:2015-04-18 17:02:59
【问题描述】:

在使用 Nova boot 创建 vm 时,我为其提供了一个用户数据脚本 (云初始化脚本)。

我想知道的是,如何在该云初始化脚本中指定(或任何其他方式):- 安排 cron 作业每 2 小时运行一次

假设我想运行“du -s njain/” 每 2 小时查找一次目录的大小

我知道“runcmd”可以用来做一次......但我如何让它定期运行? du -s ../njain/

【问题讨论】:

    标签: cloud-init


    【解决方案1】:

    现在可能为时已晚,但通过 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 的用户。

    【讨论】:

    • 请注意,cron 文件必须包含尾随换行符,否则会报错:content: "* */2 * * * [USER] du -s njain/\n"
    【解决方案2】:

    我使用 crontab 而不是使用 cloud-init, crontab 可用于定期安排任务。 由于我不确定如何使用 cloud init 来执行此操作...我最终使用下面的 crontab 制作了一个图像模板

    sudo crontab -e 
    

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 2018-05-20
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      相关资源
      最近更新 更多