cloudinit如何在引导vm时安排定期任务

use*_*872 3 cloud-init

在使用Nova boot创建vm时,我正在为它提供一个用户数据脚本(cloud-init脚本).

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

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

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

cjd*_*iro 13

现在可能为时已晚,但通过cloud-init进行此操作的正确方法就是使用cloud-config write_files模块并在/etc/cron.d中创建一个cron条目文件.

对于您的示例,cloud-init userdata看起来像:

#cloud-config 

write_files:
  - owner: root:root
    path: /etc/cron.d/your_cronjob
    content: * */2 * * * [USER] du -s njain/
Run Code Online (Sandbox Code Playgroud)

注意:您必须替换[USER]为您要运行cronjob的用户.

  • 请注意,cron 文件必须包含尾随换行符,否则您将收到错误: `content: "* */2 * * * [USER] du -s njain/\n"` (2认同)

use*_*872 -13

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

sudo crontab -e 
Run Code Online (Sandbox Code Playgroud)