NET :: SSH :: verwachten

NET :: SSH :: verwachten is een SSH-wrapper om externe opdrachten uit te voeren.
Download nu

NET :: SSH :: verwachten Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Bruno Negrao Guimaraes Zica
  • Uitgever website:
  • http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.09/lib/Net/SSH/Expect.pod

NET :: SSH :: verwachten Tags


NET :: SSH :: verwachten Beschrijving

NET :: SSH :: verwachten is een SSH-wrapper om afstandsbedieningen uit te voeren. NET :: SSH :: verwachten is een SSH-wrapper om externe commando's uit te voeren. Synopsis Gebruik NET :: SSH :: verwachten; # # U kunt SSH-authenticatie doen met gebruikerswachtwoord of zonder deze. # # Een SSH-verbinding maken met gebruikerswachtwoordauthenticatie # 1) Construeer het object mijn $ ssh = net :: ssh :: verwachten-> nieuw (host => "myserver.com", wachtwoord => 'pass87word', gebruiker = > 'Bnegrao', raw_pty => 1); # 2) Aanmelden bij de SSH-server met die inloggegevens. # Test de inloguitvoer om ervoor te zorgen dat we succes hebben gehad, mijn $ login_output = $ ssh-> login (); if ($ LOGIN_OUTPUT! ~ / WELKOM /) {DIE "Login is mislukt. Inloggen uitgang was $ login_output"; } # - Nu u weet dat u bent ingelogd - # # starten SSH zonder wachtwoord # 1) Voer de constructor uit mijn $ ssh = net :: ssh :: verwachten-> nieuw (host => "myserver.com", gebruiker = > 'Bnegrao', raw_pty => 1); # 2) Start nu het SSH-proces $ SSH-> Run_SSH () of Die "SSH-proces kon niet starten: $!"; # 3) U moet nu zijn aangemeld. Test Als u de prompt op afstand hebt ontvangen: ($ ssh-> read_all (2) = ~ /> s * z /) of sterven "Waar is de externe prompt?" # - Nu weet u dat u bent ingelogd - # # Terminal vertalingen uitschakelen en echo op de SSH-server # uitvoeren op de server de SteTy-opdracht: $ SSH-> Exec ("Stefty RAW-ECHO"); # Voert willekeurige opdrachten uit en drukte hun uitgangen af (inclusief de externe prompt aan het einde) Mijn $ LS = $ SSH-> Exec ("LS -L /"); Print ($ LS); mijn $ who = $ ssh-> exec ("Who"); Print ($ WHO); # Bij het uitvoeren van een opdracht die een enorme output veroorzaakt, # laten we de uitgangslijn ontvangen op regel: $ ssh-> verzenden ("Find /"); # Gebruik van verzend () in plaats van Exec () mijn $ regel; # Retourneert de volgende regel, verwijder het van de ingangsstroom: terwijl (gedefinieerd ($ line = $ ssh-> lees_line ())) {print $ lijn. "N"; } # Kijk eens in wat onmiddellijk beschikbaar is op de ingangsstroomafdruk $ SSH-> PEEK (0); # U zult waarschijnlijk de externe prompt zien # De laatste leest_line () op de vorige lus bevat niet de # Remote Prompt die aan het einde van de uitvoer verschijnt, omdat de prompt # niet eindigt met een 'N'-teken. Laten we dus de rest # prompt verwijderen van de ingangsstroom: $ ssh-> eten ($ ssh-> kijk (0)); # verwijdert wat er ook op de ingangsstroom staat # we kunnen ook over de uitvoer in brokken, # afdrukken alles wat beschikbaar is op elke 1 seconde: $ ssh-> verzenden ("Find / Home"); mijn $ brok; Terwijl ($ Chunk = $ SSH-> PEEK (1)) {# grijpt brokken uitgang elk 1 seconde $ ssh-> eten ($ chunk); } # Laten we nu een interactief commando uitvoeren, zoals passwd. # Dit gebeurt het combineren van verzenden () en wachtfor () samen: $ ssh-> verzenden ("passwd"); $ SSH-> WAITFOR ('Wachtwoord: S * Z', 1) of Die "Prompt 'wachtwoord' niet gevonden na 1 seconde"; $ ssh-> verzenden ("curren_password"); $ SSH-> WAITFOR (': S * Z', 1) of Die "Prompt 'Nieuw wachtwoord:' Niet gevonden"; $ ssh-> verzenden ("new_password"); $ SSH-> WAITFOR (': S * Z', 1) of Die "Prompt 'Bevestig nieuw wachtwoord:' Niet gevonden"; $ ssh-> verzenden ("new_password"); # Controleer of we het systeem-prompt opnieuw hebben. mijn ($ before_match, $ match) = $ ssh-> wacht voor ('> s * z', 1); # Waitfor () in een lijstcontext Die "Passwd is mislukt. Passwd zei '$ before_match'." Tenzij ($ match); # Sluit de SSH-verbinding $ SSH-> Sluiten (); deze module is een wikkel naar het verzendbare bestand dat beschikbaar is in het $ pad van uw systeem. Gebruik deze module om opdrachten op de Remote SSH-server uit te voeren. Het verifieert met de gebruiker en het wachtwoord die u hebt ingevoerd in de kenmerken van de constructor en het wachtwoord en het wachtwoord. Een SSH-verbinding is gestart met de methode Connect () blijft openen totdat u de methode Sluiten () belt. Hiermee kunt u zoveel mogelijk opdrachten uitvoeren als u wilt met de methode Exec () met behulp van slechts één verbinding. Dit is een betere benadering over andere SSH-wrapper implementaties, dat wil zeggen: NET :: SCP, NET :: SSH en NET :: SCP :: verwachten, die een nieuwe SSH-verbinding starten telkens wanneer een opdracht op afstand wordt uitgegeven of een bestand wordt overgedragen. Het maakt gebruik van verwacht.pm-module om te communiceren met de SSH-server. Er is een GET_EXPLECT () -methode beschikbaar, zodat u het interne verwachte object op de SSH-server kunt verkrijgen. Gebruik dit alleen als je een speciale behoefte hebt die je niet kunt doen met de methode Exec (). Deze module is geïnspireerd op NET :: SCP :: verwachten http://search.cpan.org/~djberg/net-scp -Expect-0,12 / verwacht.pm en by Net :: Telnet en sommige van zijn methoden werken hetzelfde als deze twee modules. Vereisten: · Perl


NET :: SSH :: verwachten Gerelateerde software