shell腳本練習

1、通過兩個文件passwd     username建立用戶:

#!/bin/bash
USERNUM=$(wc -l /jiaoben/username | cut -d " " -f 1)
PASSNUM=$(wc -l /jiaoben/password | cut -d " " -f 1)
UNUM=$(wc -l /etc/passwd | cut -d " " -f 1)

count=0

if [ $USERNUM -le $PASSNUM ]
then
    for NUM in $(seq 1 $USERNUM)
    do
            USER=`sed-n ${NUM}p /jiaoben/username`
            PASSWD=`sed-n ${NUM}p /jiaoben/password`
        id $USER &> /dev/null
        if [ "$?" ="0" ]
        then
                echo"${USER}
已經存在"
        else
            useradd $USER -p $PASSWD&> /dev/null
                       count=$((count+1))
        fi
    done
else
    for NUM in $(seq 1 $PASSNUM)
        do
        USER=`sed -n ${NUM}p/jiaoben/username`
                PASSWD=`sed -n ${NUM}p/jiaoben/password`
                id $USER &>/dev/null
                if [ "$?" ="0" ]
                then
                        echo "${USER}
已經存在"
                else
                        useradd $USER -p$PASSWD &> /dev/null
            count=$((count+1))
                fi
        done
fi
echo  "
共建立了${count}個用戶"
 

2.自動備份數據庫:

#!/bin/bash
read -p "
請輸入要登陸的用戶名:" USER
read -p "
請輸入登陸密碼:" -s PASSWD
mysql -u$USER -p$PASSWD -e "SHOW DATABASES;" &>/dev/null
if [ "$?" != "0" ]
then
    echo -e "\n
您輸入的用戶名或密碼有誤。"
    exit
else   
    mysql -u$USER -p$PASSWD -e "SHOWDATABASES;"
    read -p "
請輸入要備份的數據庫:"  DBNAME
    read -p "
請輸入要備份的路徑(/XXX/XXX.sql:"  PP  

mysqldump -u$USER -p$PASSWD $DBNAME > $PP
fi
if [ "$?" = "0" ]
then
    echo "
備份完成。"
else
    echo "
備份失敗。"
fi
 

3.自動ssh連接:

**********

ssh.sh:

*********

#!/bin/bash
read -p "Please input ip:" IP
read -p "Please input user:" USER
read -p "Please input password:" PASSWD
ssh $USER@$IP
 

**************

ssh.exp:

**************

#!/usr/bin/expect


set IP [ lindex $argv 0 ]
set USER [ lindex $argv 1 ]
set PASSWD [ lindex $argv 2 ]

spawn ./ssh.sh
expect {
     "continue connecting(yes/no)?"
        {   send"yes\n";
            exp_continue
        }
     "ip:"
        {   send"$IP\n";
            exp_continue
        }
     "user:"
        {
            send"$USER\n";
            exp_continue
        }
     "password:"
        {   send"$PASSWD\n";
            exp_continue
        }
expect eof
}
interact
 

4.ddns花生殼服務器自動配置(有yum源鏡像)


#!/bin/bash
yum install bind -y
systemctl start named

###
修改防火牆
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

rm -fr Kwestos.*
##
生成密鑰名字爲westos
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
KEY=`sed -n 1p Kwestos.*.key | cut -d " " -f 7`

##
修改dns配置文件
#############################
sed s/127.0.0.1/any/ /etc/named.conf -i
sed s/localhost/any/ /etc/named.conf -i
cat >> /etc/named.conf <<END
key "westos" {       
            algorithm hmac-md5;
            secret"$KEY";
             };
END
###############################





##
配置正向解析文件 westoslinux.com.zone
##################################################
cat > /var/named/westoslinux.com.zone <<END
\$TTL 1D
@       IN SOA   dns.westoslinux.com. root.westoslinux.com.(
                                            0       ; serial
                                           1D      ; refresh
                                           1H      ; retry
                                           1W      ; expire
                                            3H )    ; minimum
                NS      dns.westoslinux.com.
dns             A       172.25.254.112
www             A       172.25.254.222
END

#############################################





##
配置named.rfc1912.zones
###############################################
cat >> /etc/named.rfc1912.zones <<END
zone "westoslinux.com" IN {
                 type master;
                 file"westoslinux.com.zone";
                 allow-update { keywestos; };
                 allow-transfer {172.25.254.212;};
                 also-notify     {172.25.254.212;};
                  };
END
###############################################
setsebool -P named_write_master_zones 1
chmod 770 /var/named
systemctl restart named



yum install dhcp -y &> /dev/null

##
修改dhcp配置文件
###########################################
cat > /etc/dhcp/dhcpd.conf <<END
option domain-name "westoslinux.com";
option domain-name-servers 172.25.254.212;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
log-facility local7;
subnet 172.25.254.0 netmask 255.255.255.0 {
  range 172.25.254.13172.25.254.99;
  option routers 172.25.254.212;
}
key westos {
        algorithm hmac-md5;
        secret "$KEY";
};
zone westoslinux.com. {
    primary 127.0.0.1;
    key westos;
}
END
###########################################
systemctl restart dhcpd

 


發佈了54 篇原創文章 · 獲贊 32 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章