Shell脚本一键部署网站服务

news/2024/5/9 20:27:58/文章来源:https://blog.csdn.net/qq_50573146/article/details/125338464

以下脚本所涉及到的服务有
IP:dhcp
dns:bind
Web:apache
在这里插入图片描述

#!/bin/bash
echo "#################################################"
echo "##      一键部署dhcp+dns+apache服务注意事项   ###"
echo "##        1:只要你跟着来,实验绝对没问题     ###"
echo "##        2:如果需要查看日志请打开/1.txt     ###"
echo "##        3:前面可能会需要你操作,           ###"
echo "##           Apache服务就轻松了               ###"
echo "##        4:DNS是从域名服务器本人已经尝试成功 ###"
echo "#################################################"setenforce 0
systemctl stop firewalld
read -p 脚本即将开始,请问您准备好了吗(yes/no) a
if [ $a = yes ];thenecho -e "\033[32m那么咱们走起~\033[0m"
elif [ $a = no ];thenecho -e "\033[31m既然你没有准备好,那在等等\033[0m"exit 0
else printf "\033[1;31;40m竟然不选择,从来老铁\n\033[0m" exit 0
fi
###########配置网卡信息##########
echo -e "\033[34m请配置本机网卡基本信息...\033[0m"
mask=255.255.255.0
read -p "输入网卡接口名称:" ens
read -p "输入IP地址:" ip
echo -e "\033[33m子网掩码已默认为:255.255.255.0\033[0m"
read -p "输入网关地址:" route
read -p "输入首选DNS地址:" dnsifc="/etc/sysconfig/network-scripts/ifcfg-"echo "DEVICE=$ens" > $ifc$ens
echo "TYPE=Ethernet" >> $ifc$ens
echo "BOOTPROTO=static" >> $ifc$ens
echo "ONBOOT=yes" >> $ifc$ens
echo "IPADDR=$ip" >> $ifc$ens
echo "NETMASK=$mask" >> $ifc$ens
echo "GATEWAY=$route" >> $ifc$ens
echo "DNS1=$dns" >> $ifc$enssystemctl restart network
if [ $? -eq 0 ];thenecho -e "  基本信息    \033[32m 配置成功 \033[0m    "
elseecho -e "  基本信息    \033[31m 配置失败 \033[0m    "
fi###########搭建YUM仓库##########
echo -e "\033[34m正在搭建yum源中...\033[0m"
rm -rf /etc/yum.repos.d/*
read -p 请输入您所搭建的yum文件名(例:yum.repo) b
#其余的名字你就不用管了
echo "[123]" > /etc/yum.repos.d/$b
echo "name=hauizhe" >> /etc/yum.repos.d/$b
read -p 请选择您所搭建的YUM源为哪种类型(file,ftp,http) c
if [ $c = file ];then printf "\033[1;31;40m虚拟机中光盘已连接了吗?现在连接还来得及\033[0m"echo ""read -p 请选择您光盘的挂载目录(例:/media) dcd $d &>/1.txt
if [ $? -eq 0 ];thenecho -e "\033[31m目录已选择成功\033[0m"echo "baseurl=$c://$d" >> /etc/yum.repos.d/$b
else echo -e "\033[31m目录不存在,正在创建...\033[0m"mkdir -p $dprintf "\033[4;32;50m创建目录完毕\033[0m"   echo "baseurl=$c://$d" >> /etc/yum.repos.d/$b
fi
mount /dev/cdrom $d &>/1.txt
printf "光盘已挂载成功"elif [ $c = ftp ];thenecho -e "\033[31m你要确保ftp源可以使用呦~\033[0m"read -p 请输入ftp服务器地址 fecho "baseurl=$c://$f" >> /etc/yum.repos.d/$b
elif [ $c = http ];thenecho -e "\033[31m你要确保http源可以使用呦~\033[0m"read -p 请输入http服务器地址 eecho "baseurl=$c://$e" >> /etc/yum.repos.d/$b
else 
printf "\033[1;31;40m什么都不选,你还想搭建???\033[0m" 
exit 0             
fi
echo "enable=1" >> /etc/yum.repos.d/$b
echo "gpgcheck=0" >> /etc/yum.repos.d/$b
echo -e "\033[32mYUM源搭建完毕\033[0m"###########配置DHCP服务器##########
echo -e "\033[34m正在搭建DHCP服务中...\033[0m"
yum -y install dhcp &>/1.txt
read -p 请输入dhcp所分配的网段(例如:192.168.1.0) g
if [ -z $g ]then echo "退出脚本"break
else 
read -p 请输入网段所属子网掩码 h
echo "subnet $g netmask $h {" >> /etc/dhcp/dhcpd.conf
printf "\033[1;31;40m正在确认dhcp服务器所分配的网段\n\033[0m" read -p "请输入开始网段ip:" iread -p "请输入结束网段IP:" j
echo "  range $i $j;" >> /etc/dhcp/dhcpd.confread -p "请输入dns服务器地址:" kecho "  option domain-name-servers $k;" >> /etc/dhcp/dhcpd.confread -p "请输入域名(如:www.baidu.com):" lif [ -z $l ]thenecho "  option domain-name \"internal.example.org\";" >> /etc/dhcp/dhcpd.confelseecho "  option domain-name \"$l\";" >> /etc/dhcp/dhcpd.conffi
read -p "请输入默认网关:" m echo "  option routers $m;" >> /etc/dhcp/dhcpd.confecho "}" >>/etc/dhcp/dhcpd.conf
fi
echo -e "\033[33m配置完毕,正在启动dhcp服务器\033[0m"
systemctl start dhcpd
if [ $? -eq 0 ]
then printf "\033[1;32;40m启动DHCP服务器成功\n\033[0m" 
elseprintf "\033[1;31;40m启动DHCP服务器失败\n\033[0m" 
fi###########配置DNS服务器##########
echo -e "\033[34m正在搭建DNS服务中...\033[0m"
yum -y install bind &>>/1.txt
read -p 需要您输入下允许使用DNS服务的网段(例:any,192.168.1.0) q
sed -i "/listen/s/127.0.0.1/$ip/" /etc/named.conf
if [ $q = any ];then
sed -i "/allow/s/localhost/$q/" /etc/named.conf
else 
sed -i "/allow/s/localhost/$q\/24/" /etc/named.conf
fi
echo -e "\033[31m正在建立正向区域\033[0m"
read -p 请您输入下正向区域(例:baidu.com) w
echo "zone \"$w\" IN {" >>/etc/named.rfc1912.zonesread -p 请您确认下当前DNS服务器为主域名服务器吗?(yes/no) r
if [ $r = yes ];thenecho "type master;" >>/etc/named.rfc1912.zones
elif [ $r = no ];thenecho "type slave;" >>/etc/named.rfc1912.zonesread -p 那主域名服务器地址为? techo "masters { $t; };" >>/etc/named.rfc1912.zones
elseecho "type master;" >>/etc/named.rfc1912.zonesprintf "\033[1;32;40m你竟然不选,那就是主\033[0m" 
fi
read -p 请您设置下正向区域文件的名称(例如:b) yecho "file \"$y\";" >>/etc/named.rfc1912.zones
#注意:如果你是从服务器,最好使用如下格式(最终成不成看的是nslookup)
#file "目录(slaves)/同步过来后的正向区域文件名(自己起)";                              你可以去/var/named/查看“slaves目录”并查看是否同步成功(但其实它是你重启named后生成的!)read -p 请你设置下允许哪个从服务器下载区域文件(例:192.168.1.1,any) uecho "allow-update { $u; };">>/etc/named.rfc1912.zones
echo "};" >>/etc/named.rfc1912.zonesecho -e "\033[31m正在建立反向区域\033[0m"
read -p 请您输入下反向区域(例:1.168.192) i
echo "zone \"$i.in-addr.arpa\" IN {" >>/etc/named.rfc1912.zonesread -p 请您确认下当前DNS服务器为主域名服务器吗?(yes/no) o
if [ $o = yes ];thenecho "type master;" >>/etc/named.rfc1912.zones
elif [ $o = no ];thenecho "type slave;" >>/etc/named.rfc1912.zonesecho "masters { $t; };" >>/etc/named.rfc1912.zones
elseecho "type master;" >>/etc/named.rfc1912.zonesprintf "\033[1;32;40m你竟然不选,那就是主\033[0m" 
fi
read -p 请您设置下反向区域文件的名称(例如:d) pecho "file \"$p\";" >>/etc/named.rfc1912.zones
#注意:如果你是从服务器,类上↑↑↑read -p 请你设置下允许哪个从服务器下载区域文件(例:192.168.1.1,any) aaecho "allow-update { $aa; };">>/etc/named.rfc1912.zones
echo "};" >>/etc/named.rfc1912.zones###########编辑正反向区域数据文件
if [ $r != no ];then
cd /var/named/
cp -p named.localhost $y
cp -p named.loopback $p
#如果你是从服务器的话,这一步你就不用看了(从服务器不需要编辑,他是将区域数据文件同步过来的~)
sed -i  '9,10d' $y
sed -i "/NS/s/@/$l./" $y
sed -i "/NS/awww A $ip" $y            #具体的主机名(www)我就不换了,你也累了对吧!!!
sed -i '9,11d' $p
sed -i "/NS/s/@/$l./" $p
bb=$(ifconfig ens33 | grep 'inet ' | awk '{print $2'} | awk -F '.' {'print $4'})
sed -i "/NS/a$bb PTR $l."  $p
fi
echo -e "\033[33m配置完毕,正在启动DNS服务器\033[0m"
systemctl restart named &>>/1.txt
if [ $? -eq 0 ]
then printf "\033[1;32;40m启动DNS服务器成功\n\033[0m" 
elseprintf "\033[1;31;40m启动DNS服务器失败\n\033[0m" 
fi###########安装Apache服务##########
echo -e "\033[34m正在搭建Apache服务中...\033[0m"
read -p 执行安装apace之前请先将相应的软件包(2.4.25)拉入到当前目录下
rpm -qa | grep httpd
if [ $? -eq 0  ]
then
rpm -e --nodeps httpd
fi
echo "解压安装包"
tar -zxvf httpd-2.4.25.tar.gz -C /usr/src/ >> /tmp/apache.txt
echo "安装前置软件"
yum -y install apr* pcre* &>>/tmp/apache.txt
cd /usr/src/httpd-2.4.25/
echo "配置编译并安装"
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi &>>/tmp/apache.txt
make &>>/tmp/apache.txt
make install &>>/tmp/apache.txt
echo "修改主配置文件"
read -p "请输入域名(例如:www.hws.com):" ym
if [ ! -z $ym ]
thensed -i "s/#ServerName www.example.com:80/ServerName $ym:80/"  /usr/local/httpd/conf/httpd.conf
fi
read -p "请输入端口号(默认为80):" dkh
if [ ! -z $dkh ]
thensed -i "s/ServerName $ym:80/ServerName $ym:$dkh/"  /usr/local/httpd/conf/httpd.conf
fi
echo "优化启动路径"
ln -s /usr/local/httpd/bin/* /usr/local/bin/ &>> /tmp/apache.txt
echo "复制并编辑"
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd &>> /tmp/apache.txt
sed -i "2a #chkconfig:35 85 21" /etc/init.d/httpd
chkconfig --add httpd
<<COMMAND
echo "[Unit]" >> /lib/systemd/system/httpd.service
echo "Description=The Ahache HTTP Server" >>/lib/systemd/system/httpd.service
echo "After=network.target" >>/lib/systemd/system/httpd.service
echo "" >>/lib/systemd/system/httpd.service
echo "" >>/lib/systemd/system/httpd.service
echo "[Service]" >>/lib/systemd/system/httpd.service
echo "Type=forking" >>/lib/systemd/system/httpd.service
echo "PIDFile=/usr/local/httpd/logs/httpd.pid" >>/lib/systemd/system/httpd.service
echo "ExecStart=/usr/local/bin/apachectl" >>/lib/systemd/system/httpd.service
echo "ExecReload=/bin/kill -HUP" >>/lib/systemd/system/httpd.service
echo "KillMode=process" >>/lib/systemd/system/httpd.service
echo "Restart=on-failure" >>/lib/systemd/system/httpd.service
echo "RestartSec=42s" >>/lib/systemd/system/httpd.service
echo "" >>/lib/systemd/system/httpd.service
echo "" >>/lib/systemd/system/httpd.service
echo "[Install]" >>/lib/systemd/system/httpd.service
echo "WantedBy=graphical.target" >>/lib/systemd/system/httpd.service
echo https://blog.csdn.net/qq_50573146?spm=1000.2115.3001.5113 >>/usr/local/httpd/htdocs/index.html >/usr/local/httpd/htdocs/index.html
COMMAND
sed -i 's/It works!/huaizhe ban/' /usr/local/httpd/htdocs/index.html 
echo "正在启动服务"
systemctl  start  httpd &>/1.txt
if [ $? -eq 0 ]
then printf "\033[1;32;40m启动apache服务成功\n\033[0m" 
else printf "\033[1;31;40m启动apache服务失败\n\033[0m" 
fiecho -e "\033[33m此脚本到此圆满成功\033[0m"

It doesn’t matter if you don’t play well in the first half of your life.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_818695.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《大型网站技术架构》核心原理与案例分析

内容简介 本书通过梳理大型网站技术发展历程&#xff0c;剖析大型网站技术架构模式&#xff0c;深入讲述大型互联网架构设计的核心原理&#xff0c;并通过一组典型网站技术架构设计案例&#xff0c;为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监…

AWS S3(vue)+API Gateway+lambda实现无服务网站

0 写在前面的话 公司最近转型serverless要把一些内部CMS和部分外部网站放到AWS上&#xff0c;先简单的实现个S3(vue)API Gatewaylambda的无服务建站的小例子&#xff0c; 感觉一般的网站真心没必要再自己弄EC2了&#xff0c;尤其初创公司&#xff0c;开始公司用户少&#xff0c…

wsdd文件是怎么生成的_这些有趣好玩的免费生成器网站,感觉能玩上一天

创作立场声明&#xff1a;自用推荐&#xff0c;免费网站前言嗨&#xff0c;大家好&#xff0c;我是默咖&#xff0c;一个白天写代码晚上写文章&#xff0c;偶尔做视频的渣渣&#xff01;最近有点懒洋洋&#xff0c;不想写产品的分享&#xff0c;毕竟拍照修图、写稿改稿有时候会…

php网站数据库在哪,【后端开发】php网站怎么查看数据库

php网站查看数据库的方法&#xff1a;推荐&#xff1a;php服务器连接数据库代码&#xff1a;define("DB_HOST","localhost");define("DB_USER","root");define("DB_PWD","");define("DB_NAME","wo…

常见网站漏洞checklist

0x00、写在前面 在做网站渗透之前除了关注一些通用漏洞&#xff0c;这些漏洞通常能很容易的利用扫描器扫出&#xff0c;被WAF所防护 然而有一些逻辑漏洞WAF和扫描器就无法发现了&#xff0c;就需要人工来测试 根据各行业的特点总结了下网站的常见漏洞checklist 0x01、互联网行业…

将网页部署到github服务器上,用Github部署H5网站(无需服务器)

Step1 :登录到自己的Github&#xff0c;查看代码仓库点击“Repositories”进入自己的代码仓库页面&#xff0c;点击“New”&#xff0c;新建一个代码仓库&#xff0c;用来存放将要上传的网页文件。图1 查看代码仓库Step2 :新建代码仓库进入新建代码仓库页面&#xff0c;填写“R…

批量下载某网站的图片

环境&#xff1a;windows7 &#xff0c;Python 3.6.7 &#xff0c;you-get 0.4.1432 &#xff0c;bat 变量说明&#xff1a; for1 chapters 章节 62184 ~ 62210 for2 jpgNum jpg 1~40 for3 fileFolder 存放每个章节的文件夹 1~50 最初的示例图 测试代码 路径内容&a…

学习Linux的博客和资源网站

个人推荐一些优质学习Linux的博客和网站 1、Katacoda - Interactive Learning Platform for Software Engineers 网页版的交互式软件工程师技术学习平台&#xff0c;可在上面学kubernetes 、 docker 、CICD等知识。 2、骏马金龙 - 博客园 博主骏马金龙 &#xff0c;学Lin…

记一次网站无法访问的排查思路

2021年1月15日10:36:06 昨晚19点发生了一排机器&#xff08;不到10台&#xff09;发生了重启&#xff0c;IDC的李工说超融合服务器的存储出问题了。无法远程服务器&#xff0c;访问web服务。我以为中招incaseformat病毒了。在23&#xff1a;30分修复成功&#xff0c;应该是存储…

记一次网站故障排查过程(nginx 504状态码、 upstream timed out (110: Connection timed out)以及jbd2引起IO高

一、问题描述 客户侧反馈无法正常访问系统&#xff0c;页面转圈&#xff0c;时好时坏&#xff0c;访问不稳定。 二、系统环境&#xff1a; 机器环境&#xff1a;UOS 、 nginx 、php&#xff08;对接其他服务器kingbase 、钉钉、redis 、KF&#xff09; ELB&#xff1a;192.…

大型网站限流算法的实现和改造

最近写了一个限流的插件&#xff0c;所以避免不了的接触到了一些限流算法。本篇文章就来分析一下这几种常见的限流算法 分析之前 依我个人的理解来说限流的话应该灵活到可以针对每一个接口来做。比如说一个类里面有5个接口&#xff0c;那么我的限流插件就应该能针对每一个接口就…

Nginx 通过 certbot 为网站自动配置 SSL 证书并续期

目录 一、背景知识1.1、http 和 https 是什么&#xff1f;1.2、SSL/TLS 是什么&#xff1f;1.3、为什么要部署 https&#xff1f;1.4、怎么部署 https 呢&#xff1f;1.5、怎么获得 SSL 安全证书呢&#xff1f;二、Let’s Encrypt 及 Certbot 简介2.1、Authenticators 和 Insta…

部署社区网站,搭建SVN、nginx、PHP,部署MFS并挂载,发布上线

概述&#xff1a; 社交网站的第一个版本部署在LNMP平台之上&#xff0c;前段为Nginx服务器&#xff0c;通过fastcgi协议访问后端的PHP服务器。为了保证数据安全&#xff0c;要求搭建MySQL数据库主从集群。 项目介绍&#xff1a; 本项目案例结合SVN、LNMP和MySQL三种环境&#x…

《大型网站架构技术》系列分享专栏

2019独角兽企业重金招聘Python工程师标准>>> 在这里整理一些大型网站架构方面的技术文章&#xff0c;包括大型网站存储&#xff0c;架构&#xff0c;静态化处理&#xff0c;高并发&#xff0c;高性能方面的问题处理&#xff0c;解决方案等知识 《大型网站架构技术》…

阿里云官方网站免费套餐怎么抢

阿里云推出包含云服务器 ECS、负载均衡、云数据库 RDS、云数据库 Redis 版、云数据库 Mongodb 版、弹性公网 IP、CDN、对象存储 OSS、文件存储 NAS等40核心云产品&#xff0c;6个月免费使用何为免费套餐&#xff0c;其实就是让你先体验&#xff0c;觉得好用&#xff0c;易用&am…

一步步构建大型网站架构

2019独角兽企业重金招聘Python工程师标准>>> 之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型&#xff0c;我们可以…

html:demo网站学习

学习网站https://www.sc-edu.com 涉及知识如下&#xff1a; 目录HTML < ul> 标签HTML lang 属性HTML 标签的 alt 属性CSS 选择器CSS position绝对定位&#xff1a;absolute relativeCSS background-position 属性CSS3 animation(动画)属性 与 keyframes 规则CSS paddin…

html:写网站时遇到的问题及解决

目录01 绝对路径改相对路径出错&#xff1a;图片无法显示02 两端文字空开&#xff0c;且每行这两端文字对齐03 在一行&#xff0c;一侧显示文字&#xff0c;一侧显示图片04 动画效果&#xff0c;文字乱跑05 padding 和 margin01 绝对路径改相对路径出错&#xff1a;图片无法显示…

四招避免SEO优化过度

在对网站进行优化的过程中&#xff0c;很多人往往会将所看到的优化方法不分青红皂白的一律应用&#xff0c;但这样一来就往往会出现优化过度的现象&#xff0c;优化过度甚至比不优化还要对网站有危害&#xff0c;只需要注意以下四个方面&#xff0c;就可以避免在优化网站中经常…

MOSS通过此命令注册模板,web应用程序可以根据stp模块生成网站集

注&#xff1a;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin stsadm –o addtemplate –title 凤凰小学模版 –filename d:\fenghuangxiaoxue.stp MOSS部署常用的stsadm命令行 常用的stsadm命令行参数有&#xff1a; 1、installfeature、uni…