Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration...

Preview:

Citation preview

Guide to Linux Installation and Administration, 2e 1

Chapter 11

Using Advanced Administration

Techniques

Guide to Linux Installation and Administration, 2e 2

Objectives

In this chapter, you will:

• Create shell scripts using basic shell programming features

• Automate one-time and repetitive tasks using at and crontab

• Reconfigure the Linux kernel

Guide to Linux Installation and Administration, 2e 3

Writing Shell Scripts

• You can automate the process of entering frequently used commands by creating a shell script

• A shell script is an executable file containing lines of text as you would enter them at a command line, including special commands to control the order in which lines in the file are executed

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 4

Interpreting and Compiling Programs

• A compiler converts the source code of a compiled language into a binary file

• An interpreter converts the source code of an interpreted language into numeric codes

• A shell script is an interpreted program

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 5

Understanding Programming Concepts

• A selection statement lets a computer programmer determine which parts of a program will be executed according to values that are determined as the program is executed

• A loop statement is used to determine whether part of a computer program should be executed more than once

• The list of statements controlled by a selection or loop statement is often called a block, or a statement block

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 6

A Selection Statement

Guide to Linux Installation and Administration, 2e 7

A Loop Repeats a Block of Statements

Guide to Linux Installation and Administration, 2e 8

Components of a Shell Script

• Each script file must start with a line identifying the interpreter to use for that script

• Each script must have the execute permission set• Each script must use only correctly formed

statements for the interpreter

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 9

Creating a Simple Shell Script

• Some Linux commands are used mostly within shell scripts

• The read command causes the shell to pause for a user to enter information at the keyboard

• You can create your own variables to store values within a script

• Shell scripts use the Linux redirection operators to change the flow of information to and from commands

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 10

Using Variables in Scripts

• A variable used in a shell script in this way is sometimes called a shell variable

• To initialize the variable, assign it a value• A positional variable takes a value based on the

information that the user includes on the command line

• You indicate positional variables using a dollar sign and a number

• Positional variables are a useful way to provide information to the commands in a script

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 11

Using if/then/else Tests

• A test is a type of selection statement that lets you determine if a condition is true or false

• An if command must be followed by a then command, which lists the commands to be executed if the test succeeds

• The fi command marks the end of the if statement• The test command evaluates parameters you

provide and returns either true or false• The else command adds a block of commands

that are only executed if a test returns a value of false

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 12

Structure of an if/then Statement

Guide to Linux Installation and Administration, 2e 13

File-Testing Operators in the bash Shell

Guide to Linux Installation and Administration, 2e 14

Structure of an if/then/else Statement

Guide to Linux Installation and Administration, 2e 15

Adding Loops to a Script

• A loop statement causes a block of commands to be repeated a certain number of times or until a condition is met

• The for command creates a for loop, which repeats a statement block once for each list item

• The do and done commands are keywords used to begin and end a statement block in a for loop

• Loops using for and while repeatedly execute a statement block based on either a fixed number of iterations or a condition being tested

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 16

Other Scripting Methods

• The statements in a shell script must follow specific syntax rules

• The specific syntax rules a script must follow depend on the interpreter that will execute the script

• Different scripting languages are used for different purposes

• Scripts often use standardized file extensions to help users identify them

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 17

Popular Scripting Languages

Guide to Linux Installation and Administration, 2e 18

perl Scripts

• Perl– A programming language developed by Larry Wall

– Especially well suited to processing text strings

– Was very popular as a tool for managing data submitted by Web page forms

– perl scripts interact with Web servers using a communication standard called the Common Gateway Interface, or CGI

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 19

Scripts for Graphical Programs

• Tcl/Tk (tool control language/toolkit) is a scripting language developed by John Ousterhout

• Scripts written in Tcl/Tk are executed by an interpreter called wish

• The Python scripting language uses the same Tk graphical programming toolkit as Tcl

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 20

A program Written as a Python Script

Guide to Linux Installation and Administration, 2e 21

Automating Tasks with at and crontab

• The at command lets you define one or more commands to be executed at some future time

• The crontab command lets you define one or more commands that will be executed repeatedly at intervals that you designate

• The at command relies on a daemon called atd• The crontab command relies on a daemon called

crond• A scheduled task is often called a job

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 22

Automating One-Time Tasks

• You can perform a task automatically at some future time

• You can use the at command to schedule the task for future execution

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 23

Using the at Command

• To automate a task with the at command, you can either enter commands directly at the command line, or you can list them in a file

• The atd daemon will check once per minute for any jobs that have been scheduled using the at command

• The time specification in the at command is very flexible

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 24

Example Time Specifications Using the at Command

Guide to Linux Installation and Administration, 2e 25

Using at Interactively

• The only disadvantage of entering commands interactively is that you cannot alter a command after it has been edited

• After entering all the commands that you want the atd daemon to execute, you indicate that you have finished by pressing Ctrl+D

• You can use the tty command to send output from a command to the location where you are currently logged in

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 26

Using the batch Command

• The batch command runs your commands when the system load average drops below 0.8

• The batch command is similar to the at command and also relies on the atd daemon

• The batch command accepts tasks for future execution without a fixed time

• Commands are executed when the system is not busy

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 27

Automating Recurring Tasks

• You can use the crontab command to execute commands automatically at regular intervals

• Many administrators place scripts in the cron-related directories instead of creating their own cron job definitions

• In Red Hat Linux 7.3, the /etc directory contains subdirectories named cron.hourly, cron.daily, cron.weekly, and cron.monthly

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 28

Managing Automated Tasks

• Submitted commands for future execution using at or crontab can be viewed and deleted

• The root user can view or modify jobs submitted by any user on the system

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 29

Checking the Status of Jobs

• The two daemons atd and crond are started when you boot Linux using standard service scripts in /etc/rc.d/init.d

• You can use those scripts to stop and restart the daemons

• Jobs submitted using at are stored in the /var/spool/at directory; jobs submitted using crontab are stored in the /var/spool/cron directory

• The atq and atrm commands are used to manage at jobs that are awaiting execution

• You should not directly edit a crontab file in the /var/spool/cron directory

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 30

Controlling Access to at and crontab

• You can restrict access to at and crontab so that only certain users can use these commands

• /etc/cron.allow: Contains usernames that are allowed to use the crontab command

• /etc/cron.deny: Contains usernames that are not allowed to use the crontab command

• /etc/at.allow: Contains usernames that are allowed to use the at command

• /etc/at.deny: Contains usernames that are not allowed to use the at command

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 31

Modifying the Linux Kernel

• You can modify the Linux kernel to activate or deactivate features, including making features built-in instead of loadable modules

• You can recompile the Linux kernel from source code, creating a new kernel

• The file vmlinuz contains the Linux kernel

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 32

Installing Kernel Source Code

• To create a new kernel, make certain the kernel source code and supporting packages are installed on your system

• The kernel source code is available as an rpm package or as raw source code from www.linuxhq.com

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 33

Configuring Kernel Features

• Three kernel configuration utilities are supported:– config,

– menuconfig

– xconfig

• Kernel configuration utilities are started using the make command

• The make command is a programming utility that uses instructions in a configuration file (called Makefile) to execute a series of instructions

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 34

The config Utility for Setting kernel Options

Guide to Linux Installation and Administration, 2e 35

The menuconfig Utility for Setting kernel Options

Guide to Linux Installation and Administration, 2e 36

The xconfig Utility for Setting kernel Options

Guide to Linux Installation and Administration, 2e 37

Compiling a New Kernel

• After configuration is completed the make command is used to start the actual kernel compilation process

• You also compile and install new modules for the new kernel as a separate operation

• The make bzImage command creates a compressed kernel image called bzImage in the directory /usr/src/linux-2.4/arch/i386/boot

• To use that kernel, you should make a backup copy of your current kernel in /boot, then copy the bzImage file to /boot

Valued Gateway Client:

Valued Gateway Client:

Guide to Linux Installation and Administration, 2e 38

Summary• Shell scripts are used to execute a complex set of

commands by entering a single script name• Each script file starts with a line identifying the

interpreter, has the execute permission set, and uses only correctly formed statements for the interpreter

• The if/then/else statement tests a condition and executes statements if the condition is present

• Loops using for and while repeatedly execute a statement block based on either a fixed number of iterations or a condition tested

• Many scripting languages are used on Linux systems, including perl, PHP, Python,and Tcl/Tk

Guide to Linux Installation and Administration, 2e 39

Summary

• The at command schedules a task for execution by atd at some future point

• Tasks scheduled using at can be managed using the atq and atrm commands

• The crontab command schedules tasks that are to be executed on a regular basis, such as daily or weekly

• The kernel source code is available as an rpm package or as raw source code

• Three kernel configuration utilities: config, menuconfig, and xconfig are started using the make command

Recommended