Skip to main content

Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus, 2nd Edition



Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus, 2nd Edition

Randal K. Michael

ISBN: 978-0-470-18301-4 June 2008 1032 Pages


UNIX expert Randal K. Michael guides you through every detail of writing shell scripts to automate specific tasks. Each chapter begins with a typical, everyday UNIX challenge, then shows you how to take basic syntax and turn it into a shell scripting solution. Covering Bash, Bourne, and Korn shell scripting, this updated edition provides complete shell scripts plus detailed descriptions of each part. UNIX programmers and system administrators can tailor these to build tools that monitor for specific system events and situations, building solid UNIX shell scripting skills to solve real-world system administration problems.

Acknowledgments xxv

Introduction xxvii

Part One The Basics of Shell Scripting

Chapter 1 Scripting Quick Start and Review 3

Chapter 2 24 Ways to Process a File Line-by-Line 67

Chapter 3 Automated Event Notification 131

Chapter 4 Progress Indicators Using a Series of Dots, a Rotating Line, or Elapsed Time 143

Part Two Scripts for Programmers, Testers, and Analysts

Chapter 5 Working with Record Files 157

Chapter 6 Automated FTP Stuff 187

Chapter 7 Using rsync to Efficiently Replicate Data 219

Chapter 8 Automating Interactive Programs with Expect and Autoexpect 291

Chapter 9 Finding Large Files and Files of a Specific Type 325

Chapter 10 Process Monitoring and Enabling Pre-Processing, Startup, and Post-Processing Events 335

Chapter 11 Pseudo-Random Number and Data Generation 369

Chapter 12 Creating Pseudo-Random Passwords 401

Chapter 13 Floating-Point Math and the bc Utility 433

Chapter 14 Number Base Conversions 475

Chapter 15 hgrep: Highlighted grep Script 515

Chapter 16 Monitoring Processes and Applications 527

Part Three Scripts for Systems Administrators

Chapter 17 Filesystem Monitoring 553

Chapter 18 Monitoring Paging and Swap Space 603

Chapter 19 Monitoring System Load 641

Chapter 20 Monitoring for Stale Disk Partitions (AIX-Specific) 677

Chapter 21 Turning On/Off SSA Identification Lights 697

Chapter 22 Automated Hosts Pinging with Notification of Failure 723

Chapter 23 Creating a System-Configuration Snapshot 741

Chapter 24 Compiling, Installing, Configuring, and Using sudo 777

Chapter 25 Print-Queue Hell: Keeping the Printers Printing 809

Chapter 26 Those Pesky Sarbanes-Oxley (SOX) Audits 851

Chapter 27 Using Dirvish with rsync to Create Snapshot-Type Backups 867

Chapter 28 Monitoring and Auditing User Keystrokes 935

Appendix A What’s on the Web Site 955

Index 977

Randal K. Michael Website Visit author Randal K. Michael's site
ChapterPageDetailsDatePrint Run
"Bash" in code should be "bash" as UNIX is case sensitive
ERRATA: (This errata is for the first 4,000 copies of this book.) During the course of editing this book, a global search-and-replace was conducted that changed all instances of "bash" to "Bash" in the code. Given that UNIX is case-sensitive, references in the code should be to "bash". Note that all the original code available at the Downloads tab of this page was never affected. The result was limited to the first line of Bash shell scripts, defined as: #!/bin/Bash Instead, the correct declaration should be: #!/bin/bash In the book you may also see some Bash shell script filenames incorrectly named with a ".Bash" filename extension instead of the correct ".bash" filename extension. For example, the filename: my_shell_script.Bash should actually be: my_shell_script.bash Thanks for your understanding.
June 2, 20081st