Jump to content
gear

Bash shell vs Python/Ruby

Recommended Posts

Salut.

Trăgând cu ochiul peste niște proiecte pe github, am văzut fișiere .sh, mă uitam să văd ce anume fac, majoritatea erau pentru automatizare, care făceau request-uri sau alte lucruri de genul, comenzi bash, desigur.

Mă gândeam dacă am nevoie de bash scripts, devreme ce știu puțin python, de ce nu aș putea obține aceleași rezultate cu acesta (py), în loc de bash?

M-am uitat să văd ce zice google, primele rezultate de la stackoverflow, majoritatea sugerau că depinde de preferințe și alții explicau diferența dintre modul în care sunt executate, poate câteva detalii despre performanță și lucruri low-level care m-au făcut confuz.

 

Voi ce părere aveți? Când folosiți bash în loc de python/ruby și vice versa?

Desigur, python/ruby sunt pentru domenii mai largi, eu vreau să îndrept subiectul spre domeniul în care este folosit bash-ul mai mult, I guess sysops stuff.

 

P.S.: Nu sunt atât de informat cu privire la lucruri de genul, mă scuzați dacă întrebările sunt cam nepotrivite.

Edited by gear
  • Upvote 1
Link to comment
Share on other sites

Daca sa privesti din partea System Operations, atunci 'bash'-ul are prioritate. Bash is like a glue between multiple tools, to get things done quickly.

 

Sa presupunem ca ai 100 de servere si doresti sa download-ezi -> instalezi -> configurezi un tool pe ele si sa mai creezi vreun cron job pentru acel tool. Chestia data o poti face intr-o singura linie de bash (one liner). Daca lista servere e in fisier-ul 'servers.list', atunci poti rula un astfel de bash script:

for server in `cat servers.list`; do ssh <username>@${server} 'wget <my_tool> && cp <my_tool> /usr/bin/<my_tool> && echo "30 * * * * root /usr/bin/<my_tool> param1 param2" >> /etc/crontab'; done

Pe cind in Python, trebuie ai de raspuns la mai multe intrebari:

  • Ce versiune de Python este instalata pe servere (2.x sau 3.x)? In cazul in care vrei sa ruleze .py scriptul pe fiecare din server;
  • Probleme de dependente, in cazul in care vrei sa ruleze .py scriptul pe servere. Nu toate pot avea modulele necesare instalate;
  • Daca ruleaza doar la tine pe host, atunci revii iarasi la folosirea bash-ului pe partea server, Python fiind folosit doar la cititea fisierului cu lista de servere si connectarea prin SSH la ele;

Dupa parerea mea, atit Bash-ul cit si Python sunt foarte importante si trebuie stiute (pentru SysOps stuff). Ruby nu l-am inclus, pentru ca in comparatie cu Python, Ruby nu e atit de popular pe serverele Linux si nu il poti gasi instalat by default pe multe distributii.

 

***One liner-ul de mai sus nu l-am testat. L-am scris direct aici pe site. Interpreteaza-l mai mult ca pseudo-bash-code )))

Edited by num1r0
  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...