Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Script Shell

  1. #1

    Script Shell

    Cioa ragazzi, oggi mi sono imbattuto nel problema seguente: ho installato un server SSH servendomi si Cygwin su un pc che uso come server. A questo punto instauro connessioni SSH (con crittografia asimmetrica) da Mac e da Linux tranquillamente. Vorrei però servirmi di uno script che esegua le operazioni seguenti:

    1 - scp file.pdf AgostinoPolizzano@192.168.1.100:./ #INVIO UN FILE

    2 - ssh AgostinoPolizzano@192.168.1.100 #APRO LA CONNESSIONE SSH

    3 - cmd #AVVIO IL TERMINALE SU WIN - diciamo che lo uso per lanciare il comando successivo

    4 - start C:\"Program Files"\Adobe\"Reader 9.0"\Reader\AcroRd32.exe /p /h file.pdf #STAMPO IL FILE SULLA STAMPANTE COLLEGATA AL SERVER

    la mia domanda è questa: come faccio a creare uno script, o un programma in C++ o qualsiasi cosa che esegua il terzo e il quarto comando all'interno della sessione SSH? Se, ad esempio, mi servo di un programma scritto in C++ ed uso la funzione system("comando") ciascun comando di ciascuna chiamata alla funzione system è come se fosse a se stante, ovvero ciascuna in una diversa sessione del terminale.

    Come posso rimediare??

    Grazie a tutti.
    www.agostinopolizzano.info

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    dovresti aggiungere al lancio di SSH il comando da eseguire sul server remoto (nel tuo caso windows).
    ti faccio vedere un esempio tra due macchine linux:
    codice:
    [cacao74@tweety ~]$ ssh -l cacao74 slack64 "/sbin/ifconfig lo"
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:19254 errors:0 dropped:0 overruns:0 frame:0
              TX packets:19254 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:3795710 (3.6 MiB)  TX bytes:3795710 (3.6 MiB)
    se avro' tra le mani una macchine windows con ssh server, ti faro' sapere.
    per ora, prova tu e comunica eventuali successi
    slack? smack!

  3. #3
    Ciao e anzitutto grazie per la risposta!!
    La soluzione che proponi l'avevo già provata ma non c'è stato verso di funzionare!! Il problema è imputabile sicuramente anche a cygwin che comunque emula un ambiente UNIX su Win che funziona bene per quanto riguarda la gestione di file e cartelle ma più complicata è la situazione se si vogliono eseguire programmi sul server remoto (in sostanza i comandi devono necessariamente essere invocati in questa sequenza!!)

    Comunque credo che il mio problema possa essere affrontato più in generale estraniandosi dalla connessione ssh.

    Provo a spiegarmi con un esempio:
    Supponiamo che io intenda scrivere un programma in C++ nel quale mi servo della funzione system("comando") per eseguire un comando;
    supponiamo inoltre che il comando da eseguire sia il seguente: ~/Agostino/programmi/prova.

    Se invoco tale funzione:
    codice:
    system("~/Agostino/programmi/prova")
    tutto procede bene ma, se io separo il comando nel seguente modo:
    codice:
    system("cd ~/Agostino/programmi/");
    system("./prova");
    il programma "prova" non viene più eseguito in quanto il secondo comando è distinto dal primo e, pertanto, è come se si avviasse una nuova sessione del terminale che non tiene conto del comando precedente!

    Se riuscissi a risolvere questo problema credo di riuscire a risolvere anche il problema reale, ovvero quello che riguarda la connessione ssh.

    Spero di essere stato esaustivo!!

    Ti ringrazio ancora per la tua disponibilità!!
    http://www.agostinopolizzano.info

  4. #4
    e questo?


    ssh -l cacao74 slack64 "system("~/Agostino/programmi/prova")"



    p.s.
    l'hai valorizzata il parametro :

    PermitLocalCommand

    in ssh_config ?

  5. #5
    sarcade, scusami, ma non ti capisco!!!
    http://www.agostinopolizzano.info

  6. #6
    come dice cacao, aggiungi il comando sulla riga di ssh


    ssh -l cacao74 slack64 ".............."

  7. #7
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Originariamente inviato da sacarde
    come dice cacao, aggiungi il comando sulla riga di ssh


    ssh -l cacao74 slack64 ".............."
    system, se non ricordo male, e' una chiamata del C++
    e quanto suggerisci (credo) non porterebbe da nessuna parte.


    @Acciues
    non ho capito ancora se hai provato:
    <SSH> "C:\Program\ Files\Adobe\Reader 9.0\Reader\AcroRd32.exe /p /h file.pdf"
    oppure
    <SSH> "cd c:\percorso; comando opzioni file.pdf"

    non ho un windows su cui provare al momento...
    slack? smack!

  8. #8
    Originariamente inviato da cacao74
    system, se non ricordo male, e' una chiamata del C++
    e quanto suggerisci (credo) non porterebbe da nessuna parte.


    @Acciues
    non ho capito ancora se hai provato:
    <SSH> "C:\Program\ Files\Adobe\Reader 9.0\Reader\AcroRd32.exe /p /h file.pdf"
    oppure
    <SSH> "cd c:\percorso; comando opzioni file.pdf"

    non ho un windows su cui provare al momento...
    ho provato la prima!!! Comunque ho risolto tutto con un programma c++!!!
    Posto una parte del codice, quella relativa a quanto detto...
    codice:
    path_file = "cp "+path_file+" ~/temp_print/file.pdf";
    system("mkdir ~/temp_print/");
    command = new char [path_file.size()+1];
    strcpy (command, path_file.c_str());
    system(command);
    system("cd ~/temp_print/; scp file.pdf AgostinoPolizzano@192.168.1.100:./; echo 'start C:\\Programmi\\Adobe\\Reader\\Reader\\AcroRd32.exe /p /h file.pdf' | ssh -t AgostinoPolizzano@192.168.1.100 cmd; ssh -n AgostinoPolizzano@192.168.1.100");
    system("rm -rf ~/temp_print");
    Agostino Polizzano
    http://www.agostinopolizzano.info

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.