1

アイデアは、多くのホスト用にcronを管理できる中央コントローラーを用意することです。Schedule::CronConfig::Crontabを見てきました

しかし、それらのどれもリモート機能を提供しません。有望に見えるもの、IPC :: PerlSSHがありますが、IPC::PerlSSHを使用してConfig::Crontabを実行する方法を理解しているかどうかはわかりませ

この分野での経験があれば教えてください。PerlはLinux管理タスクに適していると主張しており、これはスクリプト化する必要のあるトップタスクの1つのようです。しかし、ローカルマシンでそれを実行するだけでは、SSH接続した後は面白く聞こえません。

4

2 に答える 2

0

IPC::PerlSSHSSHを使用してPerlコードをリモートで実行するだけです。問題は、これが機能するためには、すべてのリモートノードにもSchedule::CronまたはConfig::Crontabモジュールがインストールされている必要があるということです。

SCPライブラリ(Net::SCPまたはNet::SCP::Expect)を使用して、リモートノードから目的のcrontabを取得し、選択したライブラリを使用してローカルでマッサージしてから、マッサージしたcrontabをリモートノードにCronアップロードすることをお勧めします。このアプローチでは、リモートノードに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 に答える