批量建立用户+SSH自动登录+DDNS服务配置脚本

#####用户建立###

要求:给定两个文件一个存放用户名,一个存放密码,建立用户,并做出两个文件行数不同,用户存在,以及文件不存在的情况

------------------------------------------------------------------------------------------------------------

#!/bin/bash
[ "$#" != 2 ] &&echo ERROR:Please input like this:$0 username password&&exit 1
[ ! -f "$1" ] &&echo ERROR:$1 is not a file&&exit 2
[ ! -f "$2" ] &&echo ERROR:$2 is not a file&&exit 3 
user=$(cat $1 |wc -l )
pass=$(cat $2 |wc -l )
[ "$user" != "$pass" ]&&echo ERROR:The two files line number is different&&exit 4
for ((i=1;i<=$user;i++))
do
username=$(sed -n ${i}p $1)
id $username &>/dev/null
if [ "$?" == 1 ];then
useradd $username 
echo $(sed -n ${i}p $2)|passwd $username --stdin &>/dev/null
echo $username:user set up successful!
else
echo $username:User already exists!Skip this user!
fi
done

-------------------------------------------------------------------------------------------------------------

#####ssh远程登录####

要求:在脚本后面输入用户名,密码,ip即可链接并登录

------------------------------------------------------------------------------------------------------------

------>>>ssh.sh

#!/bin/bash
read -p "please input username:" user
read -p "please input ipaddress:" ipaddr
ssh ${user}@${ipaddr}

------>>>ssh.exp

#!/usr/bin/expect
set USER [ lindex $argv 0 ]
set PASS [ lindex $argv 1 ]
set IP [ lindex $argv 2 ]

spawn ./ssh.sh

expect {
"Are you sure"{ send "yes\r"; exp_continue }
"username" { send "$USER\r"; exp_continue }
"password" { send "$PASS\r"; exp_continue }
"ipaddr" { send "$IP\r"; exp_continue }
}
interact

------------------------------------------------------------------------------------------------------------

#####花生壳(ddns)####

要求:在一台redhat7.x中自动配置ddns

------------------------------------------------------------------------------------------------------------

#!/bin/bash
##This is script for ddns

if [ ! -f  /usr/lib/systemd/system/named.service ];then
echo 安装DNS服务...
yum install bind -y &>/dev/null
[ "$?" == 1 ]&&echo DNS 安装失败!&&exit 1
fi
echo DNS已安装
if [ ! -f /usr/lib/systemd/system/dhcpd.service ];then
echo 安装DHCP服务...
yum install dhcp -y &>/dev/null
[ "$?"== 1 ]&&echo dhcp 安装失败!&&exit 2
fi
echo DHCP已安装

rm -fr Kddns*
echo 生成密钥中,建议在真机中随即输入字符...
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST ddns &>dev/null

[ "$1" = "" ]&&read -p "请输入域名:" DOMAIN||DOMAIN=$1
[ "$2" = "" ]&&read -p "请输入dhcp的子网起始(0-254):" UP||UP=$2
[ "$3" = "" ]&&read -p "请输入dhcp的子网结束(1-255):" DOWN||DOWN=$3

[ "$UP" ge "$DOWN" ]&&echo 数值有误,前者要小于后者&&exit 2


key=$(cut -d ' ' -f 7 Kddns.*.key)
ipaddr=$(ifconfig|sed -n 2p |cut -d ' ' -f 10)
ipaddr1=$(echo ${ipaddr}|cut -d '.' -f 1-3)

##对dhcpd.conf的处理
cat > /etc/dhcp/dhcpd.conf < option domain-name "$DOMAIN";
option domain-name-servers $ipaddr;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
log-facility local7;
subnet ${ipaddr1}.0 netmask 255.255.255.0 {
  range ${ipaddr1}.${UP} ${ipaddr1}.${DOWN};
  option routers ${ipaddr1}.254;
}
key ddns {
algorithm hmac-md5;
secret $key;
}
zone ${DOMAIN}. {
primary ${ipaddr};
key ddns;
}
END


##对named.conf的处理
sed s/127.0.0.1/any/ /etc/named.conf -i
sed s/"localhost;"/"any;"/ /etc/named.conf -i


echo "//DDNS START" >>/etc/named.conf
echo "key ddns {" >>/etc/named.conf
echo " algorithm hmac-md5;">>/etc/named.conf
echo " secret \"$key\";">>/etc/named.conf
echo "};" >>/etc/named.conf


echo "zone "$DOMAIN" IN {" >>/etc/named.conf
echo " type master;">>/etc/named.conf
echo " file \"${DOMAIN}.zone\";">>/etc/named.conf
echo " allow-update { key ddns; };">>/etc/named.conf
echo "};" >>/etc/named.conf
echo "//DDNS END" >>/etc/named.conf


##对${DOMAIN}.zone的处理
chmod 770 /var/named
cp -p /var/named/named.localhost /var/named/${DOMAIN}.zone
> /var/named/${DOMAIN}.zone
cat >/var/named/${DOMAIN}.zone < \$TTL 1D
@ IN SOA dns root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
dns A 127.0.0.1
END


##开启服务
systemctl start named
systemctl start dhcpd
rm -fr Kddns*
setsebool -P named_write_master_zones 1

------------------------------------------------------------------------------------

####数据库beifen#####

要求:实现数据库的备份

#!/bin/bash
[ "$#" != 2 ]&&echo input like this \"$0 database 1 passwd\"&&exit 1
if [ "$2" == 1 ];then
mysqldump -uroot -p$3 $1 >/mnt/${1}.sql
else
mysql -uroot -p$3 $1 < /mnt/${1}.sql
fi

---------------------------------------------------------------------------------------

你可能感兴趣的:(批量建立用户+SSH自动登录+DDNS服务配置脚本)