【问题标题】:backup a directory with a chef resource?用厨师资源备份目录?
【发布时间】:2015-06-13 23:43:16
【问题描述】:

我想知道是否有资源可以复制整个目录。我知道我总是可以使用 bash 资源并只执行“cp”,但我想知道是否有类似目录的“文件”资源。

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 岁了,所以我想知道这个案例是否有任何新资源。

谢谢。

【问题讨论】:

  • 请检查这个serverfault.com/questions/428970/…使用厨师处理递归复制目录结构
  • 对不起,也许我不清楚。我想将本地目录及其所有内容复制到其他位置

标签: chef-infra


【解决方案1】:

据我所知,没有其他办法。您要么必须像以前那样使用 bash 资源,要么通过 Ruby 块使用

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-01
      • 2016-12-30
      • 1970-01-01
      • 2017-03-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多