1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| <?php
$debut = '#Les lignes suivantes sont gerees automatiquement via un script PHP. - Merci de ne pas editer manuellement';
$fin = '#Les lignes suivantes ne sont plus gerees automatiquement';
function ajouteScript($chpHeure, $chpMinute, $chpJourMois, $chpJourSemaine, $chpMois, $chpCommande, $chpCommentaire)
{
$oldCrontab = Array(); /* pour chaque cellule une ligne du crontab actuel */
$newCrontab = Array(); /* pour chaque cellule une ligne du nouveau crontab */
$isSection = false;
$maxNb = 0; /* le plus grand numéro de script trouvé */
exec('crontab -l', $oldCrontab); /* on récupère l'ancienne crontab dans $oldCrontab */
foreach($oldCrontab as $index => $ligne) /* copie $oldCrontab dans $newCrontab et ajoute le nouveau script */
{
if ($isSection == true) /* on est dans la section gérée automatiquement */
{
$motsLigne = explode(' ', $ligne);
if ($motsLigne[0] == '#' && $motsLigne[1] > $maxNb) /* si on trouve un numéro plus grand */
{
$maxNb = $motsLigne[1];
}
}
if ($ligne == $debut) { $isSection = true; }
if ($ligne == $fin) /* on est arrivé à la fin, on rajoute le nouveau script */
{
$id = $maxNb + 1;
$newCrontab[] = '# '.$id.' : '.$chpCommentaire;
$newCrontab[] = $chpMinute.' '.$chpHeure.' '.$chpJourMois.' '.
$chpMois.' '.$chpJourSemaine.' '.$chpCommande;
}
$newCrontab[] = $ligne; /* copie $oldCrontab, ligne après ligne */
}
if ($isSection == false) /* s'il n'y a pas de section gérée par le script */
{ /* on l'ajoute maintenant */
$id = 1;
$newCrontab[] = $debut;
$newCrontab[] = '# 1 : '.$chpCommentaire;
$newCrontab[] = $chpMinute.' '.$chpHeure.' '.$chpJourMois.' '.$chpMois.' '.$chpJourSemaine.' '.$chpCommande;
$newCrontab[] = $fin;
}
$f = fopen('/tmp', 'w'); /* on crée le fichier temporaire */
fwrite($f, implode('\n', $newCrontab));
fclose($f);
exec('crontab /tmp'); /* on le soumet comme crontab */
return $id;
}
ajouteScript('*','*/5','*','*','*','lynx -dump http://site.org/cron.php','mon Cron'); |
Partager