ssh综合项目
一、判断你输入的字符是数字、字母还是其他字符。
#!/bin/bash
#判断输入的字符是字母,数字,还是其他
read -p "请输入内容" i
case "$i" in
[a-z] | [A-Z])
echo "您输入的是字母"
;;
[0-9])
echo "您输入的是数字"
;;
*)
echo "您输入的是其他字符"
exit 1
esac
二、打印出6行的菱形图形。
#!/bin/bash
#菱形
read -p "请输入菱形的长度" len
#!/bin/bash
#菱形
read -p "请输入菱形的长度" len
for i in `seq 1 $len`
do
for ((j=$len-1;j>=$i;j--))
do
echo -n " "
done
for((m=1;m<=$i;m++))
do
echo -n "* "
done
echo
done
for i in `seq 1 $len`
do
for((j=1;j<=$i;j++))
do
echo -n " "
done
for ((n=$len-1;n>=$i;n--))
do
echo -n "* "
done
echo
done
三、冒泡算法排序,从大到小排出下列数组(66 3 2 15 100 70 160 8)的大小顺序。
#!/bin/bash
score=(66 3 2 15 100 70 160 8)
for ((i=1;i<${#score[*]};i++))
do
for ((j=0;j<${#score[*]}-$i;j++))
do
if [ ${score[j]} -lt ${score[(($j+1))]} ]
then temp=${score[j]}
score[j]=${score[(($j+1))]}
score[(($j+1))]=$temp
fi
done
done
echo ${score[*]}
四、实现ssh的免密登录。
#!/bin/bash
# 免密登录
yum -y install expect &> /dev/null
/usr/bin/expect <<-EOF
spawn ssh-keygen -t rsa
expect "/root/.ssh/id_rsa" {send "\r"}
expect "empty for no passphrase" {send "\r"}
expect "passphrase again" {send "\r"}
expect eof
EOF
/usr/bin/expect <<-EOF
spawn ssh-copy-id 192.168.17.20
expect "yes/no" {send "yes\r"}
expect "root@192.168.17.20's password" {send "123456\r"}
expect eof
EOF
ssh root@192.168.17.20
五、实现dns及apache服务的一键化部署,要求apche服务器绑定域名,客户机实现访问。
#!/bin/bash
#实现dns及apache服务的一键化部署,要求apche服务器绑定域名,客户机实现访问。
dns=/var/named
dns_conf=/etc/named.conf
dns_zones=/etc/named.rfc1912.zones
local=/var/named/aa.com.local
zone=/var/named/aa.com.zone
yum -y install httpd
yum -y install bind*
[ -e /var/www/html/index.html ] || touch /var/www/html/index.html
index=/var/www/html/index.html
chmod 755 $index
cat /root/index.html.txt > $index
sed -i '/port/s/{.*}/{ 192.168.17.20; }/' $dns_conf
sed -i '/allow-query/s/{.*}/{ any; }/' $dns_conf
cat /root/named_zones.txt >> $dns_zones
cp -p $dns/named.localhost $dns/aa.com.local
cp -p $dns/named.loopback $dns/aa.com.zone
chown root:named aa.com.zone
chown root:named aa.com.local
cat /root/local.txt > $local
cat /root/zone.txt > $zone
sed -i '1anameserver 192.168.17.20' /etc/resolv.conf
sed -i '1{H;d};2G' /etc/resolv.conf
systemctl restart named.service
systemctl status named.service
systemctl restart httpd
systemctl status httpd
nslookup www.aa.com
vim zone.txt
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.17.20
www IN A 192.168.17.20
ftp IN A 192.168.17.20
mail IN CNAME www
vim named_zones.txt
zone "aa.com" IN {
type master;
file "aa.com.zone";
allow-transfer { 192.168.17.20; };
also-notify { 192.168.17.20; };
};
zone "17.168.192.in-addr.arpa" IN {
type master;
file "aa.com.local";
allow-transfer { 192.168.17.20; };
};
vim local.txt
$TTL 1D
@ IN SOA aa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS aa.com.
A 192.168.17.20
10 IN PTR www.aa.com.
11 IN PTR ftp.aa.com.
vim index.html.txt
<html><title>web</title><body><h1>this is the web!!!</h1></body></html>