2014-11-03 42 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類型更有效地做同樣的事情。