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.
2
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.
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.