linux – 仅当目录存在时才创建文件?
发布时间:2020-12-14 03:00:29 所属栏目:Linux 来源:网络整理
导读:如果目录存在,我正在尝试编写创建文件的模块,否则它不应该做任何事情. class puppetmodule{ exec { 'chk_dir_exists': command = 'test -d /usr/dir1',path = ["/usr/bin","/usr/sbin","/bin"],} - file {'usr/dir1/test.txt': ensure = 'file',owner = 'roo
如果目录存在,我正在尝试编写创建文件的模块,否则它不应该做任何事情.
class puppetmodule{ exec { 'chk_dir_exists': command => 'test -d /usr/dir1',path => ["/usr/bin","/usr/sbin","/bin"],} -> file {'usr/dir1/test.txt': ensure => 'file',owner => 'root',group => 'root',mode => '0750',} } 下面是它抛出的错误.请就此向我提出建议.
解决方法
这样的东西会起作用:
$dir = "/usr/dir1" exec { "chk_${dir}_exist": command => "true",onlyif => "test -d ${dir}" } file {"${dir}/test.txt": ensure => file,require => Exec["chk_${dir}_exist"],} 说明: onlyif => “test -d ${dir}” 表示仅在test -d的输出为true时才创建Exec资源. require =>执行[ “CHK _ ${DIR} _exist”] 表示仅在Exec资源存在时才创建文件资源. 如果该目录不存在,则puppet运行将生成错误,指示它无法创建File资源,因为Exec资源不存在.这是预期的,可以安全地忽略,因为其余的木偶目录仍然被应用. 如果该目录存在,则创建并应用文件资源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |