Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am administering hundreds of RHEL servers. There are many daily tasks to perform. Right now I am working with bash scripting and python. I was wondering if other languages such as Erlang, Lua, Ruby, Haskell, or Clojure.

share|improve this question

closed as not constructive by Martijn Pieters, Walter, dan_waterworth, Glenn Nelson, Yusubov Jan 27 '13 at 17:45

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Bash and python are both good. What features are you missing? – Mat Jan 27 '13 at 15:37 document about google's experience trying haskell over python for sys-admin tools, they were quite pleased with the results. Even released the resultant tools as ganeti-htools ca. 2009, and I can say that currently the haskell ecosystem has made leaps and bounds in maturity over the past 4 years. – Jimmy Hoffa Jan 28 '13 at 16:10
up vote 2 down vote accepted

Since bash and python have already been recommended, I'd recommend Ruby.

Two very handy tools come to mind: Rake and capistrano.

Rake allows you to have tasks. A task is, for example, a list of commands to execute. Or it can be way more complex and include code. A lot already exist, there are plenty of libraries, and defining a new task is relatively easy.

capistrano (based on Rake syntax) allows you to have tasks, just like Rake, but by including remote tasks by default. From the description:

Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH. It uses a simple DSL (borrowed in part from Rake) that allows you to define tasks, which may be applied to machines in certain roles. It also supports tunneling connections via some gateway machine to allow operations to be performed behind VPN's and firewalls.

Not to mention that the Ruby language was invented to remain simple.

A dynamic, interpreted, open source programming language with a focus on simplicity and productivity.

share|improve this answer

It depends on your needs and preference.

Generally, I find that bash is the most important. There are some tasks which can get a bit ugly with it, though, in which case Python is my only choice.

Why? Because it's not as ugly as Perl, and has the greatest library availability after it.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.