Mysql 无法使用exec写入文件

Mysql 无法使用exec写入文件,mysql,exec,puppet,sysadmin,Mysql,Exec,Puppet,Sysadmin,我正在使用一个puppet类,如果指定的行不存在,它会写入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'

我正在使用一个puppet类,如果指定的行不存在,它会写入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",
}
}

我相信您的
onlyif
查询是错误的

grep-c
打印一个0时,如果没有找到匹配的行,它仍然返回1

怎么样

unless => 'grep -q log_bin=/var/log/mysql/mysql-bin.log /etc/mysql/my.cnf'
请注意,您可能希望使用中的
文件\u行
类型来更有效地执行相同的操作