我们有一个应用程序可以动态生成命名管道(类型p).我们想管理使用Puppet生成管道的目录的其他文件.有没有一种简单的方法告诉木偶跳过这种类型的文件.我可以忽略几个文件,如下:
file {'/var/opt/OV/share/tmp': ensure => directory,recurse => true,# enable recursive directory management owner => user,group => group,mode => 2775,ignore => 'ovcd.*',}
但正如我所说,我无法确定如何预先命名管道.我应该非常喜欢ignore =>输入p或类似的东西.这可以在Puppet中以标准方式完成吗?
我结束了:
exec { "set_perms_tmp": command => '/usr/bin/find /var/opt/OV/tmp ! \( -type s -o -type p \) -exec chmod 2775 {} \; -exec chown -R bin:bin /var/opt/OV/tmp/* {} \;' }
套接字和木偶也不是快乐.
解决方法
当某些东西没有内置到文件中时,我通常只是转向一个木偶exec声明.通过使用find来执行“管理文件”所指的任何命令,您应该能够实现目标.
查找可以排除命名管道:
-type c File is of type c: b block (buffered) special c character (unbuffered) special d directory p named pipe (FIFO) f regular file ....
所以类似于:
exec { "set_perms": command => "/usr/bin/find /var/opt/OV/share/tmp ! -type p -exec chmod 2775 {} \;" }