#####用户建立###
要求:给定两个文件一个存放用户名,一个存放密码,建立用户,并做出两个文件行数不同,用户存在,以及文件不存在的情况
------------------------------------------------------------------------------------------------------------
#!/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 <<END
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 <<END
\$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
---------------------------------------------------------------------------------------