1

这个想法是有一个中央控制器,可以管理许多主机的 cron。我看过Schedule::CronConfig::Crontab

但是它们都没有提供远程功能。有一个看起来很有希望,IPC::PerlSSH,但不确定我是否了解如何使用IPC::PerlSSH运行 Config::Crontab

如果有人在这方面有经验,请告诉我。Perl 确实声称对 Linux 管理任务有好处,这似乎是最需要编写脚本的任务之一。但是只在本地机器上做,在 ssh'ng 进入它之后听起来并不有趣。

4

2 回答 2

0

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

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

于 2012-11-14T03:41:11.633 回答
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 -');
于 2012-11-15T11:08:06.117 回答