我想将1个cron作业添加到每5分钟运行一次的机器上,因为我正在使用此清单:
class cron_job{
file{"puppet_ls":
path => "/puppet/pls.sh",
ensure => present,
content => "#!/bin/sh\necho \"Hello World\"\nls -ltr /etc/puppet > /puppet/dump.txt"
}
file { "my_ls.cron":
path => "/etc/cron.d/my_ls.cron",
ensure => present,
owner => "root",
group => "root",
mode => 0644,
require => File["puppet_ls"],
content => "*/1 * * * * /puppet/pls.sh\n";
}
}
所以这个清单做了两件事,
但我没有在 / puppet / 中找到 dump.txt 文件 此外,如果我运行 sh /puppet/pls.sh ,它会完美运行并生成转储。
我无法理解故障在哪里.. :(
请说清楚..
由于 ANKUR
答案 0 :(得分:7)
您应该使用内置于puppet的cron
type。
file { '/puppet/pls.sh':
content => "#!/bin/sh\necho \"Hello World\"\nls -ltr /etc/puppet > /puppet/dump.txt",
mode => 0755,
}
cron { 'helloworld':
command => "/puppet/pls.sh",
user => root,
hour => '*',
minute => '*/5',
require => File['/puppet/pls.sh']
}
........
答案 1 :(得分:3)
Crontab文件放在/etc/cron.d或其他cron中。 / etc下的目录不能在其名称中包含句点。
这是一个已知错误:https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
从文件名中删除句点(my_ls.cron)可以解决问题。