Pisanie skryptów na potrzeby administracji systemem

0

Witam,
Czym kierować się przy wyborze języka na potrzeby skryptów administracyjnych?

Pytam bo, generalnie powinno się wybierać język w zależności od potrzeb.. Pewne rzeczy bardzo łatwo robić w BASHu jak jakieś okresowe kopiowanie itp. Na pewną taką rzeczą są np. skrypty startowe.

Generalnie lubię Ruby i wydaje się być moim wymarzonym językiem do tworzenia skryptów administracyjnych. Czy jest ku temu jakieś przeciwwskazanie? Mam na myśli dostęp do takich rzeczy jak np. przetwarzanie tekstów. Podoba mi się ta wszechobecna obiektowość.

Pozdrawiam,

0

Nie ma żadnych przeciwwskazań. Jak chcesz możesz skrypty administracyjne nawet w C pisać, ale nie należy to do wygodnych rozwiązań.

0

Bo jezyk wydaje mi sie przyjemniejszy od Perla (moja subiektywna kwestia gustu). A jakos nie moge sie przekonac do sed / awk.

Z tego co robilem przetwarzanie stringow w C do przyjemnych nie nalezy. :P A celem jest, ze tak powiem jak najmniej bolesne i przyjemne wykonanie zadania.

Dzieki.

0

To chyba zależy od tego o jakim systemie rozmawiamy.

Ja używam BAT i VBScript (Windows) oraz PHP (hosting - cron: backupy).
Na Windows można też używać PowerShell.

W Linux słyszałem o (w kolejności malejącej popularności):

O Ruby - pierwsze słyszę, żeby ktoś do tego ten język stosował, ale jak się go zna to czemu nie...

0

No tak, z tym systemem to oczywista kwestia (no ale wyszło na to, że mówię o *niksie bo pisałem BASH). Pod Windowsem poszedłbym pewnie w PowerShell.

Na 1 rzut oka BASH wydaje mi się.. za mało obiektowy. Bardziej taki klej do wywoływania poleceń niż pełnowartościowy język. I jednak wydaje się być trudniejszy niż taki Ruby / Perl, bo trzeba znać jeszcze Sed i Awk, aby w tym sensownie pisać (a nie są to najnowocześniejsze narzędzia). Z drugiej strony fajnie by je poznać ze względu na popularność.

Zapoznam się z następującą pozycją:
http://pragprog.com/book/bmsft/everyday-scripting-with-ruby

A tak patrzę sobie w bibliotekę Ruby:
http://www.ruby-doc.org/core-1.9.3/File.html
Jak widać jest wszystko co ma BASH do operacji na plikach.
Do tego różne fajne bajery na przykład:
http://net-ssh.rubyforge.org/sftp/v2/api/
Oprócz tego można używać wątków, może by się przydały na przykład przy robieniu backupów.
Polecenie systemowe też mogę wykonać i jego wartość zwrócić do zmiennej by operować na stringach.. chyba mam wszystko co mi potrzeba.

0

Czy jest ku temu jakieś przeciwwskazanie?

Hmm, może np to czy ktoś inny będzie musiał kiedyś te twoje skrypty utrzymywać? Ogólnie ze skryptami najbardziej kojarzą mi się Bash i Perl, ostatnio też Python. Ruby jest chyba przyjemniejszy od tych trzech języków, więc jeśli masz te skrypty pisać sam to spokojnie możesz użyć Ruby.

W drugiej odpowiedzi jest napisane jak zrobić skrypt wykonywalny: http://stackoverflow.com/questions/166347/how-do-i-use-ruby-for-shell-scripting

0
Wibowit napisał(a):

Czy jest ku temu jakieś przeciwwskazanie?

Hmm, może np to czy ktoś inny będzie musiał kiedyś te twoje skrypty utrzymywać?

To jest kluczowa kwestia. Jeśli to będą standardowi admini to nie liczyłbym na znajomość czegoś takiego jak Ruby.
Raczej postanowią to przepisać na coś ogólnie stosowanego (choćby bash) i cała Twoja robota na darmo.

0

możesz skrypty administracyjne nawet w C pisać, ale nie należy to do wygodnych rozwiązań
przy czym „niewygodę” bym określił jako konieczność kompilacji pliku.
bo skrypt powinien być cały czas w stanie źródłowym, celem łatwej modyfikacji i podglądu co się w nim faktycznie dzieje.
oczywiście można napisać drugi skrypt, który odpali make a potem exeka, ale to już za bardzo kombinowanie.

Choć już widziałem takie cuda, jak skrypty w C++ kompilowane i odpalane launcherem w Perlu…

po drugie: co skrypt ma robić? jeśli odpalić jedno polecenie z jakimiś parametrami, albo skopiować jakiś plik, to spokojnie wystarczy bash albo .bat pod windą, bo po co wydziwiać?

0

Generalnie:

  1. Kopiowanie na zdalne maszyny przez SFTP (backupy).
  2. Wysyłanie maili.
  3. Wysyłanie wiadomości przez XMPP.
  4. Może wrzucanie statystyk co się dzieje do bazy danych..
  5. Analiza plików tekstowych.
0
vpiotr napisał(a):
Wibowit napisał(a):

Czy jest ku temu jakieś przeciwwskazanie?

Hmm, może np to czy ktoś inny będzie musiał kiedyś te twoje skrypty utrzymywać?

To jest kluczowa kwestia. Jeśli to będą standardowi admini to nie liczyłbym na znajomość czegoś takiego jak Ruby.
Raczej postanowią to przepisać na coś ogólnie stosowanego (choćby bash) i cała Twoja robota na darmo.

Raczej nie na darmo. Przepisanie do innego języka to daleko nie to samo co wymyślenie od nowa. A pisanie w Ruby powinno być znacznie przyjemniejsze niż pisanie w Bashu.

0

Poza tym wydaje mi się, że taki admin też jest w jakimś sensie programistą i cały czas się uczy. Skoro potrafi pisać w Perlu to tworząc dobrze zaprojektowany program w Ruby i dokumentując go nie powinno być trudno dodać do niego opcje jak pisać w Perlu czy BASHu.

Ogólnie mam pomysł, aby stworzyć taki system raportowania połączony z bazą danych. Potem można by dopisać do niego interfejs powidzmy w Ruby On Rails i byłoby widać co się dzieje w systemie.

0

Użyj Sinatry zamiast RoR'a. Jest lżejsza i ma wystarczająco dużo możliwości do czegoś takiego.

Co do skryptów to wystarczy spojrzeć na coś takiego jak Chef by zobaczyć, że się to nadaje do skryptów administracyjnych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1