2016-08-23 94 views
0

当我执行下面的配方时会收到错误消息。我的要求是,只需要在源文件夹中有文件夹时,只需将某些文件夹(日志,tmp)从源文件“移动”到某个其他位置,即使不需要移动并成功执行我的资源。每当使用源文件夹(log,tmp)首次执行下面的资源时,它将成功执行,但是当第二次运行相同的资源时,它会抛出错误消息,因为源中没有文件夹(log,tmp)。我需要成功执行即使文件夹(日志tmp)不在源中。你能分享你的这个需求吗?厨师的“mv”资源

下面是我的资源:

execute "move files" do 
command "mv #{node["source"]}/log tmp #{node["dest"]}" 
cwd node["direct"] 
only_if do File.exist?(node['source']) end 
end 

错误消息:

MV:无法统计âlogâ:没有这样的文件或目录

MV:无法统计âtmpâ:没有这样的文件或目录

+0

你是说你想摆脱错误信息?忽略错误呢? –

+1

很多例子在这里http://stackoverflow.com/questions/19221252/how-to-move-copy-files-locally-with-chef – Techidiot

+0

我可以建议你考虑方舟食谱?它在上面提供的链接中被列为解决方案。它旨在支持源代码安装,并且非常灵活,例如,它有条件地安装,执行安全校验和,并且还支持标准的“制作”工作流程。值得检查,这里是链接:https://supermarket.chef.io/cookbooks/ark。如果你提供更多的细节,那么也许有人可以帮助一个例子。我假设这个问题已经解决了。 –

回答

1

移动文件不是一般意义上的聚合操作,所以不建议这样做。更好的方法是使用link资源来创建符号链接,或者只是以他们应该已经在的格式部署东西(但可能需要在生成端进行更改)。