脚本实战

例1

需求
题目:打包压缩/var/log/路径下的log文件至目标目录
关键点:指定源目的路径,对log文件进行tar与mv操作

脚本内容

#! /bin/bash
SRC_PATH="/var/log/"
DST_PATH="/shell/backup/`date +%Y%m%d`" 

if [ ! -d $DST_PATH ];then
	mkdir -p $DST_PATH
fi
for i in `find $SRC_PATH -name "*.log"`
do
	tar zcvf $i.tgz $i
done

mv $SRC_PATH/*.tgz $DST_PATH
ls -lht $DST_PATH
echo "finished!"

执行结果

[root@bogon shell]# sh tarlog.sh 
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
total 124K
-rw-r--r--. 1 root root  14K Nov 29 09:56 mysqld.log.tgz
-rw-r--r--. 1 root root 4.1K Nov 29 09:56 vmware-vmsvc.log.tgz
-rw-r--r--. 1 root root 5.1K Nov 29 09:56 Xorg.0.log.tgz
-rw-r--r--. 1 root root  425 Nov 29 09:56 yum.log.tgz
-rw-r--r--. 1 root root  980 Nov 29 09:56 boot.log.tgz
-rw-r--r--. 1 root root  11K Nov 29 09:56 anaconda.storage.log.tgz
-rw-r--r--. 1 root root 2.9K Nov 29 09:56 vmware-tools-upgrader.log.tgz
-rw-r--r--. 1 root root  542 Nov 29 09:56 anaconda.ifcfg.log.tgz
-rw-r--r--. 1 root root  194 Nov 29 09:56 pm-powersave.log.tgz
-rw-r--r--. 1 root root  754 Nov 29 09:56 vmware-vmusr.log.tgz
-rw-r--r--. 1 root root 3.8K Nov 29 09:56 anaconda.log.tgz
-rw-r--r--. 1 root root 1.9K Nov 29 09:56 vmware-install.log.tgz
-rw-r--r--. 1 root root 4.9K Nov 29 09:56 anaconda.program.log.tgz
-rw-r--r--. 1 root root  17K Nov 29 09:56 dracut.log.tgz
-rw-r--r--. 1 root root  130 Nov 29 09:56 wpa_supplicant.log.tgz
-rw-r--r--. 1 root root  13K Nov 29 09:56 anaconda.yum.log.tgz
finished!
[root@bogon shell]# 

例2

需求
题目:找出172.24.240.1-10 网段中,服务器已经关机的IP地址
关键点:可以通过ping的结果来判定服务器是否运行

脚本内容

#! /bin/bash
for i in `seq 10`
do
	ping -c 3 172.24.240.$i &> /dev/null
	if [ $? -ne 0 ];then
		echo 172.24.240.$i is shutdown!
	fi
done

执行结果

[root@bogon shell]# sh ping.sh 
172.24.240.4 is shutdown!
172.24.240.5 is shutdown!
172.24.240.6 is shutdown!
172.24.240.7 is shutdown!
172.24.240.8 is shutdown!
172.24.240.10 is shutdown!
[root@bogon shell]# 

例3

需求
题目:创建账号,并生成随机密码
关键点:useradd passwd等命令;随机密码可通过加密时间戳来确定

脚本内容

#! /bin/bash
for i in mlgg{1..5}
do
	useradd $i
	password=`date +%s | md5sum | cut -c 1-8`	# 根据时间戳进行md5加密,并取前8位做密码
	sleep 1		# 防止出现同样密码
	echo "$i:$password" >> /shell/passwd.log	# 记录下密码到指定文件
	echo $password | passwd --stdin $i > /dev/null 2>&1	# 设置密码
	if [ $? -eq 0 ];then
		echo "create user $i successfully!"
	else
		echo "create user $i is failed!"
	fi
done

执行结果

[root@bogon shell]# sh useradd.sh 
create user mlgg1 successfully!
create user mlgg2 successfully!
create user mlgg3 successfully!
create user mlgg4 successfully!
create user mlgg5 successfully!
[root@bogon shell]# cat /shell/passwd.log 
mlgg1:091f92d9
mlgg2:d030293d
mlgg3:824c97dd
mlgg4:f1c356dc
mlgg5:e0533496
[root@bogon shell]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值