Newsgroup: it.comp.os.linux.sys
Titolo: ssh con script shell.......non va!

volevo fare uno script che lanciasse ssh su un'altra macchina e prelevasse
un file....ma il problema è che non so come dare nello script la password
dell'utente..
Example
utente:pippo
passwd: pluto
#!/bin/sh
sftp pippo@nomemacchina
pluto
get *.txt
dove sbaglio???
Scusatemi ma non trovo una buona doc su shell script..
Giuseppe


perche non usi scp?


perche non usi scp?
Ho provato a guardare la man di scp ma non riesco a passargli la passwd
anche ridirigendo lo standard input od output una volta che lo lancio mi
chiede la paaswd da shell........
che devo fare?

dove sbaglio???
questa e` roba de expect.
-- 
If you lie to the compiler, the compiler will get its revenge.
Maurizio - Tannoiser - Lemmo
Founder Member of ERLUG (Emilia Romagna Linux User Group)
http://erlug.linux.it

 questa e` roba de expect.
What?

What?
apt-cache show expect
[..]
Description: A program that "talks" to other programs.
 Expect is a program that "talks" to other interactive programs
 according to a script.  Following the script, Expect knows what
 can be expected from a program and what the correct response
 should be.  An interpreted language provides branching and high-
 level control structures to direct the dialogue.  In addition,
 the user can take control and interact directly when desired,
 afterward returning control to the script.
-- 
It's the good girls who keep diaries; the bad girls never have the time.


 Scusatemi ma non trovo una buona doc su shell script..
Cerca con Google:
Bash-Prog-Intro-HOWTO
Advanced-Bash-Scripting-Guide

 Advanced-Bash-Scripting-Guide
Concordo
Max

 dell'utente..
# Script per EXPECT
#!/usr/bin/expect -f
set force_conservative 0
if {$force_conservative} {
        set send_slow {1 .1}
        proc send {ignore arg} {
                sleep .1
                exp_send -s -- $arg
        }
}
set commands /your/path/get_commands
set timeout -1
spawn /usr/bin/sftp -b $commands pippo@nomemacchina
match_max 100000
expect -exact "Connecting to nomemacchina...\r
pippo@nomemacchina's password: "
send -- "pluto\r"
expect eof
# File 'get_commands' per passare i comandi FTP all'sftp
get *.txt
quit
Ovviamente dovrai sostituire la stringa "nomemacchina" con il vero fqdn o
indirizzo IP.
Ciao,
A.

 Scusatemi ma non trovo una buona doc su shell script..
Per questo ci sono gli HOWTOs.
Comunque, puoi utilizzare lo script che ti ho indicato prima o, se vuoi
fare piu' in fretta ancora, puoi provare con il comando 'autoexpect'
(quello che ho usato io per generare lo script che ti ho passato).
Non appena lo esegui, lui ti crea un'altra shell. Da questo punto in
poi *tutto* quello che farai verra' registrato in un file chiamato
script.exp. Quando hai finito di eseguire i comandi da automatizzare (nel
tuo caso l'sftp), digita 'exit'.
Controlla il file script.exp ed aggiustalo manualmente, qualora servisse.
Nota: E' importante che l'output del server NON cambi nel tempo (es: non
passare all'sftp un comando 'dir' o 'ls' in quanto l'elenco dei files
generato in output dal comando verrebbe registrato nello script - ed i
files possono aumentare/diminuire), altrimenti lo script cessera' di
funzionare. Se dovesse accadere ricorda che puoi sempre modificare a mano
lo script oppure far girare l'autoexpect di nuovo.
Se hai bisogno di chiarimenti puoi contattarmi per email.
Ciao,
A.

 wrote in
news:Pine.LNX.4.53.03...@radames.test.ea.it
: 

+ semplicemente x ovviare al problema della password utilizzi 
l'autorizzazione basata sulle chiavi, invece che utente/pwd.
--
byEz,
active