V tomto návode budú úlohy automatizované pomocou funkcie Očakávať.


Očakávať je skriptovací jazyk automatizácie. Umožňuje vám napodobniť každé stlačenie klávesu v relácii. Zadávate príkazy, ktoré sa majú doručiť, a reakcie, ktoré sa majú predvídať (alebo očakávať). Po prijatí očakávaných odpovedí zadáte iný príkaz. Tento proces sa opakuje až do ukončenia skriptu.

Skript Očakávať je celá automatizovaná obojsmerná konverzácia. V skripte s výnimkou je skriptovaný dialóg z odosielajúceho aj prijímajúceho počítača. Bežné použitie skriptov očakávania je automatizácia relácií SSH medzi lokálnym počítačom a vzdialeným serverom.

Nastavenie očakávania

Okrem je k dispozícii ako inštalovateľný softvérový balík pre väčšinu distribúcií Linuxu. Pomocou správcu balíkov stiahnite a nainštalujte aplikáciu Očakávať spolu so súvisiacimi balíkmi a závislosťami.

Ak používate Ubuntu, do príkazového riadka zadajte do príkazového riadku nasledujúci reťazec a nainštalujte program Očakávať:

Očakávajte inštaláciu $ apt-get

Ak používate CentOS, zadajte nasledujúce údaje:

# yum install expect-devel

Môže to chvíľu trvať, ale po inštalácii sa môže očakávať spustenie z terminálu.

Očakávate písanie skriptu SSH

Budete musieť napísať obidva konce „dialógového okna“. To znamená, že musíte napísať príkazy, ktoré chcete poslať v relácii, a odpovede očakávané zo vzdialeného servera. Aby mohol byť skript spustený, musí byť vykonateľný. Aby bolo možné skript Očakávať vytvoriť nezávislý spustiteľný program, musia byť splnené tri kroky. V skripte musí byť uvedené miesto očakávania.

Za predpokladu, že umiestnenie systému Expect vo vašom systéme je / Usr / bin / očakávať ako prvý riadok v skripte Očakávať zadajte nasledujúce:

#! / usr / bin / expect -f

  • Shebang (#!) Vyžaduje sa, aby bolo možné určiť Očakávať ako program používaný na interpretáciu skriptu.
  • -f prepínač sa používa na oznámenie Očakávať, že bude čítať príkazy zo súboru.

Skript musí byť uložený ako súbor shellu (.sh). V tomto príklade ho uložíme ako expscript.sh.

Make skript spustiteľný.

Vyžaduje to zmenu oprávnení pre súbor skriptu, ktorý umožňuje jeho spustenie.

Do terminálu zadajte nasledujúce, aby ste upravili oprávnenia k súboru a urobili ho spustiteľným.

$ chmod 755 expscript.sh

Scenár

Druhý riadok skriptu používa poter príkaz, ktorý spustí externý príkaz. V tomto príklade, keďže ide o spoločnosť SSH, ssh príkaz sa používa na spustenie relácie SSH so vzdialeným serverom, “remote.server.com“.

splošte ssh remote.server.com

Pri pokuse o pripojenie k vzdialenému serveru prostredníctvom SSH sa zobrazí výzva na zadanie hesla. Ako sme už povedali, Očakávané skripty pozostávajú z dialógov z oboch počítačov, preto sa do skriptu musia zahrnúť aj očakávané odpovede..

Očakávané reakcie musia byť vylúčené zo strany očakávať príkaz a obsiahnuté v úvodzovkách:

očakávať "heslo: "

Poznámka: Niektoré servery vrátia „Heslo“ veľkým písmenom „P“. Ak skripty očakávajú spoločné písmeno „p“, môže to spôsobiť zlyhanie skriptu. Ako riešenie sa môže použiť zástupný znak. Tento riadok by sa upravil takto:

očakávať "* Ssword: "

Alebo jednoduchšie:

očakávať "*: "

Táto metóda sa môže použiť na mnoho očakávaných reakcií zo vzdialeného stroja. Potom budete musieť zadať svoje heslo. Príkazy, ktoré sa majú odosielať z miestneho počítača, sú vylúčené zo zoznamu send príkaz, a podobne ako očakávané odpovede, musia byť uzavreté v úvodzovkách. Okrem toho musia odoslané príkazy obsahovať tvrdý výnos (\ r) na konci úvodzoviek.

Za predpokladu hesla P @ $$ w0rd, ďalší riadok by bol.

send "P @ $$ w0rd \ r

V tomto okamihu by ste sa mali stretnúť s výzvou pre používateľa, aby ste ju uviedli ako očakávané informácie:

očakávať "$ "

V tomto okamihu môžete napísať zoznam príkazov, ktoré chcete vykonať, spolu s očakávanými odpoveďami zo vzdialeného servera. Na konci vášho zoznamu automatických príkazov predvídajte výzvu používateľa a spustite ukončenie relácie.

očakávať "$ "
send "exit \ r"

Celý skript by preto mal byť:

#! / usr / bin / expect -f
splošte ssh remote.server.com
očakávať "heslo: "
send "P @ $$ w0rd \ r"
očakávať "$ "
…… ## Rôzne automatizované príkazy ##
očakávať "$ "
send "exit \ r"

Po uložení súboru nezabudnite postupovať podľa vyššie uvedených pokynov a upravovať povolenia tak, aby bol spustiteľný.

Poznámka: Ak máte problémy so skriptom, skúste ho sledovať sami a spustite ho manuálne. Poznačte si odpovede servera, aby ste sa uistili, že očakávané odpovede, ktoré v skripte máte, sú presné a že odoslané príkazy sú bezchybné..

Ako ľahko vytvoriť očakávaný skript

Vynikajúcim spôsobom vytvorenia skriptu Očakávania je použitie programu na nahrávanie shellu známy ako Autoexpect. Autoexpect funguje nahrávaním shellu. Každá odpoveď klávesa a shellu sa zaznamená a zapíše do skriptu očakávania, script.exp.

Vzhľadom na dynamickú povahu počítačov nemusia byť dve relácie úplne podobné, takže spustenie nespracovaného skriptu vygenerovaného z jednej relácie nemusí pri opakovanom spustení fungovať podľa očakávania. Výsledkom je, že väčšina skriptov vygenerovaných prostredníctvom automatického očakávania musí byť skontrolovaná, upravená a orezaná, aby sa dosiahol požadovaný požadovaný účinok..

Ak používate Ubuntu, nainštalujte Autoexpect takto:

$ sudo apt-get install expect-dev

  • Týmto sa stiahne obslužný program a všetky požadované závislosti.

Ak používate CentOS, nainštalujte Autoexpect takto:

# yum install expect-devel

Ak chcete použiť funkciu Autoexpect, zadajte nasledujúce údaje:

$ Autoexpect

Po aktivácii funkcie Autoexpect sa na vašom termináli zobrazí nasledujúca správa:

Spustené automatické vyhľadávanie, súbor je script.exp

Každé stlačenie klávesu a všetky následné odpovede zobrazené na obrazovke sa zaznamenajú do súboru script.exp a formátované v skripte Očakávať.

Ak chcete zastaviť automatické vyhľadávanie a zastaviť nahrávanie do súboru script.exp, stlačte Ctrl-D.

Vygenerované script.exp súbor bude veľmi dlhý, kompletný s úplným prepisom relácie a ďalším komentárom. Ako už bolo uvedené, skontrolujte a upravte vygenerovaný súbor a otestujte ho na prípadné chyby. Aj keď to môže nejaký čas trvať, kým sa to napraví, je to zďaleka ľahšie, ako skúsiť manuálne generovanie zložitých skriptov.

Teraz máte plne funkčný skript na opakované spúšťanie podľa potreby, s ľahkosťou a prostriedky na ľahké vytváranie ďalších skriptov.

Pozrite sa na 3 najlepšie webhostingové služby

FastComet

Vyvolávacia cena:
$ 2,95


Spoľahlivosť
9.7


stanovenie ceny
9.5


Užívatelsky prívetivý
9.7


podpora
9.7


Vlastnosti
9.6

Prečítajte si recenzie

Navštívte FastComet

Hosting A2

Vyvolávacia cena:
$ 3,92


Spoľahlivosť
9.3


stanovenie ceny
9.0


Užívatelsky prívetivý
9.3


podpora
9.3


Vlastnosti
9.3

Prečítajte si recenzie

Navštívte A2 Hosting

ChemiCloud

Vyvolávacia cena:
$ 2,76


Spoľahlivosť
10


stanovenie ceny
9.9


Užívatelsky prívetivý
9.9


podpora
10


Vlastnosti
9.9

Prečítajte si recenzie

Navštívte ChemiCloud

Súvisiace články s návodmi

  • Ako nastaviť SSH na serveri Ubuntu 16.04 VPS alebo na vyhradenom serveri
    stredná
  • Ako používať a spravovať kľúče SSH s cPanel
    stredná
  • Ako nastaviť SSH pre Ubuntu 18.04 VPS alebo vyhradený server
    stredná
  • Ako nastaviť Linux VPN server z Windows klienta
    stredná
  • Ako sa pripojiť k serveru pomocou SSH v systéme Linux a Mac
    stredná
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me