Je veux copier tous les fichiers et dossiers d'un hôte à un autre. Les fichiers de l'ancien hôte sont situés dans / var / www / html. Je n'ai qu'un accès FTP à ce serveur et je ne peux pas traiter tous les fichiers. Une connexion régulière à l'ancien hôte via FTP m'amène au dossier / home / admin.
J'ai essayé d'exécuter la commande suivante sur mon nouveau serveur:
wget -r ftp://username:[email protected]
Mais tout ce que je reçois est un fichier index.html composé.
Quelle est la bonne syntaxe pour utiliser wget de manière récursive sur FTP?
Réponses:
Essayer
-m
de--mirror
la source
--ask-password
de ne pas conserver le mot de passehistory
.wget -m ftp://username:[email protected]/mydir/
Vous avez raison, vous avez juste besoin d'un * à la fin:
Pour les serveurs partagés, vous pouvez utiliser comme ceci:
Parce que la plupart des serveurs partagés ont ftp-username quelque chose comme username @ hostname, la première commande wget ne fonctionne pas et la deuxième commande fonctionne correctement.
la source
-m
soit-r -l inf
parce que -r a une profondeur de récursivité de 5. Voir gnu.org/software/wget/manual/…Outre wget, vous pouvez également utiliser lftp en mode script. La commande suivante va mettre en miroir le contenu d'un répertoire FTP distant donné dans le répertoire local donné, et il peut être placé dans le travail cron:
Il gère automatiquement la récursivité dans les répertoires et permet de spécifier le répertoire de départ de la source distante à partir duquel télécharger les données.
la source
Vous pouvez utiliser 'curlftpfs - monter un hôte ftp en tant que répertoire local' et, une fois monté, vous pouvez utiliser des outils de fichier normaux tels que 'cp -r'.
la source
curlftpfs
a de gros problèmes de performance pour le moment, sauf si vous rétrogradezlibcurl3-gnutls
Vérifiez la commande wget ci-dessous pour télécharger les données à partir de FTP de manière récursive.
-r
: Est à télécharger récursivement.-np
: Est pour aucun parent ascendant.-nH
: Permet de désactiver la création d'un répertoire ayant le même nom que l'URL, c.-à-d. Abc.xyz.com--cut-dirs
: Permet d'ignorer le nombre de répertoires parents. La valeur de cette option sera différente pour votre commande.Vous pouvez vérifier en exécutant la commande ci-dessus.
la source
Utilisez -m plutôt que -r, en raison de la profondeur de récursivité.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
la source
Devrait travailler essayer:
la source
Utilisation:
et il va refléter tous les fichiers et dossiers.
la source
C'est la bonne syntaxe. Vous ne savez pas pourquoi vous n'obtenez pas les résultats escomptés.
Comme toujours, il y a plus d'une façon de le faire. Essayez ncftp, en particulier ncftpget
la source
Je peux comprendre si vous essayez de transférer cela dans cron ou quelque chose du genre, mais pourquoi ne pas simplement utiliser ftp sur le serveur avec votre client normal et votre cible *? Cela pourrait être un chemin plus rapide vers le succès.
la source
Je pense que cela fonctionnera dans votre cas:
la source
Je suis tombé sur un hébergement Windows avec le nom d'utilisateur brinkster / nom d'utilisateur, donc wget génère une erreur si vous utilisez la syntaxe:
Pour dépasser cela, utilisez
J'ai dû faire face à cela avec Windows hosting @ brinkster.
la source
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
fera le travail ou vous pouvez ajouter * au lieu de nom de fichier entring: fait penser à wget à un port invalide dans votre cas.la source