我有一个备份脚本,它将最新的备份时间戳存储在像这样的 url 中 http://myaws.com/LATEST, ,该文件仅包含表示时间戳的字符串,例如“201402230400”。相同的脚本将真实的备份存储在 http://myaws.com/201402230400/mycompany-dump-201402230400.gzhttp://myaws.com/201402230400/mycompany-data-201402230400.tgz.

问题是我正在创建一个木偶类,它将读取这些 url 并根据最新时间戳值恢复新虚拟机中的文件。我缺少的是如何从文件中的内容存储构建 url?

  define download ($uri, $timeout = 300) {
    exec {
      "download $uri":
      path    => '/usr/bin',
      command => "wget --timestamping -q '$uri' -O $name",
      creates => $name,
      timeout => $timeout
    }
  }

  download {
    "$latest_file":
    uri => "http://myaws.com/LATEST",
    timeout => 900;
  }

  download {
    "$data_file":
    uri => "http://myaws.com/file($latest_file)/mycompany-data-file($latest_file).tgz",
    timeout => 900;
  }

电话 文件($latest_file) 没有按预期工作。我做错了什么?

有帮助吗?

解决方案

我想你会想用 generate 获取最新时间戳而不是 exec 自定义类型内部。也许是这样的(请注意,您需要更改 uri 也可用于下载):

$latest_file = generate(
    '/usr/bin/curl',
    '-s',
    'http://myaws.com/LATEST'
)

define download ($uri, $timeout = 300) {
  exec {
    "download $uri":
      path    => '/usr/bin',
      command => "wget --timestamping -q '$uri' -O $name",
      creates => $name,
      timeout => $timeout
  }
}
download {
  "$data_file":
    uri => "http://myaws.com/${latest_file}/mycompany-data-${latest_file}.tgz",
    timeout => 900;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top