使用Chef资源备份目录?

时间:2015-04-08 20:11:07

标签: 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

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

感谢。

2 个答案:

答案 0 :(得分:1)

据我所知,别无他法。您必须使用bash资源,或者通过Ruby块

答案 1 :(得分:0)

我发现这样做的唯一方法是使用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块检查目录是否为空