一千萬個為什麽

搜索

使用廚師資源對文件夾進行Zip/tar壓縮



有人可以幫助我如何為特定文件夾進行備份,還可以壓縮/ tar這些文件夾。實際上,我正在使用這個進行備份,但我想要一個壓縮的輸出:

bash "backup #{dir_name}" do
    user 'user'
    cwd "#{path}"
    code <<-EOH
      cp -rp #{dir_name} #{dest}/#{dir_name}_bkp_#{timestmp}
    EOH
end

是否有任何廚師資源壓縮/ tar特定的文件夾?

轉載註明原文: 使用廚師資源對文件夾進行Zip/tar壓縮

一共有 1 個回答:

那麽這不完全是關於廚師,你基本上是問如何使用 tar

The command to create an archive of a folder would be
tar -zcvf .tgz

在tar選項中:

  • z pass the resulting tar archive to gzip for compression
  • c instruct tar to compress (create the archive)
  • v tells tar to be verbose, so you know at which point it is working, it has a performance impact
  • f tells tar to output in a file or device

正確的廚師資源如下:

execute 'Backup #{dir_name}' do
  user 'user'
  command "tar -zcvf #{dest}/#{dir_name}_bkp_#{timestmp}.tgz #{dir_name}"
  live_stream :true # to see the progress during chef run, remove it and v in tar option if you don't care of it.
end

使用一個執行資源避免產生一個bash進程來運行tar,這是不需要的, execute 使用的 shell_out 類可以處理它。

被警告這不是冪等的,每個廚師都會重做這個備份命令,這可能不是你想要的。
為了更新jenkins(或別的東西)的平常維護,我會做一個手動備份,檢查一切正常,然後運行升級(最終通過廚師)。

我建議您在 https://learn.chef.io 上閱讀教程,並閱讀 https://docs.chef.io