Quelques pistes cron pour débutants
24/11/2012
MAJ : Je viens de m'apercevoir que la commande wget -q qui est sensée appeler la page sans la télécharger, la télécharge (et donc encombre le répertoire /root chez moi).
il doit y avoir une commande pour la supprimer une fois téléchargée mais on peut aussi rajouter la commande --output-document=/répertoire de destination/page téléchargée au bout de la commande cron.
Les pages sont ainsi toutes stockées au même endroit et il y a moins de risque pour toutes les supprimer d'un coup).
Ce qui donne :
* * * * * root wget -q http://www.monsite.com/mapage.php --output-document=/répertoire/mapage.php
(n'oubliez pas d'utiliser "tabulation" pour chaque colonne de la commande cron).
Pour rappel, cron permet de lancer des actions à des heures et/ou des jours précis et de manière répétée.
Sur le Syno, vous pouvez y accéder via PuTTY avec la commande vi /etc/crontab
Si vous utilisez le service de cron gratuit chez Hiwit.org, vous retrouvez un formulaire permettant de rentrer les mêmes commandes.
Le cronjob
Une commande cron est constituée de paramètres d'heures et de jours, qui commande l'action, quelle action.
mn H jour du mois Mois jour de la semaine propriétaire action
- Les minutes sont comprises entre 0 et 59,
- les heures, entre 0 et 23,
- le jour dans le mois entre 1 et 31 (si vous mettez tous les 31 de tous les mois, l'action ne sera pas lancée les mois en 30 jours ni en février !),
- le mois, entre 1 et 12
- le jour dans la semaine, de 0 Ã 6. La semaine commence le dimanche avec 0.
- le propriétaire, root ou un utilisateur autorisé,
- action, ligne de code générant une action.
Au final, ça va ressembler à quelque chose comme ça :
0 10 * * * root cp -r -p /volume1/web/smpdoc/content /volume1/sauvegardes_web/svgsmpdoc
En création de cron sous vi, utilisez la tabulation pour passer d'une "colonne" à l'autre sinon, le cron ne s'exécutera pas.
Exemples de programmation
0 0 1 1 * va lancer l'action tous les 1er janvier à minuit, soit une fois par an
0 0 * * 0 va lancer l'action tous les dimanches à minuit, soit une fois par semaine
0 0 * * * va lancer l'action tous les jours à minuit
Plus technique :
23 0-16/2 * * * va lancer l'action toutes les 2 heures à la 23e minute, entre minuit et 16 heures.
43 23 1,8 * * va lancer l'action le 1er et le 8 du mois, à chaque fois à 23h43
Exemples de commandes
/volume1/scripts/sauvegarde.sh suffit pour lancer le script sh (bash) que vous avez créé pour sauvegarder vos sites web distants (commande pour Syno).
wget http://www.monsite.com/mapage.php télécharge la page php
wget -q http://www.monsite.com/mapage.php lit la page sans la télécharger. Utile pour lancer un script php distant.
Dans le cas du reminder, par exemple, la page sender.php doit être appelée par cron pour envoyer les mails programmés.
0 8 * * * root /usr/syno/mysql/bin/mysqldump --host=localhost --user=root --password=xxxxx fav > /volume1/sauvegardes_web/mysql/favoris.sql permet de sauvegarder une BDD du Syno sur le Syno
programmer une sauvegarde de site chez Free sans créer de script sh (pourtant c'est simple, un tuto est indiqué sur ce site !) - attention à changer les données login, mot de passe et dossier de destination.
lftp ftp://votrelogin:motdepasseftp@ftpperso.free.fr -e "mirror -e / /volume1/sauvegardes/dossierdesauvegardedulesite ; quit" pour sauver les fichiers à l'identique (nécessite d'avoir installé LFPT)
wget http://sql.free.fr/backup.php --post-data="login=votrelogin&password=votremotdepassesql&check=1&all=1" -O /volume1/sauvegardes/SQL/nomdelabase.sql.gz pour sauver la base de donnée.
Si vous devez lancer une page ou accéder à un répertoire protégé par un mot de passe (via htaccess), vous devez l'indiquer comme suit :
http://login:motdepasse@www.votresite.com
commentaires