几个shell脚本例子 shell脚本启动jar例子

几个脚本例子本章内容包括:pingall:一个按照/etc/hosts文件中的条目逐一ping所有主机得脚本
backup_gen:一个通用的备份脚本,能够加载缺省设置
del.lines:一个引用sed命令得脚本,能从文件中删除若干行
access_deny:一个能够组织某些特定用户登陆得工具
logroll:一个能够清除超过某一长度得日志得工具
nfsdown:一个快速unmount所有nfs文件系统得工具27.1 pingall该脚本列出/etc/hosts文件并查找其中的 非注释行(不已#开头的行),然后使用一个while循环读入所有的行,接下来使用awk分析出每行的第一个域,并把她赋给变量ADDR.最后使用for循环逐一ping相应的地址.$ vi pingall.sh
#!/bin/bash
# pingall
# grab /etc/hosts and ping each address
cat /etc/hosts |grep -v '^#'
|while read LINE
do
ADDR=`awk '{print $1}'`
for MACHINE in $ADDR
do
ping -s -c1 $MACHINE
done
done$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomainlocalhost
192.168.0.1testtest
$ sh pingall.sh
PING 192.168.0.1 (192.168.0.1) 0(28) bytes of data.
8 bytes from 192.168.0.1: icmp_seq=0 ttl=128
8 bytes from 192.168.0.1: icmp_seq=1 ttl=128
PS.为什么不是127.0.0.1 ?
27.2 backup_genbackup_gen是一个用于备份的脚本,它从一个缺省得配置文件中读入设置,然后根据这些参数对系统进行备份.用户可以根据自己得需要改变这些缺省设置.这是一个不同脚本如何使用相同设置或仅在自己运行期间改变相应设置得极好例子.当该脚本执行时,它首先确定源文件backup.defaults是否存在,如果不存在,则退出.脚本省略...
27.3 del.lines这个脚本只是包装了一下sed命令,但它能够使用户很方便地使用,他们非常喜欢用.
这个脚本可以处理一个或多个文件.每个文件在用sed删除空行之前要先核实是否存在.sed的输出被导入一个文件名中含有$$得临时文件,最后这个临时文件又被移回到原来得文件中.
该脚本使用shift命令取得所有得文件名,用while循环逐个处理所有得文件,直至处理完为止.$ vi del.lines.sh
#!/bin/bash
# del.lines
# script takes filename(s) and deletes all blank lines
TEMP_F=/tmp/del.lins.$$
几个shell脚本例子 shell脚本启动jar例子
usage()
{# usage
echo "Usage: `basename $0` file [file..]"
echo "try `basename $0` -help for more info"
exit 1
}if [ $# -eq 0 ]; then
usage
fiFILES=$1
while [ $# -gt 0 ]
do
echo "..$1"
case $1 in
-help) cat <<MAYDAY
Use this script to delete all blank lines from atext file(s)
MAYDAY
exit 0
;;
*) FILE_NAME=$1
if [ -f $1 ]; then
sed '/^$/d' $FILE_NAME>$TEMP_F
mv $TEMP_F $FILE_NAME

else
echo "`basename $0` cannot find this file:$1"
fi
shift
;;
esac
done27.4 access.deny在对系统进行某些更新时,你可能不希望用户登陆,这时可以使用/etc/nologin文件,大多数系统都提供这个文件.一旦在/etc目录中使用touch命令创建了一个名为nologin的文件,除root以外得任何用户都将无法登陆.如果系统不支持这种方法,你一样还可以做到这点--可以自己创建这个文件.可以在/etc/profile文件中加入下面代码:
if [ -f /etc/nologin ]
; then
if [ $LOGNAME != "root" ]; then
echo "Sorry $LOGNAME the system is unavailable atthe moment"
exit 1
fi
fi
现在,可以通过在/etc目录下创建nologin文件来组织除根用户以外得其他用户登陆,且该文件对所有用户可读.当决定恢复用户登陆时,只要删除该文件即可.上述方法可以很方便地组织除根用户以外得所有用户登陆.如果希望临时禁止某个用户登陆,可以修改/etc/passwd文件,把该用户得口令域得第一个字符变成*.这里有个上述工具得简化版本deny.access.该脚本从/etc/profile文件中运行,它读入一个名为lockout.users的文件.该文件包含有禁止登陆得用户名,如果文件中出现了all词,那么除root外得所有用户都将被禁止登陆.$ vi lockout.users
# lockout.users
# put the user names in this file,that you want
# locked out of the system
# remove the user names from this file,to let the users backin.
# peter is on long holiday back next month
peter
# lulu is off two weeks back at the end of the month
lulu
需要在/etc/profile中加入一航:
. /apps/bin/deny.access
/apps/bin目录要确保所有用户对该脚本及存放它得目录具有执行权限.完整脚本略...
27.5 logroll我得系统中有些日志文件增长十分迅速,每天手工检查这些日志文件得长度并倒换这些日志文件(通常是给文件名加各时间戳)是非常乏味得.于是我决定编写一个脚本来自动完成这项工作.该脚本将提交给cron进程来运行,如果某个日志文件超过了特定得长度,那么它得内容将被倒换到另一个文件中,并清除原有文件中得内容.该脚本中日志文件得长度限制是由变量BLOCK_LIMIT设定得,这一数字代表了块数目,在本例中是8块(每块大小为4k字节).可以按照自己得需求把这一数字设得更高.检查得日志文件名都保存在变量LOGS中.这里使用了一个for循环来依次检查每一个日志文件,使用du命令来获取日志文件长度.如果相应得文件长度大于BLOCK_LIMIT变量所规定得值,那么该文件将被拷贝到一个文件名含有时间戳得文件中,并改变这个文件所属得组,原先得文件长度被截断为0.脚本略...
27.6 nfsdown如果系统中包含nfs文件系统,你将发现下面得脚本非常实用.我管理着好多台主机,经常需要在工作时间重启其中得某台机器.由于在机器上挂接了远程目录,我不想依靠系统得重启过程来卸载这些nfs文件系统,宁愿自己来完成这个工作,这样还可以更快一些.只要运行这个脚本就可以迅速卸载所有得nfs文件系统,这样就能更快得重新启动这些机器.该脚本得LIST变量中含有提供nfs目录得主机名,使用for循环逐一卸载相应得目录,用grep命令在df命令得结果中查找nfs文件系统.nfs目录得mount形式为:machine: remote_directory这一字符串被保存在变量NFS_MACHINE中,在umount命令中使用了该变量.
$ vi nfsdown.sh
#!/bin/bash
# nfsdown
LIST="methalpha accounts warehouse dwaggs"for LOOP in $LIST
do
NFS_MACHINE=`df -k |grep $LOOP |awk '{print$1}'`if [ "$NFS_MACHINE" != "" ]; then
umount $LOOP
fi
done

  

爱华网本文地址 » http://www.413yy.cn/a/25101016/290957.html

更多阅读

中国有几个省及各省简称 中国穷省排名2016

中国有几个省及各省简称——简介中国一共有中国共有23个省、4个直辖市、5个少数民族民族自治区和两个特别行政区——香港和澳门。中国有几个省及各省简称——方法/步骤中国有几个省及各省简称 1、北京市-简称京中国有几个省及各省

关于儿童学习跆拳道的几个问题

关于儿童学习跆拳道的几个问题——简介练习跆拳道能提高吃苦耐劳的能力.无论练习哪种武术,都是要下苦功夫的,一个动作为了做的标准,有力量、有速度,可能要练习成百上千次,没有吃苦耐劳的精神是做不到的.强身健体.跆拳道也是一项体育竞技,

手机电池首次充电充几个小时 锂电池首次充电时间

很多人都知道,手机电池第一次充电要多充几个小时才能完全释放它全部的电量,为什么这样呢,但是又有人说手机锂电池不用这样充放电就可以,那么到底手机电池第一次充电要充几个小时呢,第一次充电的时候要注意哪些事项,手机电池才能使用得更久

台式机电脑黑屏的几个原因 笔记本电脑黑屏的原因

台式机电脑黑屏的几个原因——简介电脑的普及率越来越高,在人们的生活和工作过程起着越来越大的作用,然而,有许多情况是在使用电脑的过程中电脑突然就黑屏了,对于新手来说往往会措手不及,现在我来分享下自己遇到的几个电脑黑屏的原因;台

刮痧需注意的几个事项 刮痧后注意事项

刮痧需注意的几个事项——简介刮痧是传统的中 医疗法,可以疏通经络,改善体质,强体健身,同时还具有很好的美容功效。但是刮痧需注意以下几个事项:刮痧需注意的几个事项——工具/原料刮痧板 刮痧需注意的几个事

声明:《几个shell脚本例子 shell脚本启动jar例子》为网友磕炮狂魔分享!如侵犯到您的合法权益请联系我们删除