2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Shell Odottaa automaattista vuorovaikutusta
Päivittäisen Linux-käytön ja ylläpidon aikana on usein tarpeen kirjautua sisään palvelimelle. .
Avaimen syntaksi
❶[#!/usr/bin/expect]
Tämä rivi kertoo käyttöjärjestelmälle, mitä komentotulkkia käytetään komentosarjan koodin suorittamiseen. Odottaa tässä on itse asiassa sama asia kuin bash Linuxissa ja cmd Windowsissa. HUOMAA: Tämän rivin on oltava skriptin ensimmäinen rivi.
❷ asetettu
Oletusaikakatkaisu on 10 sekuntia. Istunnon aikakatkaisu voidaan asettaa komennolla set, jos aikakatkaisua ei ole rajoitettu.
Esimerkki: aseta aikakatkaisu 300 //Ilmoittaa, että istunnon aikakatkaisu on 300 s
Esimerkiksi: aseta aikakatkaisu -1/asetus/ei koskaan aikakatkaisu, yleiset asetukset
Huomautus: Miksi sinun on asetettava aikakatkaisu Koska oletusaika on 10 sekuntia, se todennäköisesti katkeaa interaktiivisen suorituksen aikana, jolloin tehtävän suorittaminen päättyy ennen sen valmistumista? Yrityksemme suunniteltu tehtävä, joka synkronoi tiedostoja etä-ftp:stä, päättyi myöhemmin, asetin aikakatkaisuksi -1 ja se oli hyvä.
❸kutemaan
spawnia seuraa yleensä Linuxin suorituskomento, mikä tarkoittaa istunnon avaamista, prosessin käynnistämistä ja myöhempien vuorovaikutustietojen seuraamista.
❹ odottaa
Odotus kaappaa vain spawnin suorittamien komentojen suoritustulokset, jotka sisältävät pääasiassa vakiosyöttökehotteen, eof:n ja aikakatkaisun. Odota, kunnes näyttöön tulee komentokehote, joka on kehote kaapata käyttäjän syöte:
➎ lähetä
Vuorovaikutusta vaativien arvojen lähettäminen korvaa käyttäjän manuaalisen syötteen, eikä tätä komentoa voi syöttää tai rivinvaihtoa automaattisesti, ja se vaatii yleensä r:n (carriage return) tai n:n lisäämisen
odottaa "password"{ send "abc123r"} //Saman rivin lähetysosassa on oltava {}
❻Terminaattori odottaa eof/vuorovaikutusta
odottaa eof
Tämä on lisättävä. Vastaa spawnia, se tarkoittaa, että sieppauspäätteen lähtötiedot on lopetettu, kuten jos....endif
olla vuorovaikutuksessa
Kun suoritus on valmis, säilytä interaktiivinen tila ja siirrä ohjaus konsoliin. Tällä hetkellä voidaan suorittaa manuaalinen toiminta. Jos tällaista lausetta ei ole, se poistuu sisäänkirjautumisen jälkeen sen sijaan, että pysyisi etäpäätteessä.
PS: Odotuskomentosarjan täytyy päättyä vuorovaikutukseen tai odota eof -toimintoon riittää yleensä automatisoitujen tehtävien suorittamiseen.
Esimerkki
Lisää odotuskomento shell-skriptiin, muoto on seuraava
Esimerkki 1: 22.sh luo kansion komentosarja
#!/bin/sh odottaa spawn ssh 10.1.1.196 odota salasanaa {send xxxn} lähetä cd /home/cg/hmf_app/testr lähetä mkdir newworkr lähetä exit odottaa eof EOF |
Esimerkki 2: Luo kansion komentosarja
odottaa spawn ssh 10.1.1.196 odota salasanaa {send xxxn} lähetä cd /home/cg/hmf_app/testr lähetä mkdir newworkr lähetä exit odottaa eof EOF |
Esimerkki 3: Kopioi tiedostoja
odottaa aseta aikakatkaisu -1 spawn scp [email protected]:/data/package/casb/$casbzip ./ odota salasanaa {send xxxn} odottaa eof EOF |
Huomautus:
EOF
...
EOF
Edustaa komentotulkkikomentosarjaa