This section describes information related to the philosophy of system administration that is specific to Red Hat Enterprise Linux.
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
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.
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 --
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:
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
sed) that are part of Red Hat Enterprise Linux. Learning
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.