例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]#