Periodic daily et script sh ?

Alkaplop

Membre enregistré
16 Novembre 2008
3
0
Bonjour à tous,

Voila, je suis passé récemment sous léopard et je viens de m'apercevoir que crontab n'existe plus.
Après quelques recherches sur le web. J'ai pris connaissance de l'outil periodic daily, weekly, monthly et des modifications pouvant être apportés dans ces fichiers plist. Cela dit, il a un point qui me tracasse.

Avec crontab, nous pouvions executer n'importe quelle commandes/scripts toutes les x secondes, minutes, heures, jours, etc.... Mais quand est il maintenant??
A 1ere vu, periodic daily ne s'execute qu'une seul fois par jour à une heure précise ou bien, peut-etre lancé manuellement or j'aimerais pouvoir lancer automatiquement un script sh (bash) toutes les heures.

Est ce toujours possible ? Comment peut on modifier periodic daily de manière à ce que son execution soit plus frequente et comment lui faire comprendre qu'il faut executer un script sh exterieur au periodic daily?

Merci d'avance pour vos réponses.

Cordialement
Alkaplop
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 947
3 162
cron n'est pas remplacé par les scripts périodiques.
Ces derniers étaient présents depuis bien longtemps.

cron est, par ailleurs, toujours présent (peut-être que cela fait partie de la certification UNIX).

Reste que, pour Apple, les tâches cron sont intégrées à launchd, l'ordonnanceur généraliste (et open source) de l'OS.
 

Alkaplop

Membre enregistré
16 Novembre 2008
3
0
Reste que, pour Apple, les tâches cron sont intégrées à launchd, l'ordonnanceur généraliste (et open source) de l'OS.
Ah ok :)

J'ai trouvé quelques liens concernant Launchd notamment celui ci et celui la
J'ai essayé toutes les manip indiqué sur ces 2 sites mais rien n'y fait. Aucun script se lance.

voici mon fichier plist:
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>no.shutdown.hdd</string>
        <key>UserName</key>
        <string>Alka</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/no_shutdown_hdd.sh</string>
        </array>
	<key>StartInterval</key>
        <integer>300</integer>
</dict>
</plist>

Le fichier no.shutdown.hdd.plist est enregistré dans /Library/LaunchAgents et le script, comme indiqué, dans /usr/bin.

J'ai lancé ma commande avec
Bloc de code:
launchctl load /Library/LaunchAgents/no.shutdown.hdd.plist

Pas de message d'erreur et aucun backup n'est fait... De plus, ayant eu peur d'une erreur dans mon sh, je l'ai remplacé par une simple cmd (df -h > ~/Desktop/tmp.txt) mais rien n'y change.

Edit: Dans mon /var/log/system.log je ne trouve aucune trace de mon no.shutdown.hdd.plist. A croire quil ne se lance pas et meme s'il n'y pas d'erreur, le script sh ne s'execute pas puisque je n'ai aucun tmp.txt sur mon bureau.... :(

Si tu pouvais m'aider a y voir plus clair ;)

Alkaplop
 

alaincha

Membre expert
Club MacG
6 Août 2006
2 726
67
Bonjour,

Et si tu expliquais au simple lecteur (presque amateur) que je suis pourquoi tu veux impérativement passer par des procédures hypothétiques qui n'existent plus depuis quelque temps car elles étaient devenues obsolètes.

Quel bénéfice souhaites tu en tirer ?
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 947
3 162
Pas tout à fait d'accord : il en est à utiliser launchctl sans trop y parvenir, donc semble avoir mis de côté cron.

Reste que cron n'est pas en soi obsolète sur OS X, sinon Apple le signalerait comme tel dans la page de manuel. Laquelle précise :
Mister Apple a dit:
The cron utility is launched by launchd(8) when it sees the existence of /etc/crontab or files in /usr/lib/cron/tabs. There should be no need to start it manually. See /System/Library/LaunchDaemons/com.vix.cron.plist for details.
Donc il reste parfaitement utilisable.
 

supermoquette

Membre vénérable
Club MacG
13 Mai 2002
29 434
3 495
il faut un

sudo launchctl load -w Library/LaunchAgents/no.shutdown.hdd.plist

pour lancer un launchd job depuis /Library/LaunchAgents, sinon tu le mets dans ~/Library/LaunchAgents avec

launchctl load -w Library/LaunchAgents/no.shutdown.hdd.plist

pour contrôler s'il est lancé

(sudo) launchctl list | grep no.shutdown.hdd

ah aussi je trouve un peu cavalier de placerun scipt dans /usr/bin, au moins dans /usr/local/bin pou rle distinguer de l'installation par défaut, voire dans ~/bin

Essaie aussi de mettre
<key>UserName</key>
<string>alka</string>

au lieu de
<key>UserName</key>
<string>Alka</string>
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 947
3 162
Une précision : l'option '-w' permet d'activer/désactiver le service (load -w écrit l'entrée "Enabled" tandis que unload -w écrit l'entrée "Disabled").