腳本——倒計時,ping,創建用戶,作業:ssh並創建用戶(未能實現功能)

                                                                                        腳本一

要求:ping同一網段下1到10號機,若ping通,輸出up,否則輸出down

#!/bin/bash
for((i=0;i<=10;i++))
do
ping -c1 -w1 172.25.254.$i &> /dev/null && echo "$i is up" || echo "$i is down"
done


                                                                                        腳本二

要求:一分十秒的倒計時

#!/bin/bash
MIN=1
for ((SEC=10;SEC>=0;SEC--))
do
echo -ne "After ${MIN}:${SEC}s is end"
sleep 1
echo -ne "\r     \r"

    while [ "$SEC" -eq "0" -a "$MIN" -gt "0" ]
    do
    echo -ne "After ${MIN}:${SEC}s is end"
    echo -ne "\r    \r"
    ((MIN--))
    SEC=60
    done
done


                                                                                        腳本三

要求:通過從指定文件得到用戶密碼並創建用戶,若用戶存在,提示報錯,若用戶數和密碼數不同,提示報錯

#!/bin/bash
if
[ -n "$1" -a -n "$2" ]
then
    if
    [ -e "$1" -a -e "$2" ]
    then
    MAXUSER=`wc -l $1 | cut -d " " -f 1`
    MAXPASS=`wc -l $2 | cut -d " " -f 1`
        [ "$MAXUSER" -eq "$MAXPASS" ]&&(
        for NUM in $( seq 1 $MAXUSER )
        do    
        USERNAME=`sed -n ${NUM}p $1`
        PASSWORD=`sed -n ${NUM}p $2`
        CKUSER=`getent passwd $USERNAME`
        [ -z "$CKUSER" ]&&(
        useradd $USERNAME
        echo $PASSWORD |passwd --stdin $USERNAME
        )||echo "$USERNAME exist !!"
        done
        )||(
        echo $1 and $2 have different lines
        )
    elif
    [ ! -e "$1" ]
    then
    echo "ERROR:$1 is not exist"
    else
    echo "ERROR:$2 is not exist"
    fi
else
echo "ERROR: Please input userfile and password file after command!!"
fi

                                                                                            腳本四

要求:本地創建用戶文件和密碼文件,通過ping同一網段的多臺機器,若ping通,ssh連接機器,並在連接的機器上創建從用戶文件和密碼文件中讀取的相關用戶

#!/bin/bash
if
[ -n "$1" -a -n "$2" ]
then
    if
    [ -e "$1" -a -e "$2" ]
    then
    MAXUSER=`wc -l $1 | cut -d " " -f 1`
    MAXPASS=`wc -l $2 | cut -d " " -f 1`
        [ "$MAXUSER" -eq "MAXPASS" ]&&(
        for NUM in $( seq 1 $MAXUSER )
        do
        USERNAME=`sed -n ${NUM}p $1`
        PASSWORD=`sed -n ${NUM}p $2`
        for (( i=2;i<=4;i++ ))
        do
            ping -c1 -w1 172.25.254.$i  &> /dev/null
            if [[ $? -eq 0 ]]
            then
            /home/kiosk/Desktop/ssh.exp 172.25.254.$i redhat
             CKUSER=`getent passwd $USERNAME`
            [ -z "$CKUSER" ]&&(
            useradd $USERNAME
            echo $PASSWORD | passwd --stdin $USERNAME
            )||echo "$USERNAME exist!"
            exit
            else
            echo "ERROR: Please input userfile and password file after command"
            fi
            done
        )||(
        echo $1 and $2 have different lines
        )

else
echo 172.25.254.$i is down
fi
done


ssh.exp:

#!/usr/bin/expect
set IP [lindex $argv 0]
set PASS [lindex $argv 1]
set COMM [lindex $argv 2]
spawn ssh root@$IP $COMM
expect {
    "yes/no"
    {send "yes\r";exp_continue}
    "password:"
    {send "$PASS\r"}
    }
interact


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章