【发布时间】:2016-08-10 22:27:39
【问题描述】:
我有 2 个 Release.ini 文件:
- 我正在从存储在 /CodeRootFolder/tmp 位置的 S3 下载一个
- 和其他在 /DocRootDir 位置
我想验证下载的(即/CodeRootFolder/tmp/Release.ini)文件是否有变化,如果有变化,则通过puppet exec执行rsync命令,如下所示。
错误是如果有变化,它不执行,似乎 diff 返回 1。
exec {'Actual code deployment with rsync':
command => "rsync ${myclass::CodeRootFolder}/tmp/* ${myclass::DocRootDir}/)",
#cwd => "${myclass::CodeRootFolder}",
onlyif => "diff --changed-group-format='%<' --unchanged-group-format='' ${myclass::CodeRootFolder}/tmp/Release.ini ${myclass::DocRootDir}/Release.ini",
path => ['/opt/rh/php55/root/usr/bin','/opt/rh/php55/root/usr/sbin','/usr/local/sbin','/usr/local/bin', '/sbin/' ,'/bin/', '/usr/sbin/','/usr/bin/'],
}
我的问题有没有好的解决方案。
提前致谢
【问题讨论】:
标签: linux bash exec diff puppet