Programmer des
taches avec
CRONTAB

 

 

Chez 1and1 et certainement chez de nombreux hébergeurs :
Avec un accès à votre espace web linux , via SSH, vous pouvez créer des tâches CRON.

Bien vérifier que la tache qui sera programmée fonctionne sans bug .

 

 

Mode d' emploi :

Télécharger Putty ,

Renseigner Host Name puis cliquer sur "open" ; le port 22 doit *être déjà renseigné.

 

putty

 

Entrer le login : chez 1and1 c' est le même que pour les transferts FTP ( le mot de passe également)

cron

Entrer le mot de passe : il n' est pas affiché , une fois entré taper ENTER

cron

 

..........................vous avez désormais la main : (Server):u63xxxxxx: - >
Pour connaitre le chemin complet de la racine de votre site:
Taper pwd (comme ci-dessous )

(Server):u63xxxxxx: - >pwd

 

Réponse:

/kunden/homepages/34/d36xxxxxxx/htdocs

 

La commande crontab et les paramètres les plus utilisés :

 

 

• crontab -l ,affiche les tâches CRON
• crontab -e , èdite le fichier des tâches CRON
• crontab -r , Supprime l'ensemble des tâches

 

 

Ajouter une tâche CRON : taper « crontab –e » ,

(Server):u63xxxxxx: - >crontab -e

 

Taper « i » pour insérer une nouvelle tâche CRON
Insert s' affiche en fin de ligne :

cron

Descendre avec le curseur en fin de ligne ( avant affichage INSERT ):

 

cron

 

Explication de la ligne : : : ..............0 * * * * php6 /kunden/homepages/34/XXXXXXXXX/htdocs/meteo/cron_cyclones.php > /kunden/homepages/34/XXXXXXXXX/htdocs/meteo/tmp_cron/file.log 2>&1

 

 

0 * * * * correspond à la fréquence d'exécution du script : toutes les heures
php6 : Il suffit , contrairement à php 5.2.17 où il fallait indiquer le chemin «/usr/local/bin/php5″, d'indiquer "php6" .
/kunden/homepages/34/d36xxxxxxx/htdocs : chemin complet de la racine du site ( voir plus haut )
/meteo/cron_cyclones.php : /réperrtoire/programme à lancer
> /kunden/homepages/34/XXXXXXXXX/htdocs/meteo/tmp_cron/file.log 2>&1 : résultat du déroulement de la tache dans le fichier /meteo/tmp_cron/file.log

 

 

MAILTO= permet de définir l'adresse émail qui recevra les notifications après l'exécution des tâches CRON qui échouent

 

 

MAILTO = www@yahoo.com vers le haut d'une crontab provoquera l'envoi d' une notification vers cet email.
Pour stopper l'envoi des notifications, il suffit d'utiliser une adresse vide MAILTO=""

 

MAILTO=michel.xxxxxxxx@orange.fr

 

 

Pour quitter le mode insertion, la commande est "echap" ou "ESC" puis :

Pour quitter l'édition du fichier la commande est 2 points " : "
Pour quitter en enregistrant les modifications la commande est "wq" ( "w" pour écrire sans enregistrer)

cron

 

Retour à la ligne de commande (shell) :

cron

 

Réponse : crontab: installing new crontab voir l'image ci-dessus

fréquence d'exécution du script

 

 

Programmer le temps:

* * * * *
( minute, heure , jour du mois , mois , jour de la semaine)

 

 

- minutes : (0-59)
- heures :(0-23)
- jour du mois : (1-31)
- mois : (1-12)
- jour de la semaine (0-6) , 0 = dimanche, 1 = lundi,.....

des exemples :

- * : à chaque unité de temps
- 10 : à chaque 10 minutes , ...10 heures...)
- 5,10 : à chaque 5 et 10 unités de temps
- 5-10 : les unités de temps compris entre 5 et 10 (5,6,7,8,9,10).
- une fois par an "0 0 1 1 *"
- une fois par mois "0 0 1 * *"
- une fois par semaine "0 0 * * 0"
- une fois par jour "0 0 * * *"
- une fois par heure "0 * * * *"

 

 

 

Sauvegarde d' une base de données mysql

ci dessous le programme en PHP qui sauvegarde les bases de données de l' exemple CRONTAB:

 

 

<?php
// Personnalisez ici vos données d'accès
$host= 'dbxxxxxxxxxxxxxx'; //adresse hébergeur ex: dbxxxxxxxx.db.1and1.com
$user= 'xxxxxxxxxxxxxx'; // nom utilisateur
$pass= 'xxxxxx';// mot passe
$db= 'xxxxxxxxxxx';// nom base de données
$tb=$db."nom_table à exclure";// $tb1 ,.... valeur de chaque base à exclure si nécessaire
// Création de la sauvegarde dans un fichier zip
// ajouter autant de " --ignore-table=%s " et de "$tbx" qu' il y a de tables à exclure
// ou le supprimer ainsi que "$tb" si toutes les tables sont à sauvegarder
system(sprintf(
'mysqldump --opt -h%s -u%s -p"%s" %s --ignore-table=%s | gzip > %s/dump.%s.sql.gz',
$host,
$user,
$pass,
$db,
$tb,//table à ne pas sauvegarder ,supprimer ou ajouter si necessaire $tb1 , $tb2,.........
getenv('DOCUMENT_ROOT'),
$db
));
echo 'Sauvegarde OK.............'.$db;
?>

Résultat:

 

 

crée le 29/08/2014

05/03 responsive mobile

page:1104