CRON pour récupérer un fichier sur un FTP
arno
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
bonjour,
(pour information, j'utilise Mandrake 10.0 community)
voila mon probleme :
je dois récuperer toutes les heures un fichier texte sur un FTP pour faire un update d'une bdd à l'aide d'un script PHP.
ainsi je voudrais savoir comment:
-récuperer fichierbdd.txt sur ftp://serveurdistant.fr/ avec login et password
-le placer dans /var/www/html/site.
-éxécuter /var/www/html/site/miseajour.php de façon transparente (sans que ça se voit sur le bureau par exemple) sachant qu'il est protégé par un fichier .htaccess.
je pense qu'il faut utiliser les crons, mais je n'en connais que le nom :-)
et je ne connais que les commandes UNIX de base.
merci.
(pour information, j'utilise Mandrake 10.0 community)
voila mon probleme :
je dois récuperer toutes les heures un fichier texte sur un FTP pour faire un update d'une bdd à l'aide d'un script PHP.
ainsi je voudrais savoir comment:
-récuperer fichierbdd.txt sur ftp://serveurdistant.fr/ avec login et password
-le placer dans /var/www/html/site.
-éxécuter /var/www/html/site/miseajour.php de façon transparente (sans que ça se voit sur le bureau par exemple) sachant qu'il est protégé par un fichier .htaccess.
je pense qu'il faut utiliser les crons, mais je n'en connais que le nom :-)
et je ne connais que les commandes UNIX de base.
merci.
1 réponse
-
Salut arno,
La réponse courte est ouvre une fenêtre de terminal et consulte la documentation des commandes suivantes :man chmod man wget man php man cron man crontab man vi (éventuellement)
Mais, bon.. hmmmmffffffff
1.
Avec ton éditeur favori (Vi, bien sûr :P), tu crées ce fichier, que tu nommes, par exemple ftpfichierbdd.sh
#!/bin/sh /usr/local/bin/wget ftp://monlogin:monpassword@serveurdistant.fr/fichierbdd.txt /var/www/html/site /usr/local/bin/php -f /var/www/html/site/miseajour.php
Le chemin d'accès à wget et à php peut être différent sur ta machine. Lance un "which wget" et un "which php" pour utiliser le bon pour toi.
Tu le rends exécutable la l'utilisateur seulementchmod 700 ftpfichierbdd.sh
et tu le place dans le répertoire de ton choix.
2.
Tu vérifies que ton script marche.
3.
Tu crées une entrée crontab sous cet utilisateur en lançantcrontab -e
et tu y places la commande suivante :0 * * * * /chemin/vers/ftpfichierbdd.sh
Si tu tombes sur l'éditeur de textes Vi, tu tapes "i" pour passer en mode insertion. Tape la ligne ci-avant. Tape Echap-:-wq-Entrée pour terminer l'insertion, sauvegarder et quitter.
4.
Lancer wget avec le login et mot de passe fait que quiconque liste les processus lancés sur ta machine (avec "ps") peut apercevoir ces informations. Ce n'est donc pas la méthode la plus sûre, si tu partages ta machine avec d'autres utilisateurs connectés un peu curieux.
Alternativement, tu peux placer les infos d'authentification dans un fichier ".wgetrc" à la racine du répertoire /home de ton user.
Dal