Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

BASH - skrypt lokalny realizowany na innej maszynie + multi warunkowość

wic1 26 Mar 2016 15:20 618 2
  • #1 26 Mar 2016 15:20
    wic1
    Poziom 14  

    Witam!

    Muszę napisać skrypt, który wykona poszczególne jego czynności na zdalnym serwerze. Jest warunek... treść skrypt nie może być na lokalnie na maszynie.

    NP mamy serwery A , B , C.
    Skrypt jest na serwerze A i zawiera szereg komend uruchamianych na serwerze B lub C.

    Dokładniej mam nieklastrowany serwer wydruku rozłożony na maszynie B i C. Muszę zrobić coś by skrypt na serwerze A sprawdził na którym serwerze jest obecnie serwer wydruku (B lub C) i przełączył ów serwer na drugi.

    Mam już część wykonywaną na serwerach, teraz muszę to obudować w automat.

    Przewidywane zachowanie skryptu...
    Sprawdza na którym serwerze jest serwer wydruku - np jest na serwerze B.
    (sprawdzi to po parametrach netstata i kilku procesach)

    Serwer wydruku jest na maszynie B, czy mam przełączyć na C? - TAK
    Wchodzi na serwer B, kładzie usługi wydruku. potwierdza położenie, wchodzi na serwer C i podnosi usługi wydruku.
    Tu ponownie sprawdza serwer wydruku po parametrach jak wcześniej.

    Woila ~~ :)

    Funkcje do wykonania na maszynach zdalnych to...
    Przy aktywacji to usługi takie jak:
    stopsrc -g cluster
    varyonvgg
    mount
    ifconfig
    chmod

    Przy położeniu to usługi takie jak:
    ifconfig delete
    route deleteunmount
    varyoffvg.


    O co pytam, o co proszę...

    - jakich funkcji czy komend użyć do wykonania czynności zdalnej?
    Przykład jaki znalazłem dotychczas: ( ssh user2@host2 "echo \$HOME" )
    - jest jakaś funkcja umożliwiająca spełnienie jednego warunku pod warunkiem spełnienia kilku wcześniejszych?

    Pozdrawiam!

    0 2
  • #2 27 Mar 2016 04:18
    wic1
    Poziom 14  

    Wstępnie...

    Code:
     ssh -t $(selusr)@$(hostname) "/bin/su - $(user) -c 'cd /katalog; ./skrypt_test.sh'


    Pozostaje jeszcze tylko sprawdzenie warunków....

    Jeśli spełniony jest warunek a,b i c to wykonaj skrypt D. Jeśli warunek efg to wykonaj skrypt H :P

    Ktoś wie jak takie składać i zapętlać?

    0
  • #3 29 Mar 2016 16:21
    wic1
    Poziom 14  

    Hejka,

    No i pytanie...

    jak robie

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    to zwraca mi potrzebną wartość + "Connection to NAZWA_HOSTA closed".

    Wynik to np:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Jak się pozbyć tego końcowego komunikatu co by w skrypcie można było użyć wartości?

    0