1.10. Red Hat Enterprise Linux-Specific Information
This section describes information related to the philosophy of system administration that is specific to Red Hat Enterprise Linux.
1.10.1. Automation
Automation of frequently-performed tasks under Red Hat Enterprise Linux requires knowledge of several different types of technologies. First are the commands that control the timing of command or script execution. The
cron
and at
commands are most commonly used in these roles.
Incorporating an easy-to-understand yet powerfully flexible time specification system,
cron
can schedule the execution of commands or scripts for recurring intervals ranging in length from minutes to months. The crontab
command is used to manipulate the files controlling the cron
daemon that actually schedules each cron
job for execution.
The
at
command (and the closely-related command batch
) are more appropriate for scheduling the execution of one-time scripts or commands. These commands implement a rudimentary batch subsystem consisting of multiple queues with varying scheduling priorities. The priorities are known as niceness levels (due to the name of the command -- nice
). Both at
and batch
are perfect for tasks that must start at a given time but are not time-critical in terms of finishing.
Next are the various scripting languages. These are the "programming languages" that the average system administrator uses to automate manual operations. There are many scripting languages (and each system administrator tends to have a personal favorite), but the following are currently the most common:
- The
bash
command shell - The
perl
scripting language - The
python
scripting language
Over and above the obvious differences between these languages, the biggest difference is in the way in which these languages interact with other utility programs on a Red Hat Enterprise Linux system. Scripts written with the
bash
shell tend to make more extensive use of the many small utility programs (for example, to perform character string manipulation), while perl
scripts perform more of these types of operations using features built into the language itself. A script written using python
can fully exploit the language's object-oriented capabilities, making complex scripts more easily extensible.
This means that, in order to truly master shell scripting, you must be familiar with the many utility programs (such as
grep
and sed
) that are part of Red Hat Enterprise Linux. Learning perl
(and python
), on the other hand, tends to be a more "self-contained" process. However, many perl
language constructs are based on the syntax of various traditional UNIX utility programs, and as such are familiar to those Red Hat Enterprise Linux system administrators with shell scripting experience.