2014-11-03 46 views
0

我正在写一个puppet类,写my.cnf如果指定的行不存在,它不工作。这里是代码:不能写入文件与exec

class mysql-server::configure { 
     exec { "enable_binlog": 
     path => "/usr/bin/:/usr/sbin/:/usr/local/bin:/bin/:/sbin", 
     command => "echo 'log_bin=/var/log/mysql/mysql-bin.log' >> /etc/mysql/my.cnf", 
     onlyif => "grep -c log_bin=/var/log/mysql/mysql-bin.log' /etc/mysql/my.cnf", 
} 
} 

回答

1

我相信你的onlyif查询是错误的。

虽然grep -c打印 0,如果没有匹配行被发现,它仍然返回1

如何

unless => 'grep -q log_bin=/var/log/mysql/mysql-bin.log /etc/mysql/my.cnf' 

请注意,你可能需要使用从stlib modulefile_line类型更有效地做同样的事情。