amplidan Posté 23 Février 2006 Posté 23 Février 2006 Bonjour tout le monde, je dois récupérer chaque nuit une série de fichiers sur un serveur ftp distant. Seulement, wget ftp://login:pswd_AT_domain.com/dossieratelecharger il cherche dans le dossier de base défini domain.com/dossierdebase/dossieratélécharger Comment remonter d'un niveau? Merci pour votre aide!! Meilleures saluations dan
Dan Posté 23 Février 2006 Posté 23 Février 2006 Le problème vient probablement que cet utilisateur est cantonné dans son répertoire. C'est une sécurité (ou fonctionnalité) standard de ftp. Essaie avec: wget ftp://login:pswd@domain.com/../dossieratelecharger Et dis-nous si tu reçois un message d'erreur... Dan
amplidan Posté 27 Février 2006 Auteur Posté 27 Février 2006 Hello, merci pour ta réponse. L'utlilisateur est autorisé à remonter d'un niveau. (En tout cas, avec un programme ftp standart je n'ai pas de soucis à remonter, avec le même user.) Le message d'erreur est assez simple: [root_AT_SERVEUR root]# wget ftp://user:pswd_AT_www.domain.com/../dossieratelecharger/--12:06:35-- ftp://user:*password*@www.domain.com/dossieratelecharger => `dossieratelecharger'Résolution de www.domain.com... complété.Connexion vers www.domain.com[22.22.22.22]:21...connecté.Session débutant sous user...Session établie!==> SYST ... complété. ==> PWD ... complété.==> TYPE I ... complété. ==> CWD n'est pas nécessaire.==> PORT ... complété. ==> RETR dossieratelecharger ...Ficher " dossieratelecharger " inexistant.[root_AT_SERVEUR root]# J'ai fait aussi en ajoutant *.*: [root_AT_SERVEUR root]# wget ftp://user:pswd_AT_www.domain.com/../dossieratelecharger/*.*--12:09:05-- ftp://user:*password*@www.domain.com/dossieratelecharger/*.* => `.listing'Résolution de www.domain.com... complété.Connexion vers www.domain.com[22.22.22.22]:21...connecté.Session débutant sous user...Session établie!==> SYST ... complété. ==> PWD ... complété.==> TYPE I ... complété. ==> CWD /dossierdebase/dossieratelecharger ...Répertoire " dossieratelecharger " inexistant.unlink: Aucun fichier ou répertoire de ce type[root_AT_SERVEUR root]# Voilà... J'ai peut-être omis de préciser que c'est un serveur web hébergé chez un provider. Ce qui est appelé "dossierdebase" est le dossier où se trouvent les pages web accédées en http. Celui-ci est au même niveau que celui que je dois télécharger. Merci pour votre aide!!! dan
Dan Posté 27 Février 2006 Posté 27 Février 2006 Manifestement il ne veut pas le répertoire /../ vu qu'il n'affiche pas le bon répertoire une fois que wget s'exécute. Une solution est de faire un lien symbolique vers .. dans le répertoire courant. Dan
amplidan Posté 27 Février 2006 Auteur Posté 27 Février 2006 Il lien symbolique, ça ressemble à quoi? Désolé, mais je débute...
Dan Posté 27 Février 2006 Posté 27 Février 2006 Un lien symbolique est un peu comparable à un "raccourci" sous windows. Comme tu es sur hébergement mutualisé, tu devras le réaliser en php. Par exemple, avec la fonction symlink() Descriptionbool symlink ( string target, string link ) symlink() crée un lien symbolique pour l'objet target avec le nom de link. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Note : Cette fonction n'est pas implémentée sous Windows. Donc dans le répertoire de ton site web, si dossieratelecharger se trouve un niveau au dessus, tu peux créer un lien avec symlink("..","up"); Ensuite, pour monter d'un niveau, tu pourras appeler le répertoire "up/dossieratelecharger" au lieu de "../dossieratelecharger" Dan
amplidan Posté 27 Février 2006 Auteur Posté 27 Février 2006 (modifié) Ben je peux pas, puisque si je mets la fonction symlink, il va m'envoyer aussi les requêtes http en haut, non? du genre http://www.domaine.com/index.php Modifié 27 Février 2006 par amplidan
Dan Posté 27 Février 2006 Posté 27 Février 2006 Pas tant que tu n'appelle pas le lien "up" dans tes URLs
amplidan Posté 28 Février 2006 Auteur Posté 28 Février 2006 bon, j'ai essayé, ,mais là il me retourne "dossier "up" inexistant"... Et du coup, j'ai quand même testé le http://www.domain.com et il m'a retourné: Warning: symlink(): Permission denied in /home/abc/web/index.php on line 1 Je vais essayer de bidouiller un shell... Te tiens au courant...
Dan Posté 28 Février 2006 Posté 28 Février 2006 C'est que tu n'as pas les permissions de suivre les liens symboliques. C'est au niveau du paramétrage apache pour le protocole httpd. Cela se paramètre au niveau du AllowOverride dans le fichier httpd.conf.
amplidan Posté 28 Février 2006 Auteur Posté 28 Février 2006 ouais, ben j'ai pas accès à la config du serveur... Je vais poser la question au provider... mais en général ils sont pas très collaboratifs!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant