是否有方法/ Perl模块来控制远程主机上的CRON

时间:2012-11-14 03:26:19

标签: perl cron

我们的想法是为许多主机配备一个可以管理cron的中央控制器。我查看了Schedule::CronConfig::Crontab

但它们都没有提供远程功能。有一个看起来很有前途的,IPC :: PerlSSH,但不确定我是否理解如何使用IPC::PerlSSH

运行Config :: Crontab

如果有人在这方面有一些经验,请告诉我。 Perl确实声称对Linux管理任务很有用,这似乎是编写脚本的首要任务之一。但只是在本地机器上做这件事,在进入它之后听起来并不好玩。

2 个答案:

答案 0 :(得分:0)

IPC::PerlSSH只是使用SSH远程执行Perl代码。问题是所有远程节点都必​​须安装Schedule::CronConfig::Crontab模块才能使其正常工作。

最好使用SCP库(例如Net::SCPNet::SCP::Expect)简单地从远程节点带来感兴趣的crontab,使用Cron库在本地按摩它您可以选择,然后将按摩的crontab上传回远程节点。使用这种方法,远程节点甚至不需要安装Perl。

答案 1 :(得分:0)

# untested!
use Net::OpenSSH;
use Config::Crontab;

my $ssh = Net::OpenSSH->new($host, ...);
$ssh->system({stdout_file => 'crontab.out'}, 'crontab -l');
my $cc = Config::Crontab->new;
$cc->read('crontab.out');

# manipulate $cc crontab here:
# ...

$cc->write('crontab.out.1');
$ssh->system({stdin_file => 'crontab.out.1'}, 'crontab -');