linux shell编程指南第二十七章------几个脚本例子

时间:2022-12-13 19:57:17
我本来打算在本章中提供一个通用的数据验证数据库脚本,但是由于它超过了5 0 0行,我
觉得编辑肯定不会同意把它收入书中。那个脚本几年前只有几行,后来由于不断增加功能,
变成了现在这么长。最后,我选择了如下六个脚本作为例子:
p i n g a l l:一个按照/ e t c / h o s t s文件中的条目逐一p i n g所有主机的脚本。
b a c k u p g e n:一个通用的备份脚本,能够加载缺省设置。
d e l . l i n e s:一个引用s e d命令的脚本,能从文件中删除若干行。
a c c e s s d e n y:一个能够阻止某些特定用户登录的工具。
l o g r o l l:一个能够清除超过某一长度的日志的工具。

n f s d o w n:一个快速u n m o u n t所有n f s文件系统的工具。


该脚本列出/ e t c / h o s t s文件并查找其中的非注释行(不以#开头的行)。然后使用一个w h i l e
循环读入所有的行,接下来使用a w k分析出每行的第一个域,并把它赋给变量A D D R。最后使
用f o r循环逐一p i n g相应的地址。


[root@localhost huangcd]# cat pingall 
#!/bin/bash
cat /etc/hosts|grep -v "^#"|while read LINE
do
  ADDR = `awk '{print $1}'`
  for MACHINE in $ADDR
  do
    ping -s -c1 $MACHINE
  done
done