Problema script
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Problema script
Buongiorno a tutti voi, è un piacere far parte della vostra community. Ho un problema con uno script bash. Premesso che sono veramente un principiante in materia e lavoro con Ubuntu vi espongo il problema che spero sia elementare:
Ho un server all'indirizzo 192.168.1.5 ad esempio e voglio creare uno script che dal mio pc apre ad esempio sul server la directory /home/server io farei così:
#!/bin/bash
SERVER= "192.168.1.5"
USR="utente"
OUT="out.txt"
ssh $USR@$SERVER w > $OUT
cd /home/server
ma non va...ritorna a
miopc@miopc:~$
Cosa sbaglio?
Chi mi spiega bene quel suggerimento che mi è stato dato...:
OUT="out.txt"
w > $OUT
grazie
Ho un server all'indirizzo 192.168.1.5 ad esempio e voglio creare uno script che dal mio pc apre ad esempio sul server la directory /home/server io farei così:
#!/bin/bash
SERVER= "192.168.1.5"
USR="utente"
OUT="out.txt"
ssh $USR@$SERVER w > $OUT
cd /home/server
ma non va...ritorna a
miopc@miopc:~$
Cosa sbaglio?
Chi mi spiega bene quel suggerimento che mi è stato dato...:
OUT="out.txt"
w > $OUT
grazie
Ultima modifica di niofar il ven 2 mar 2007, 13:29, modificato 1 volta in totale.
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
non capisco, quel "cd /home/server" vuoi farlo sul server remoto?
e a che serve quel "w" quando invochi ssh (non volevi fare chdir dentro /home/server? w non lo fa ma ti ritorna la ista degli utenti loggati sulla macchina)?
btw se invochi ssh non puoi aspettarti che tutti i conandi che seguono nello script siano eseguiti sul server remoto, ma saranno eseguiti solo dopo che ssh ritornera'
e a che serve quel "w" quando invochi ssh (non volevi fare chdir dentro /home/server? w non lo fa ma ti ritorna la ista degli utenti loggati sulla macchina)?
btw se invochi ssh non puoi aspettarti che tutti i conandi che seguono nello script siano eseguiti sul server remoto, ma saranno eseguiti solo dopo che ssh ritornera'
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
se son pochi li passi come argomento a ssh (esattamente come hai fatto con "w"; se i comandi da eseguire sul server remoto sono viceversa piu' complessi e numerosi ti conviene creare uno script a parte con la roba da eseguire in remoto e infilare nel primo script un scp che porti il secondo script sul server e un ssh che lo esegua;niofar ha scritto:Quel w mi era stato erroneamente suggerito infatti. Io vorrei proprio eseguire nel server remoto i comandi inseriti nello script..c'è un modo? Non so come fare.
Grazie
se non vuoi fare due script puoi farne uno solo con dentro una if che controlla su che macchina viene eseguito lo script (ad esempio usando hostname o uname -n) e in base a quello esegue una serie di istruzioni o un'altra
Ultima modifica di masalapianta il ven 2 mar 2007, 14:02, modificato 1 volta in totale.
Sei stato gentilissimo, adesso provo, mi spiegheresti meglio il discorso dell'scp?masalapianta ha scritto:se son pochi li passi come argomento a ssh (esattamente come hai fatto con "w"; se i comandi da eseguire sul server remoto sono viceversa piu' complessi e numerosi ti conviene creare uno script a parte con la roba da eseguire in remoto e infilare nel primo script un scp che porti il secondo script sul server e un ssh he lo eseguaniofar ha scritto:Quel w mi era stato erroneamente suggerito infatti. Io vorrei proprio eseguire nel server remoto i comandi inseriti nello script..c'è un modo? Non so come fare.
Grazie
Grazie 1000.
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
scp copia su una macchina remota uno o piu' file e directory utilizzando un server ssh; man scp per magiori infoniofar ha scritto:Sei stato gentilissimo, adesso provo, mi spiegheresti meglio il discorso dell'scp?masalapianta ha scritto:se son pochi li passi come argomento a ssh (esattamente come hai fatto con "w"; se i comandi da eseguire sul server remoto sono viceversa piu' complessi e numerosi ti conviene creare uno script a parte con la roba da eseguire in remoto e infilare nel primo script un scp che porti il secondo script sul server e un ssh he lo eseguaniofar ha scritto:Quel w mi era stato erroneamente suggerito infatti. Io vorrei proprio eseguire nel server remoto i comandi inseriti nello script..c'è un modo? Non so come fare.
Grazie
Grazie 1000.
- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Puoi anche usare un "here document":
In pratica il testo che compare prima di EOF viene interpretato come una lista di comandi per ssh, come se fossi tu ad inserirli alla tastiera. E' utile per utilizzare programmi interattivi in modo non interattivo, ad esempio con ftp, vi.
Codice: Seleziona tutto
#!/bin/sh
SERVER= "192.168.1.5"
USR="utente"
ssh $USR@$SERVER << EOF
cd pippo
ls
EOFPseudo-terminal will not be allocated because stdin is not a terminalgioco ha scritto:Puoi anche usare un "here document":In pratica il testo che compare prima di EOF viene interpretato come una lista di comandi per ssh, come se fossi tu ad inserirli alla tastiera. E' utile per utilizzare programmi interattivi in modo non interattivo, ad esempio con ftp, vi.Codice: Seleziona tutto
#!/bin/sh SERVER= "192.168.1.5" USR="utente" ssh $USR@$SERVER << EOF cd pippo ls EOF
Questa è la risposta inserendo come comandi soltanto un cd home.
Ciao.
Risolto un problema, come argomento dell'ssh ho dato sh ciao.sh dove ciao.sh è uno script inserito sul pc remoto che esegue le operazioni che volevo fossero eseguite.
Ho usato scp per portare sul server remoto un file out.txt con gli argomenti della funzione che avevo scelto sul pc locale e avevo inserito su un file di testo.
Adesso ho 2 problemi:
Lancio il primo script sul mio pc (locale) che mi permette di avviare il secondo script sul PC1 (remoto).
Problema 1)
Una volta che la funzione avviata nell'xterm del PC1 finisce il suo lavoro dovrebbe dare come risultato un grafico (che mi serve). Il problema è che quando la funzione ha finito il suo lavoro il grafico finale compare per un'istante brevissimo di tempo dopo di che la finestra di xterm si chiude.
Problema 2)
Mentre il PC1 lavora avrei la necessità di ripetere lo stesso discorso su PC2 (remoto) con lo stesso script. Il problema è che una volta che accedo ad ssh non riesco ad eseguire altre operazioni dallo stesso terminale, se non prima della fine del collegamento ssh. Ho provato ad eseguire ssh in backgroung (con un & alla fine) ma mi da un errore.
Mi esprimo male, comunque l'idea è questa.. voglio creare uno script da avviare nel mio pc che faccia questo:
1) Chiede l'indirizzo del pc1
2) Chiede l'indirizzo del pc2
3) Chiede quale file elaborare su pc1
4) Chiede quale file elaborare su pc2
5) Acceda contemporaneamente a pc1 e pc2 per fare le operazioni richieste sui server remoti
Grazie!!!
Ciao.
Ho usato scp per portare sul server remoto un file out.txt con gli argomenti della funzione che avevo scelto sul pc locale e avevo inserito su un file di testo.
Adesso ho 2 problemi:
Lancio il primo script sul mio pc (locale) che mi permette di avviare il secondo script sul PC1 (remoto).
Problema 1)
Una volta che la funzione avviata nell'xterm del PC1 finisce il suo lavoro dovrebbe dare come risultato un grafico (che mi serve). Il problema è che quando la funzione ha finito il suo lavoro il grafico finale compare per un'istante brevissimo di tempo dopo di che la finestra di xterm si chiude.
Problema 2)
Mentre il PC1 lavora avrei la necessità di ripetere lo stesso discorso su PC2 (remoto) con lo stesso script. Il problema è che una volta che accedo ad ssh non riesco ad eseguire altre operazioni dallo stesso terminale, se non prima della fine del collegamento ssh. Ho provato ad eseguire ssh in backgroung (con un & alla fine) ma mi da un errore.
Mi esprimo male, comunque l'idea è questa.. voglio creare uno script da avviare nel mio pc che faccia questo:
1) Chiede l'indirizzo del pc1
2) Chiede l'indirizzo del pc2
3) Chiede quale file elaborare su pc1
4) Chiede quale file elaborare su pc2
5) Acceda contemporaneamente a pc1 e pc2 per fare le operazioni richieste sui server remoti
Grazie!!!
Ciao.
