1 votes

fichier batch pour télécharger un fichier sur un site web

Cela fait des jours que j'essaie de télécharger un seul fichier dans un répertoire de mon site Web : je sais que je peux utiliser Filezilla mais je veux automatiser cette opération pour les personnes qui ne sont pas des techniciens. Il suffit de cliquer sur une icône qui exécute un fichier batch. Cela semble facile. J'ai cherché des exemples dans lesquels je pourrais simplement insérer mes paramètres, mais rien ne semble fonctionner. (Code ci-dessous)

FTP OPEN 72.167.xxx.xx
user Sunshine45
password Thunder34
cd /nwire/wp-contect/uploads/2015/01
put /Les/block7.jpg
Bye

Je sais que ça doit être quelque chose d'évident mais je ne le vois pas. Je veux insérer le fichier block7.jpg d'un répertoire de mon ordinateur dans le répertoire du site Web. Le résultat final sera la mise à jour automatique d'une image sur un site Web.

Merci pour toute suggestion et/ou aide.

0 votes

Je vous suggère d'essayer de taper votre script ligne par ligne dans une invite de commande pour voir si vous obtenez des erreurs ou des indications. Sinon, je vous recommande d'essayer avec telnet ou psftp (qui fait partie du paquet puTTy). Cela pourrait vous aider à résoudre votre problème.

0 votes

Entre systèmes de type unix, scp ou rsync serait un mécanisme de téléchargement facilement scriptable. Bien sûr, cela est moins utile si le client ou le serveur est sous Windows.

1voto

frooyo Points 658

La réponse de Jesper montre comment faire cela d'une manière qui correspond le plus à la façon dont la question a été rédigée.

Je propose une autre solution : n'utilisez pas le ftp. Le FTP n'offre pas de sécurité sur un réseau. Il peut également poser des problèmes avec certaines conceptions de réseau, notamment en cas d'utilisation de NAT ou d'un pare-feu. Ces problèmes n'existent probablement pas aujourd'hui si les téléchargements manuels par FTP fonctionnent bien, mais ils pourraient commencer à exister si quelqu'un apporte des modifications. Par exemple, des problèmes pourraient survenir si vous remplacez un modem DSL par un autre modem DSL offrant des fonctionnalités différentes.

La solution préférée est de ne pas utiliser le FTP. Ce que vous pouvez utiliser à la place peut être limité en fonction de ce que l'hébergeur propose comme option. Une excellente alternative est SFTP, implémentée avec PSFTP.EXE de PuTTY. Il peut y avoir une certaine ambiguïté car il existe de multiples variantes sécurisées de FTP, comme FTPS. SCP, implémenté avec PSCP de PuTTY, peut être un peu plus facile à utiliser dans certains cas, je suggère donc de commencer par là.

Pour ce faire, commencez par récupérer les fichiers sur le site de téléchargement de PuTTY. http://chiark.greenend.org.uk/~sgtatham/putty/download.html propose pscp.exe et le fichier similaire psftp.exe. Le fichier the.earth.li/~sgtatham/putty/latest/x86/ (pour la version 0.63, qui est la dernière version au moment où nous écrivons ces lignes) peut être le plus simple pour les personnes qui préfèrent être guidées à travers un processus d'installation facile en utilisant une interface graphique, tandis que le fichier putty.zip contient également putty.exe et pscp.exe et psftp.exe

La première version de votre fichier batch ressemblera à quelque chose comme ceci :

C:\Program Fichiers \PuTTY\PSCP.exe -l nom d'utilisateur C:\dir\stuff\to\upload *.* remoteSever :.

Notez le point à la fin, qui spécifie l'emplacement où les fichiers seront placés. Personnalisez-le si nécessaire.

Une fois que cela fonctionne bien, vous voudrez objecter que l'utilisateur doit taper un mot de passe. Oui, cela peut être résolu, mais c'est un peu plus de travail, mais c'est généralement une option pour les serveurs qui supportent l'utilisation de PSFTP ou PSCP. Vous voudrez probablement utiliser PuTTYGen pour créer une clé. Enregistrez la clé privée au format OpenSSH (et non au format *.PPK préféré de PuTTYGen). Cette clé privée devra être transférée sur le serveur. Utiliser PuTTY sera probablement un outil plus facile pour s'assurer que la clé privée est installée là où elle doit l'être. Une fois la clé privée manipulée, le fichier batch peut être modifié pour utiliser :

C:\Program Fichiers \PuTTY\PSCP.exe -l nom d'utilisateur -i C:\mykeys\mykey.pub C:\dir\stuff\to\upload *.* remoteSever :.

Si PSCP fonctionne bien, modernisez légèrement les choses en essayant PSFTP.exe à la place. Si cela fonctionne, c'est un peu préférable, car les auteurs d'OpenSSH notent que SFTP est un protocole plus développé que SCP.

Les alternatives consistent à utiliser des protocoles autres que FTP, SFTP ou SCP, comme HTTP(S). HTTP(S) peut probablement être automatisé en utilisant WGET avec --post-file=filename mais vous devrez trouver quelle URL votre hôte web utilise pour autoriser les téléchargements HTTP. En fait, cURL est préférable à WGET. Sa licence est plus souple, et je pense que le code est plus récent et plus simple également.

Il peut y avoir d'autres implémentations disponibles. WinSCP supporte un client en ligne de commande appelé winscp.com (et il y a aussi winscp.exe qui fournit l'interface graphique). Windows script Host peut utiliser HTTP en utilisant un objet qui est intégré dans Microsoft Windows, il n'y a donc pas besoin de télécharger un fichier exécutable. Encore une fois, je me réfère à la réponse de Jesper comme une réponse que vous pouvez trouver fonctionner assez bien pour vous, et qui utilise un logiciel qui est généralement pré-installé avec Windows, donc aucun logiciel supplémentaire ne doit être téléchargé. Je parie qu'il y a beaucoup plus d'options disponibles... vous avez beaucoup de choix parmi lesquels vous pouvez choisir.

0voto

Jesper Points 401

Voici comment procéder :

Mettez ces commandes dans un fichier séparé ; nommons-le ftpcommands.txt :

OPEN 72.167.xxx.xx
user Sunshine45
password Thunder34
cd /nwire/wp-contect/uploads/2015/01
put /Les/block7.jpg
Bye

Ensuite, cette commande devrait faire l'affaire (sous Windows, du moins) :

FTP -s ftpcommands.txt

Au fait : Si vous avez déclaré votre véritable nom d'utilisateur et votre mot de passe ici au grand jour, je vous recommande de les changer maintenant. Les autres informations que vous avez indiquées pourraient être suffisantes pour trouver l'adresse IP complète.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X