用厨师资源备份目录?

backup a directory with a chef resource?

我想知道是否有资源可以制作整个目录的副本。我知道我总是可以使用 bash 资源并只执行 'cp',但我想知道是否有目录的 'file' 资源的类似物。

bash资源解

bash "backup org folder" do
  code <<-EOL
  mkdir /opt/tmp/copy
  mv /opt/tmp/org/* /opt/tmp/copy

  EOL
end

我发现了这个:How to move/copy files locally with Chef 但是已经 2 岁了,所以我想知道这个案例是否有任何新资源。

谢谢。

据我所知没有其他方法。您必须像以前一样使用 bash 资源,或者通过 Ruby 块

我发现这样做的唯一方法是使用 bash 资源,但您需要注意一些事项。

 bash "backup testDir directory" do
  user "jhon"
  cwd "/opt/lnp"
  environment ({'HOME' => '/home/jhon', 'USER' => 'jhon'})
  code <<-EOL
  {
    mv /opt/lnp/testDir/* /opt/lnp/testDir.#{TODAY}
  }
  EOL
  not_if { Dir['/opt/lnp/testDir/*'].empty? }
end
  1. 如果您需要以特定用户身份进行复制,您需要初始化环境
  2. 为了避免文件夹为空时出现错误,您应该通过 not_if 块
  3. 检查目录是否为空