shell实例--更新ing

1、批量增加用户并随机生成用户密码
for x in $(seq 1 10);do
echo "adding test$x"
(
        echo -ne "test$x\t"
        useradd test$x 2>&1 > /dev/null && mkpasswd test$x
)  >> /tmp/userlog
done
echo 'cat /tmp/userlog to see new paswords'
 
2、这个脚本测试IPv6版本的ping命令是否存在。如果存在,就使用ping6来给系统的IPv6的环回接口发送一个测试包。如果不存在,该脚本就会检查IPv4版本的ping命令。如果它存在,就使用ping来给系统的IPv4的环回接口发送一个测试包。如果都不存在,可能什么地方就出错了,返回一个非零的退出状态并同时发送一条警告消息
 
if test -x /bin/ping6; then
    ping6 -c1 ::1 &> /dev/null && echo "IPv6 stack is up"
elif test -x /bin/ping; then
    ping -c1 127.0.0.1 &> /dev/null && echo "No IPv6, but IPv4 stack is up."
else
    echo "Oops! This should not happen."
    exit 255
fi
 
3、创建一个reach.sh的脚本。该脚本会在它接受的第一个参数所指定的主机上运行
(1)
#!/bin/bash
TARGET=$1
ping -c1 -w2 $TARGET &> /dev/null; echo $?
 
运行此脚本:
如上图所示,RHEL5主机能ping通,所以echo $?返回值为0
 
如上图所示,RHEL1的主机不能ping通,所以echo $?的返回值为2
 
(2)修改上述脚本:
ping命令的返回值($?)被保存在一个叫做RESULT变量中;
如果这个变量的值不是零,就会显示“$TARGET is down”这条消息
否则显示“$TARGET is up”这条消息
脚本在推出时返回$RESULT
 
#!/bin/bash
TARGET=$1
ping -c1 -w2 $TARGET &> /dev/null
RESULT=$?
 
if [ $RESULT -ne 0 ]
then
        echo "$TARGET is down"
else
       echo "$TARGET is up"
fi
echo $RESULT
 
脚本运行结果如下:
 
4、创建一个更加灵活的备份脚本
#!/bin/bash
#backup.sh
 
ORIG=$1
BACK=~/backup/$(basename $ORIG)-$(date +%Y%m%d)
 
if [ -e $BACK ]
then
        echo "$BACK exits"
        read -p "Press Ctrl-c to exit or Enter to prossed:"
fi
 
cp -av $ORIG $BACK
echo "Backup of $ORIG to $BACK completed at:$(date)"
 
脚本运行:
 
 
 
 

本文出自 “┃ㄨ珊蝴海┃” 博客,谢绝转载!

你可能感兴趣的:(shell,职场,实例,休闲)