Chapter 11
description
Transcript of Chapter 11
![Page 1: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/1.jpg)
Guide to Linux Installation and Administration, 2e 1
Chapter 11
Using Advanced Administration
Techniques
![Page 2: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/2.jpg)
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
![Page 3: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/3.jpg)
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
![Page 4: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/4.jpg)
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
![Page 5: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/5.jpg)
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
![Page 6: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/6.jpg)
Guide to Linux Installation and Administration, 2e 6
A Selection Statement
![Page 7: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/7.jpg)
Guide to Linux Installation and Administration, 2e 7
A Loop Repeats a Block of Statements
![Page 8: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/8.jpg)
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
![Page 9: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/9.jpg)
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
![Page 10: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/10.jpg)
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
![Page 11: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/11.jpg)
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
![Page 12: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/12.jpg)
Guide to Linux Installation and Administration, 2e 12
Structure of an if/then Statement
![Page 13: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/13.jpg)
Guide to Linux Installation and Administration, 2e 13
File-Testing Operators in the bash Shell
![Page 14: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/14.jpg)
Guide to Linux Installation and Administration, 2e 14
Structure of an if/then/else Statement
![Page 15: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/15.jpg)
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
![Page 16: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/16.jpg)
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
![Page 17: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/17.jpg)
Guide to Linux Installation and Administration, 2e 17
Popular Scripting Languages
![Page 18: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/18.jpg)
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
![Page 19: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/19.jpg)
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
![Page 20: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/20.jpg)
Guide to Linux Installation and Administration, 2e 20
A program Written as a Python Script
![Page 21: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/21.jpg)
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
![Page 22: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/22.jpg)
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
![Page 23: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/23.jpg)
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
![Page 24: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/24.jpg)
Guide to Linux Installation and Administration, 2e 24
Example Time Specifications Using the at Command
![Page 25: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/25.jpg)
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
![Page 26: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/26.jpg)
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
![Page 27: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/27.jpg)
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
![Page 28: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/28.jpg)
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
![Page 29: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/29.jpg)
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
![Page 30: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/30.jpg)
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
![Page 31: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/31.jpg)
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
![Page 32: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/32.jpg)
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
![Page 33: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/33.jpg)
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
![Page 34: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/34.jpg)
Guide to Linux Installation and Administration, 2e 34
The config Utility for Setting kernel Options
![Page 35: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/35.jpg)
Guide to Linux Installation and Administration, 2e 35
The menuconfig Utility for Setting kernel Options
![Page 36: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/36.jpg)
Guide to Linux Installation and Administration, 2e 36
The xconfig Utility for Setting kernel Options
![Page 37: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/37.jpg)
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
![Page 38: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/38.jpg)
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
![Page 39: Chapter 11](https://reader036.fdocuments.us/reader036/viewer/2022062409/56815123550346895dbf416b/html5/thumbnails/39.jpg)
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