脚本练习实践
请提前设置好Yum源和ping通网络
[root@ybt ~]# cat discuz.sh #!/bin/bash #脚本实践一键部署"动力站点" #进度条函数 ybt1=0 ke1='###' ybt2(){ printf "\t\t进度:[%-s]%d%%\r" "$ke1" "$ybt1" ybt1=$[ $ybt1 +20 ] ke1="###$ke1" } echo echo ybt2 #判断是否为root用户 ybt=`whoami` ke="/dev/null" if [ "$ybt" == root ];then echo -n else echo "不是root用户,请切换root用户执行脚本,脚本已退出" fi #检测是否有需要的命令未安装,没有则安装 if which wget unzip &> "$ke" ;then echo -n else yum -y install wget unzip > "$ke" fi if which wget unzip &> "$ke" ;then echo -n else echo "脚本终止,无法安装wget和unzip,请检查是否有可用的yum源" exit fi ybt2 #检测是否能ping通动力网站地址,通则下载 >ybt.txt if ls Discuz_X2.5_SC_UTF8.zip &> "$ke" ;then echo -n elif ping -c 3 -i 1 download.comsenz.com &> "$ke" ;then wget http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip &> "$ke" elif ls Discuz_X2.5_SC_UTF8.zip &> "$ke" ;then echo -n else echo "动力站点安装包下载失败,请手动下载“Discuz_X2.5_SC_UTF8.zip”" fi ybt2 #安装php php-mysql mariadb mariadb-server gd php-gd httpd for i in php php-mysql mariadb mariadb-server gd php-gd httpd;do yum -y install $i > "$ke" echo $? >> ybt.txt ;done if grep -v 0 ybt.txt ;then echo "php php-mysql mariadb mariadb-server gd php-gd httpd安装失败,请手动安装,程序即将退出,安装后,可重新执行" exit else echo -n fi ybt2 #调试和安装 mkdir /discuz &> "$ke" #随意创建目录 unzip -n Discuz_X2.5_SC_UTF8.zip > "$ke" #解压 yum -y install unzip \cp -rf upload/* /discuz/ #复制/upload目录所有文件 -f覆盖已经存在的目标文件而不给出提示 chown -R apache.apache /discuz/ #给/discuz/目录apache权限 #apache配置和设置端口,设置动力网站配置文件 if grep "Listen 8080" /etc/httpd/conf/httpd.conf &> "$ke" ;then echo -n else echo "Listen 8080" >> /etc/httpd/conf/httpd.conf fi cat >/etc/httpd/conf.d/discuz.conf <<EOP <VirtualHost *:8080> #设置主机为全部端口为8080 ServerName www.ybt.com DocumentRoot /discuz </VirtualHost> <Directory "/discuz"> Require all granted </Directory> EOP ybt2 #启动mysql和http if systemctl status mariadb &> "$ke";then echo -n else systemctl start mariadb &> "$ke" fi if systemctl status mariadb &> "$ke" ;then echo -n else echo "请手动启动mariadb,脚本已退出,手动启动后重新执行即可" exit fi if systemctl status httpd &> "$ke" ;then echo -n else systemctl start httpd &> "$ke" fi if systemctl status httpd &> "$ke" ;then echo -n else echo "请手动启动httpd,脚本已退出,手动启动后重新执行即可" exit fi ybt2 echo #设置在mysql创建discuz库 ybt=`which mysql` $ybt -e 'create database if not exists discuz' $ybt -e 'show databases' >> ybt.txt if grep "discuz" ybt.txt &> "$ke" ;then echo echo -e "\t\t\033[47;31m脚本执行成功,请使用ip加8080端口访问,或设置hosts域名访问,进行动力社区设置\033[0m" else echo "请手动创建discuz库后,重新执行脚本" fi
[root@ybt ~]# ./discuz.sh 进度:[##################]100% 脚本执行成功,请使用ip加8080端口访问,或设置hosts域名访问,进行动力社区设置