Help - Search - Member List - Calendar
Full Version: [dos] Pourquoi C'est Pas Unix...
OpenSpace > Zone Ordinateurs > Programmation
PoP
Pouet.

Je suis en train de me palucher l'écriture d'une palanquée de scripts qui vont avoir pour but de me délester d'une partie, rébarbative et source d'erreurs, de mon taf.
Il s'agit d'automatiser l'upload de fichiers sur un ftp sur une machine et la création de RPMS sur celle-çi. Pour la partie création des RPMS automatique, pas de problème, je me suis fait un script bash qui fait ça très bien. Il me fait les fichiers de spec comme il faut et exécute rpmbuild autant de fois que nécessaire. Nickel. Vive Unix.
Là où ça se corse c'est pour la partie upload ftp qui se fait depuis une machine sous Windows. J'ai entrepris de me faire un script bat qui allait faire ce petit boulot. Mais, j'ai plusieurs problèmes:

  • la commande ftp sous DOS permet de se connecter à un serveur ftp distant. Comment impose-t-on l'utilisation d'un port autre que le port 21? (ceci n'est pas très grave si ce n'est pas possible)
  • comment utilise-t-on la commande cat sous DOS? C'est très pratique sous Unix pour créer un fichier et j'ai besoin de créer à l'exécution du script bat un fichier comportant les commandes ftp à exécuter. Si on autre moyen existe pour créer un fichier avec un script bat, je suis preneur, du moment que ça marche!
  • comment sous DOS me connecter à ma machine distante et y exécuter un script bash? A la main j'utilise la commande telnet machinedistante et saisi ensuite mon login/pwd puis tape le nom de mon script. Je souhaite automatiser ça également et n'avoir qu'un script bat a exécuter une fois.


Voilà...c'est assez compréhensible?



Dude76
Je vais regarder pur le coup du port != 21, mais pour ce qui est du fichier, tu peux le créer en faisant des echo "xxxxxx" >> fichier ou qq chose comme ça (ça fait un bail que je n'ai pas fait ça; je vais faire 2/3 tests et je reviens).
Pour le telnet, faut que je regarde, je n'ai jamais essayé.

édit: pour le port, il me semble que adresse:port fonctionne, mais évidement, j'ai rien pour tester sous la main mad.gif .
Pour l'echo, je confirme; ">" pour écraser (ou créer) un fichier, ">>" pour y ajouter.
Utilises-tu une connexion automatique ou pas ? si non, il suffit (si je me souviens bien) de mettre le user et le pass dans le fichier de commande (1 ligne pour chaque).



Sha
Pour créer un fichier avec un .bat sous dos, y'a la solution de l'echo ou du copy con :

http://users.cybercity.dk/~bse26236/batuti...help/COPY_E.HTM

Pour les autres questions, chui largué (et de loin tongue.gif)
RED-HOT
pour le login/mdp
tu peux utiliser la commande echo . il me semble que c'est ca, en tout cas, ca permet de valider (comme si tu appuyais sur la touche enter)
sinon pour passer en paramètre, il faut que tu utilises %1, %2 (ce sont des variables que tu auras saisis à la main par exemple en lancant ton batch)
genre connect pop c0nnard ou pop correspond à %1 et connard à %2
Laisse mon un peu plus de temps que je retrouve mes scripts et je te donne ca.
PoP
Merci Joe pour les paramètres, il me semblait bien que c'était ça! wink.gif
Je vais de l'avant avec le echo >> pour la création de mes fichiers de commandes ftp. Pour le telnet je vous dit ça quand j'y arrive. (Dude, non, malheureusement, adresse:port ne marche pas! dry.gif)
Rabban
essaie open 123.123.123.123 [462] ou 123.123.123.123 462


PoP
l'espace entre l'ip et le port, ça marche. smile.gif
Par contre j'ai un autre problème, il ne semble pas vouloir de mon script ftp pourtant simple:
CODE

open 462.462.462.462 462
my_username
my_login
cd /this/rep/sucks/goats
mput I_have.evidence
quit


Il se borne à me répondre "bad password"... crumble!
Dude76
as-tu fait un "ftp -n -s:PoPFicCmd" pour ne pas faire de connexion automatique ? (si tu te connectes sur une machine unix, un user par défaut est généralement déclaré).
Sinon, tu peux essayer aussi en mettant l'@ en paramètre directement de la ligne de commande.
Pour le coup du port, je ne me souvenais pas exactement blush.gif mrgreen.gif
Par contre, désolé, je t'ai complètement zappé pour le telnet au boulot blush.gif
RED-HOT
juste au cas ou
je disais de mettre : echo et un point
genre
echo .
PoP
Il en veut pas non plus. sad.gif
J'ai essayé en écrivant moi-même le fichier de script ftp avec edit sous DOS, ça marche.
Je produit théoriquement la même chose avec echo dans mon script bat, ça marche pas. Avec ou sans "echo.". gniiiiiiiiiiiiiiiiiii
Sha
Ben essaye copy con.

(Con n'étant pas, ici, l'interjection servant habituellement de ponctuation dans ma province).
Rabban
l'interjection en question ne s'ecrit-elle pas avec un 'g' à la fin?
PoP
CODE

C:\>copy cong
Le fichier spécifié est introuvable.


Bah merde! wahaha.gif
PoP
Question bête, mais comment j'utilise copy con dans mon script bat? Ca enregistre dans un fichier ce qui est saisi au clavier à priori...
momo
exactement .. smile.gif
(con=CON: = console )

sinon
"comment utilise-t-on la commande cat sous DOS? C'est très pratique sous Unix pour créer un fichier et j'ai besoin de créer à l'exécution du script bat un fichier comportant les commandes ftp à exécuter. Si on autre moyen existe pour créer un fichier avec un script bat, je suis preneur, du moment que ça marche!"
cat == type
mais si les commandes doivent êtres incluses dans le .bat, echo me semble plus approprié
"comment sous DOS me connecter à ma machine distante et y exécuter un script bash? A la main j'utilise la commande telnet machinedistante et saisi ensuite mon login/pwd puis tape le nom de mon script. Je souhaite automatiser ça également et n'avoir qu'un script bat a exécuter une fois."
apparament (enfin d'apres windows 2000)
telnet n'accepte pas de script de connectin (au contraire de ftp .. ) et vu la constance des outils microsoft, quelque chose me dit qu'une redirection d'entrée ne marchera pas ...
(mais tu peux essayer .. tongue.gif)



Sha
Ah oui j'a confondu duex paragraphes sur le site, copy con: ça prend les caractères frappés au clavier. Quoique ça peut être une solution : tu te propulses d'un coup de savate magistral vers la machine idoine et tu frappes tes commandes ftp sur ladite machine biggrin.gif

Pour être plus constructif :
http://home.att.net/~knoblock/dosftp.html
RED-HOT
autant pour moi
c'était echo .| la_commande



This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.