用chef资源备份一个目录



我想知道是否有资源可以复制整个目录。我知道我总是可以使用bash资源,只做一个"cp",但我想知道是否有类似于目录的"file"资源。

bash资源解决方案

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

我发现了这个:如何与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. 如果文件夹为空,为了避免出现错误,您应该通过notif块检查目录是否为空

最新更新