我们的想法是为许多主机配备一个可以管理cron的中央控制器。我查看了Schedule::Cron和Config::Crontab
但它们都没有提供远程功能。有一个看起来很有前途的,IPC :: PerlSSH,但不确定我是否理解如何使用IPC::PerlSSH
运行Config :: Crontab如果有人在这方面有一些经验,请告诉我。 Perl确实声称对Linux管理任务很有用,这似乎是编写脚本的首要任务之一。但只是在本地机器上做这件事,在进入它之后听起来并不好玩。
答案 0 :(得分:0)
IPC::PerlSSH
只是使用SSH远程执行Perl代码。问题是所有远程节点都必须安装Schedule::Cron
或Config::Crontab
模块才能使其正常工作。
最好使用SCP库(例如Net::SCP
或Net::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 -');