Fwd: [Linux-bruxelles] outil le plus adapté: cron ou at?

Gildas COTOMALE gildas.cotomale at gmail.com
Mar 4 Oct 01:35:55 CEST 2005


Le 03/10/05, Aldo<blinuxman at tuxfamily.org> a écrit :
> On Mon, Oct 03, 2005 at 06:14:14PM +0200, Gildas COTOMALE wrote:
> > * si c'est périodique (et donc répétitif), il faut utiliser du cron
[...]
>
> Le problème est que cron doit être édité par crontab -e, or moi
> j'aimerais faier un script qui demande par ex. de quel poste, quel jour,
> heure, jusqu'à heure; et avec cron je ne vois pas comment je ferais ça
> vu qu'il faut faire un crontab -e; à moins qu'il existe un moyen que je
> connais pas pour arriver au but? sias pas.
>
Pour des trucs qui se repetent il n'est a priori pas besoin d'un
script pour les lancer... ; il faut les écrire une fois pour de bon...
:-) Ceci dit, "crontab -e" signifie "e"diter ma "crontab"le... et
cette édition se fait avec "vi" ou son clone... Si tu trouves le
fichier ainsi édité [c'est formidiable ce SE où tout est fichier], je
t'autorise à le scripter a coup de "echo ... >>" ;-)

[...]
>
> Oui si on se fais perso des trucs répétés ok, mais si tu as un script
> d'ecoute radio et que tu veux pouvoir programmer un enregistrement x tel
> jour à heure y jusqu'à heure z, tu vois un peu la difficulté.
>
> > * sinon, quand c'est ponctuel (une fois a une heure donnée), c'est
> > l'affaire de at
> > (ici, la synthaxe est
> > at horaire
> > commande_au_prompt
> > pas plus ni moins ; je m'en sert pour des alarmes sur rendez-vous parfois)
>
Je reste persuadé que "at" est ton ami ici. Je reformule ta phrase ainsi :
"J jour a H heure, enregistrer telle emission..." qui se traduit par
"at H J
at>enregistrer_programme...
at>^D" :-)

L'amie Léa propose un tutoriel interessant sur son site :
http://lea-linux.org/admin/admin_tools/automate.html

> Mais peux-tu aussi programmer un début d'action et une fin de la même
> action, ici comme ut l'imagines, un stream d'emission ça a un début et
> finit une demi heure ou heure plus tard, et j'ai l'impressio nque at ne
> sert qu'à lancer des truds ponctuels, mais pas précisément ce que je
> cherche.
>
Si, si c'est bien des trucs ponctuels. Et les actions me semblent
ponctuelles ici (sauf mauvaise compréhension de ma part).
1) "J jour a H heure, enregistrer telle emission..."
Une fois que c'est lancé, c'est comme le magnéto ; ça tourne jusqu'à
ce qu'il n'y ait plus de bande (d'espace disque ici) ou qu'on
l'arrête, d'où
2) "J jour a H+duree, stopper enregistrement..."

> > Dans ton cas, je crois bien que c'est "at" qui résoud ton problème.
>
> En tout cas depuis un script pour préprogrammer ça, oui j'ai
> l'impression que at fera mieux l'affaire; je vais plut^to me plonger
> dans at.
>
> > Il
> > faut bien penser à le faire en deux fois : une première fois pour
> > déclencher lenregistrement et une dernière fois pour l'arrêter...
>
> Beh oui mais je vois que tu peux définir un job, mais dans les exemples
> n'ai pas vu de job entre mmm et nnn heure; enfin je vais chercher plus
> d'exemples.
>
Justement, quand on dit Heure de façon générique, cela ne limite pas
pour autant la commande puisque tu peux y inclure aussi le jour de la
semaine ou une date ou encore rajouter une durée...

<cite src="man at"
href="http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/at.1.html">
At permet d'indiquer l'heure de lancement de manière assez complexe.

Il accepte des spécifications de la forme HHMM ou HH:MM pour exécuter
un travail à une heure donnée de la journée en cours (ou du lendemain
si l'heure mentionnée est déjà dépassée). On peut aussi lui fournir
l'un des arguments suivants : midnight (minuit), noon (midi), ou
teatime (l'heure du thé, soit 16 heures). Il est également possible de
fournir un suffixe du type AM (matin), ou PM (après-midi) avec une
heure sur un cadran de 12 heures. On peut indiquer le jour de
lancement, en précisant une date du type nom-du-mois (en anglais) jour
et éventuellement année, ou encore une date du type MMJJAA ou MM/JJ/AA
ou JJ.MM.AA. (NDT : C'est sympa de penser aux gens qui notent le jour
avant le mois :-)

On peut indiquer une heure de la forme now(maintenant) + nombre
d'unités, où les unités peuvent être minutes, hours, days (jours), ou
weeks (semaines) et on peut également demander à at de déclencher le
travail le jour même en ajoutant le suffixe today ou le lendemain en
ajoutant tomorrow.

Par exemple, pour lancer une commande à 16 heures, 3 jours plus tard,
on peut indiquer at 4pm + 3 days, pour lancer le travail à 10 heures
du matin le 31 Juillet, il faut invoquer at 10am Jul 31 et pour lancer
une commande à 1 heure du matin le lendemain, effectuez at 1am
tomorrow.

</cite>

Ton script je le vois se dessiner d'ici (assez aisement en sh) :
il demande la date (ou le jour) et l'heure de debut, la duree et le
canal a enregistrer, puis te genere les deux commandes... ;)

--
~$ at 6pm tuesday
at> echo "This is my e-mailed reminder." | mail -s "Reminder."
gildas.cotomale at gmail.com
^D




Plus d'informations sur la liste de diffusion Linux-bruxelles