Difference between revisions of "Cron/Fr"

From TuxFamilyFAQ
Jump to navigationJump to search
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Template:Languages}}
 
= Cron =
 
= Cron =
 
 
{{Template:Languages}}
 
  
 
== Description ==
 
== Description ==
  
Le service "Cron Job", nommé d'après le célèbre [http://fr.wikipedia.org/wiki/Cron programme Unix éponyme], vous permet d'exécuter régulièrement un script de votre choix sur la plateforme TuxFamily. Ce script sera exécuté par votre utilisateur comme si vous étiez loggué en SSH. S'il écrit quoi que ce soit sur la sortie standard ou sur la sortie d'erreur, vous recevrez un email de cron@tuxfamily.net mentionnant :
+
Le service "Cron Job", nommé d'après le célèbre [http://fr.wikipedia.org/wiki/Cron programme Unix éponyme], vous permet d'exécuter régulièrement un script de votre choix sur la plateforme TuxFamily. Ce script sera exécuté par votre utilisateur comme si vous étiez logué en SSH. S'il écrit quoi que ce soit sur la sortie standard ou sur la sortie d'erreur, vous recevrez un courriel de cron@tuxfamily.net mentionnant :
 
*le code de retour du script ;
 
*le code de retour du script ;
 
*les variables d'environnement avec lesquelles il a été exécuté ;
 
*les variables d'environnement avec lesquelles il a été exécuté ;
 
*la sortie en question.
 
*la sortie en question.
  
== Langages supportés ==
+
== Langages pris en charge ==
  
 
Vous pouvez utiliser le langage de votre choix (Bash, KSH, Perl, Ruby, Python, PHP...) pour rédiger le script que vous souhaitez exécuter, le service s'attend simplement à ce qu'il soit exécutable (mais n'oubliez pas [http://fr.wikipedia.org/wiki/Shebang la ligne Shebang]).
 
Vous pouvez utiliser le langage de votre choix (Bash, KSH, Perl, Ruby, Python, PHP...) pour rédiger le script que vous souhaitez exécuter, le service s'attend simplement à ce qu'il soit exécutable (mais n'oubliez pas [http://fr.wikipedia.org/wiki/Shebang la ligne Shebang]).
Line 21: Line 19:
  
 
== Création ==
 
== Création ==
 +
 
Utilisez votre accès SSH pour créer/poser/tester le script de votre choix sur la plateforme TuxFamily. Plus exactement, vous devez poser votre script quelque part dans l'arborescence /home/votreprojet. Vous ne pouvez pas le mettre dans votre home.
 
Utilisez votre accès SSH pour créer/poser/tester le script de votre choix sur la plateforme TuxFamily. Plus exactement, vous devez poser votre script quelque part dans l'arborescence /home/votreprojet. Vous ne pouvez pas le mettre dans votre home.
  
Line 28: Line 27:
 
*est lisible et exécutable pour vous et les membres de votre groupe et n'est pas accessible en écriture pour les autres. Les permissions idéales pour un script sont 770.
 
*est lisible et exécutable pour vous et les membres de votre groupe et n'est pas accessible en écriture pour les autres. Les permissions idéales pour un script sont 770.
  
Ensuite, identifiez-vous sur le panel de TuxFamily, cliquez sur le projet concerné par l'ajout de votre script, repérez l'encart "Cron Jobs for myproject" et cliquez sur le lien "Créer".
+
Ensuite, identifiez-vous sur le panel de TuxFamily, cliquez sur le projet concerné par l'ajout de votre script, repérez l'encart "Jobs Cron pour monprojet" et cliquez sur le lien "Créer".
 
Vous devez alors remplir un formulaire comportant 4 champs :
 
Vous devez alors remplir un formulaire comportant 4 champs :
 
* le chemin absolu de votre script tel que vous le voyez avec votre accès SSH - ce chemin ne doit comporter que des slashs, des lettres (minuscules ou majuscules), des nombres, des underscores, des tirets ou des points. Oubliez les accolades, crochets, caractères accentués et autres espaces insécables...
 
* le chemin absolu de votre script tel que vous le voyez avec votre accès SSH - ce chemin ne doit comporter que des slashs, des lettres (minuscules ou majuscules), des nombres, des underscores, des tirets ou des points. Oubliez les accolades, crochets, caractères accentués et autres espaces insécables...
 
* l'intervalle d'exécution ; contrairement au programme Cron qui permet d'exécuter des commandes à des dates et heures précises, le service Cron Job exécutera votre commande toutes les `n' minutes, et c'est cette valeur que vous devez spécifier dans ce champ. Si vous rentrez une valeur inférieure à 15 minutes, la valeur finalement prise en compte sera... 15 minutes :)
 
* l'intervalle d'exécution ; contrairement au programme Cron qui permet d'exécuter des commandes à des dates et heures précises, le service Cron Job exécutera votre commande toutes les `n' minutes, et c'est cette valeur que vous devez spécifier dans ce champ. Si vous rentrez une valeur inférieure à 15 minutes, la valeur finalement prise en compte sera... 15 minutes :)
* l'adresse qui recevra les mails si le script génère une sortie
+
* l'adresse qui recevra les courriels si le script génère une sortie
 
* une description... en effet, les demandes de Cron Job passent également par la case Modération :)
 
* une description... en effet, les demandes de Cron Job passent également par la case Modération :)
  
Dernière recommandation : comme indiqué lorsque vous vous loggez en SSH :
+
Dernière recommandation : comme indiqué lorsque vous vous loguez en SSH :
   Soyez gentil... la viabilite de ce service depend de vous.
+
   Soyez gentil... la viabilité de ce service dépend de vous.
 
TuxFamily ne vous fournit pas ce service pour que vous mettiez ses machines à genoux à coup de batchs consommateurs de ressources. Réfléchissez à la puissance que demandera votre script avant de le planifier.
 
TuxFamily ne vous fournit pas ce service pour que vous mettiez ses machines à genoux à coup de batchs consommateurs de ressources. Réfléchissez à la puissance que demandera votre script avant de le planifier.
 
Sachez d'ailleurs qu'il tournera dans un environnement comportant certaines restrictions ; notamment, la priorité utilisée (voir `man nice') est la plus faible et la durée d'exécution maximale est de 1 heure - au-delà, votre script sera tué.
 
Sachez d'ailleurs qu'il tournera dans un environnement comportant certaines restrictions ; notamment, la priorité utilisée (voir `man nice') est la plus faible et la durée d'exécution maximale est de 1 heure - au-delà, votre script sera tué.
 +
 +
== Encart technique ==
 +
 +
Contrairement au Vixie cron, qui exécute des scripts à des moments prédéfinis, ce service utilise un ordonnanceur qui fonctionne en temps reparti. Techniquement cela nous permet de gérer de nombreux crons et de distribuer leurs exécutions au cours du temps afin de ne pas avoir des heures de bourre et surtout de pas avoir de bourrage de minuit. Aussi, l'intervalle de lancement spécifié n'est qu'un objectif, l'ordonnanceur fonctionne en "meilleur-effort" et peut retarder l’exécution des travaux.

Latest revision as of 21:31, 31 January 2017


Cron

Description

Le service "Cron Job", nommé d'après le célèbre programme Unix éponyme, vous permet d'exécuter régulièrement un script de votre choix sur la plateforme TuxFamily. Ce script sera exécuté par votre utilisateur comme si vous étiez logué en SSH. S'il écrit quoi que ce soit sur la sortie standard ou sur la sortie d'erreur, vous recevrez un courriel de cron@tuxfamily.net mentionnant :

  • le code de retour du script ;
  • les variables d'environnement avec lesquelles il a été exécuté ;
  • la sortie en question.

Langages pris en charge

Vous pouvez utiliser le langage de votre choix (Bash, KSH, Perl, Ruby, Python, PHP...) pour rédiger le script que vous souhaitez exécuter, le service s'attend simplement à ce qu'il soit exécutable (mais n'oubliez pas la ligne Shebang).

Dépendances

Création

Utilisez votre accès SSH pour créer/poser/tester le script de votre choix sur la plateforme TuxFamily. Plus exactement, vous devez poser votre script quelque part dans l'arborescence /home/votreprojet. Vous ne pouvez pas le mettre dans votre home.

Assurez-vous que le fichier ainsi créé :

  • appartient à votre utilisateur Unix (ou du moins à l'utilisateur qui fera la demande de job dans le panel) ;
  • appartient au groupe Unix correspondant à votre projet ;
  • est lisible et exécutable pour vous et les membres de votre groupe et n'est pas accessible en écriture pour les autres. Les permissions idéales pour un script sont 770.

Ensuite, identifiez-vous sur le panel de TuxFamily, cliquez sur le projet concerné par l'ajout de votre script, repérez l'encart "Jobs Cron pour monprojet" et cliquez sur le lien "Créer". Vous devez alors remplir un formulaire comportant 4 champs :

  • le chemin absolu de votre script tel que vous le voyez avec votre accès SSH - ce chemin ne doit comporter que des slashs, des lettres (minuscules ou majuscules), des nombres, des underscores, des tirets ou des points. Oubliez les accolades, crochets, caractères accentués et autres espaces insécables...
  • l'intervalle d'exécution ; contrairement au programme Cron qui permet d'exécuter des commandes à des dates et heures précises, le service Cron Job exécutera votre commande toutes les `n' minutes, et c'est cette valeur que vous devez spécifier dans ce champ. Si vous rentrez une valeur inférieure à 15 minutes, la valeur finalement prise en compte sera... 15 minutes :)
  • l'adresse qui recevra les courriels si le script génère une sortie
  • une description... en effet, les demandes de Cron Job passent également par la case Modération :)

Dernière recommandation : comme indiqué lorsque vous vous loguez en SSH :

 Soyez gentil... la viabilité de ce service dépend de vous.

TuxFamily ne vous fournit pas ce service pour que vous mettiez ses machines à genoux à coup de batchs consommateurs de ressources. Réfléchissez à la puissance que demandera votre script avant de le planifier. Sachez d'ailleurs qu'il tournera dans un environnement comportant certaines restrictions ; notamment, la priorité utilisée (voir `man nice') est la plus faible et la durée d'exécution maximale est de 1 heure - au-delà, votre script sera tué.

Encart technique

Contrairement au Vixie cron, qui exécute des scripts à des moments prédéfinis, ce service utilise un ordonnanceur qui fonctionne en temps reparti. Techniquement cela nous permet de gérer de nombreux crons et de distribuer leurs exécutions au cours du temps afin de ne pas avoir des heures de bourre et surtout de pas avoir de bourrage de minuit. Aussi, l'intervalle de lancement spécifié n'est qu'un objectif, l'ordonnanceur fonctionne en "meilleur-effort" et peut retarder l’exécution des travaux.