facebook twitter hatena line email

Jenkins/crontab形式に変更するスクリプト

提供: 初心者エンジニアの簡易メモ
2016年1月8日 (金) 01:16時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「<pre> <?php exec("ls jobs/config.xml | xargs grep '<command>'", $res_commands, $return_var); exec("ls jobs/: config.xml | xargs grep '<spec>'", $res_specs, $return_var)...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
<?php
exec("ls jobs/*/config.xml | xargs grep '<command>'", $res_commands, $return_var);
exec("ls jobs/*/config.xml | xargs grep '<spec>'", $res_specs, $return_var);
exec("ls jobs/*/config.xml | xargs grep '<numToKeep>'", $res_numToKeeps, $return_var);
$crons = array();
foreach ($res_commands as $key => $command) {
        list($hash, $dummy) = explode("/config.xml", $command);
        if (preg_match('!<command>(.+)</command>!', $command, $matches)) {
                $crons[$hash]['command'] = $matches[1];
        }
}
foreach ($res_specs as $key => $spec) {
        list($hash, $dummy) = explode("/config.xml", $spec);
        if (preg_match('!<spec>(.+)</spec>!', $spec, $matches)) {
                $crons[$hash]['spec'] = $matches[1];
        }
}
foreach ($res_numToKeeps as $key => $numToKeep) {
        list($hash, $dummy) = explode("/config.xml", $numToKeep);
        if (preg_match('!<numToKeep>(.+)</numToKeep>!', $numToKeep, $matches)) {
                $crons[$hash]['numToKeep'] = $matches[1];
        }
}
ksort($crons);
print nl2br(print_r($crons,1));
foreach ($crons as $cron) {
        echo sprintf("%s %s\n", $cron['spec'], $cron['command']);
}