无法用exec写入文件

时间:2014-11-03 09:06:04

标签: mysql exec puppet sysadmin

我正在使用一个写入my.cnf的木偶类,如果指定的行不在那里,它就不起作用了。这是代码:

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 个答案:

答案 0 :(得分:1)

我认为您的onlyif查询错误。

如果找不到匹配的行,grep -c 打印为0,则仍会返回1.

怎么样

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

请注意,您可能希望使用stlib module中的file_line类型来更有效地执行相同操作。