J'ai besoin d'exécuter un script (Tcl ou autre) sur une machine Unix distante, à partir d'un shell de commande Windows (local), et je veux que la sortie standard/stderr du script s'affiche dans la CLI de Windows. Le code de sortie serait également utile.
Est-ce possible d'utiliser ssh (PuTTY)? Ou par tout autre moyen?
Merci!
Ce que je cherchais, c’est le coup de pouce de PuTTY, plink.exe . Contrairement à PuTTY, qui agit comme un émulateur de terminal, plink
se comporte comme un programme CLI normal (non interactif).
En l’utilisant, je pourrais le faire dans cmd.exe
et obtenir le résultat de la commande à distance enregistré localement.
\> plink remote_Host "ls -l" > log.txt
Mieux encore, cela fonctionne pour ssh ainsi que telnet !
Juste pour référence, voici les options disponibles:
PuTTY Link: command-line connection utility
Release 0.59
Usage: plink [options] [user@]Host [command]
("Host" can also be a PuTTY saved session name)
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-v show verbose messages
-load sessname Load settings from saved session
-ssh -telnet -rlogin -raw
force use of a particular protocol
-P port connect to specified port
-l user connect with specified username
-batch disable all interactive prompts
The following options only apply to SSH connections:
-pw passw login with specified password
-D [listen-IP:]listen-port
Dynamic SOCKS-based port forwarding
-L [listen-IP:]listen-port:Host:port
Forward local port to remote address
-R [listen-IP:]listen-port:Host:port
Forward remote port to local address
-X -x enable / disable X11 forwarding
-A -a enable / disable agent forwarding
-t -T enable / disable pty allocation
-1 -2 force use of particular protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-noagent disable use of Pageant
-agent enable use of Pageant
-m file read remote command(s) from file
-s remote command is an SSH subsystem (SSH-2 only)
-N don't start a Shell/command (SSH-2 only)
-nc Host:port
open tunnel in place of session (SSH-2 only)
C'est la valeur par défaut pour SSH. Si vous souhaitez rediriger la sortie à distance, placez le symbole de redirection (généralement ">") entre les guillemets.
Par exemple:
ssh remote_Host "ls > /tmp/file_on_remote_Host.txt"
Pour enregistrer la sortie localement sur l'hôte Windows,
ssh remote_Host "ls" > .\file_on_local_Host.txt
Pour combiner stderr à distance et le sauvegarder avec stdout localement,
ssh remote_Host "ls 2>&1" > .\combined_output_on_local_Host.txt
Oui, si vous utilisez le client PuTTY ssh, vous verrez toute sortie de ligne de commande que votre script produira. Pour obtenir le code de sortie après l'exécution du script, tapez:
echo $?
Pour obtenir le fichier journal sur votre ordinateur Windows, vous pouvez également: - monter Windows m/c sur un système Unix (en fonction du type d’UNIX, cela pourrait être possible avec le serveur Samba) journal de script dans le répertoire monté
Vous pouvez voir la sortie en direct si vous obtenez l'équivalent UNIX de tail pour Windows .
Une autre réponse:
Enregistrez toutes vos commandes linux dans le fichier cmdlist.txt et utilisez la commande ci-dessous.
plink.exe -ssh -pw passwd [email protected] output.txt
passwd == mot de passe pour la connexion au périphérique
uname == nom d'utilisateur pour l'identifiant de l'appareil
1.2.3.4 == adresse IP du périphérique
Une fois cette commande exécutée, toutes vos commandes cmdlist.txt seront exécutées sur le périphérique distant et la sortie sera enregistrée dans le fichier nommé output.txt.
Assurez-vous de conserver les fichiers plink.exe et cmdlist.txt dans le même répertoire et que vous pointez votre invite DOS sur le même répertoire.