Shell编程之if语法练习(LNMP)全过程
大家好,我是延凯,本人原来在CSDN写作已经快一年了 都是相关Linux运维这方面的技术知识,现在搬到博客园也是我一直想的,本博客主要写Python,docker,shell等偏向开发云计算等知识点,谢谢各位,声明:(原先的CSDN也会不定时更新Linux运维等方面的知识!)
#!/bin/bash # DATE:Wed Jan 17 1# ywyankerp@163.com #this is a yankerp # The Nginx service is being installed ROOT_ID=0 ML=/usr/local/src NGINX_ML=/usr/local/src/nginx-1.12.2 PML=/usr/local/src/php-5.6.27 QD=`netstat -anpt | grep 80 | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1` ADDR=`ip a | grep eno16777728$ | awk '{print $2}' | cut -d "/" -f1` MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4` MAR=`rpm -qa | grep mariadb` cd $ML && { wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null mv Centos-7.repo /etc/yum.repos.d/Centos-Base.repo yum clean all &> /dev/null yum makecache &> /dev/null } if [ $? -eq 0 ] then echo "Yum源更新完毕,开始安装!!!" else echo "Yum源error" exit 1 fi echo "Yum源配置成功" if [ "$UID" -eq "$ROOT_ID" ] then echo "root用户运行中" && systemctl stop firewalld && yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl-devel &> /dev/null else echo "请使用Root用户运行" exit 1 fi echo "依赖包安装完成!" cd $ML || { echo "进入目录失败!!!" exit 1 } wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && { tar zxf nginx-1.12.2.tar.gz && groupadd www && useradd -g www www -s /sbin/nologin } echo "Nginx包下载成功" cd $NGINX_ML && { ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www &> /dev/null && make &> /dev/null && make install &> /dev/null } if [ $? -eq "0" ] then ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx启动成功,请访问http://$ADDR:80" else echo "Nginx启动失败!!!" exit 1 fi #Start installing MySQL5.7! echo "开始下载MySQL二进制安装包,请稍等..." if [ -z "$MAR" ] then echo "开始安装MySQL" fi if [ -n "$MAR" ] then rpm -e mariadb-libs --nodeps && echo "卸载mariadb成功!正式安装MySQL" fi cd $ML || { echo "进入目录失败!!!" exit 1 } wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && { tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz && mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql cd /usr/local/mysql/ && mkdir data && mkdir log && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql } cat << EOF >/etc/my.cnf [client] socket=/usr/local/mysql/mysql.sock [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data pid-file=/usr/local/mysql/data/mysqld.pid socket=/usr/local/mysql/mysql.sock log_error=/usr/local/mysql/log/mysql.err EOF if [ ! -d /etc/my.cnf ] then chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/null else echo "错误!!!" fi if [ $? -eq "0" ] then echo "MySQL正式安装完成杀青!" else echo "MySQL安装失败!!!" exit 1 fi #PHP install sccessy yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null if [ $? -eq 0 ] then echo "依赖包安装成功!!!" else echo "依赖包安装失败!!!" fi cd $ML || { echo "进入目录失败!!!" exit 1 } wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null && { tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7/ && ./configure --prefix=/usr/local/libmcrypt &> /dev/null && make &> /dev/null && make install &> /dev/null } if [ $? -eq 0 ] then echo "Libmcrypt安装成功!" else echo "Libmcrypt-ERROR!" exit 1 fi # PHP install cd $ML || { echo "进入目录失败!!!" exit 1 } wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && { tar zxf php-5.6.27.tar.gz && cd php-5.6.27/ && ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts &> /dev/null } if [ $? -eq 0 ] then make &> /dev/null && make install &> /dev/null && echo "PHP编译安装成功,正在配置请稍等...." else echo "PHP安装失败" fi cd $PML || { echo "进入目录失败!!!" exit 1 } cp php.ini-production /etc/php.ini && { cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on } if [ $? -eq 0 ] then cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf && echo "复制主配置成功" else echo "PHP权限失败,请重试!" fi if [ ! -d /usr/local/php5.6/etc/php-fpm.conf ] then sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.conf sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.conf sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.conf sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.conf else echo "NONONO" fi if [ $? -eq 0 ] then systemctl start php-fpm && echo "PHP启动成功" else echo "启动PHP失败" fi #配置nginx解析php if [ ! -d /usr/local/nginx/conf/nginx.conf ] then sed -i 's/index index.html index.htm;/index index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf sed -i 's/# root html;/ root html;/g' /usr/local/nginx/conf/nginx.conf sed -i 's/# fastcgi_pass 127.0.0.1:9000;/ fastcgi_pass 127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf sed -i 's/# fastcgi_index index.php;/ fastcgi_index index.php;/g' /usr/local/nginx/conf/nginx.conf sed -i 's*# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;* fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.conf sed -i 's/# include fastcgi_params;/ include fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf else echo "解析PHP失败!!!" fi touch /usr/local/nginx/html/yankerp.php cat << EOF >/usr/local/nginx/html/yankerp.php <?php phpinfo(); ?> EOF if [ ! -d /usr/local/nginx/html/yankerp.php ] then nginx -s reload && systemctl restart php-fpm else echo "测试目录文件失败" fi wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &> /dev/null && yum install -y sl &> /dev/null sl if [ $? -eq 0 ] then echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php" else echo "安装失败" fi if [ $? -eq 0 ] then echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php" else echo "安装失败" fi ###################################################################################################This is a yankerp~
以上使用的过程都是一些if的判断,这样的练习能够熟练掌握shell的if语句的作用,以及对if语句有一些清晰的了解,希望读者能够自己也去写个shell脚本 尤其是刚接触if语句的朋友么,这样才能够提高自己的shell知识,同时也可以掌握shell之if语句的语法以及作用,如果完全可以看懂以上脚本的朋友么 那么恭喜你,你以及对if语句有一些认识了
再见!
转载于:https://www.cnblogs.com/YankaiJY/p/8831115.html
Shell编程之if语法练习(LNMP)全过程相关推荐
- 详解Shell编程之if语句实战(小结)
本篇文章主要介绍了详解Shell编程之if语句实战(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 对于if语句,其实很多人都肯定的听说过,那么if语句到底是什么, ...
- shell编程之case语句及函数
shell编程之case语句 文章目录 shell编程之case语句 一.case语句 1. 语法结构 2. 应用案例 二.函数 1. 什么是函数? 2. 如何定义函数? 3. 函数如何调用? ㈠ 当 ...
- linux下简单的shellfor循环程序,对Linux下shell编程之for循环的实例讲解
对Linux下shell编程之for循环的实例讲解 linux 下 for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致 一.常用for循环结构 #语法一 ...
- shell编程之 if 判断语句
shell编程之 if 判断语句 判断语句介绍 - if 单if 语句(一个条件一个判断结果) if..else 语句(一个条件两个判断结果) if..elif..else 语句(多条件多个判断结果) ...
- 【shell编程之expr的使用】
shell编程之expr的使用 语法格式 获取expr运算的结果 expr进行算数运算 expr进行字符串的处理 练习 expr是一个shell命令,可以使用man expr查看命令的帮助手册 语法格 ...
- linux dash 全局变量,Shell编程之shell基础
一.shell介绍 1.编程语言分类 2.shell简介 3.shell脚本 1)什么是shell脚本? 2)什么时候用到脚本? 3)shell脚本能干啥? 4)shell脚本的基本写法 5)shel ...
- Shell编程之for循环
for 循环 第一种写法: 1.基本语法(一) for (( 初始值;循环控制条件;变量变化 )) do 程序 done 2.案例 (1)计算1到100的和 第二种写法 基本语法(二) for 变量 ...
- shell编程之if判断总结
最近常接触shell脚本,作为shell编程学习总结的第一篇,常用的if判断. 一.if的基本语法: if [ command ];then 符合该条件执行的语句 elif [ command ...
- shell编程之awk
一.awk简介 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.可以在命令行中使用,但更多是作为脚本来使用. awk的 ...
最新文章
- QQ好友列表数据模型封装
- python3连接mysql数据库_python3.4连接mysql数据库
- ip设置 kali 重置_和我一起配置黑客系统kali,带你成为大牛,你真的准备好了吗?...
- 二维的完整形式是什么?
- 阮一峰:炫耀从来不是我的动机,好奇才是
- Nginx源码分析 - 主流程篇 - Nginx的启动流程(09)
- mysql列不明确_PHP和MYSQL:如何解决JOIN操作中不明确的列名?
- 无法远程连接 mysql(Ubuntu)
- springboot办公OA考勤请假系统java
- ShadowGun代码
- Bootstrap3 网页模板
- c语言斗兽棋源代码,智能斗兽棋-智能斗兽棋下载-医源世界
- 微分方程求通解推导-----专升本
- 【css太极图】html+css用一个div画出太极图
- 永磁同步电机力矩控制(九):定子磁场中的若干相关概念
- stl文件用proe怎么打开_3dMax怎么导入proe的文件渲染?3dmax导入stl文件过程
- 腾讯云通信WebIM事件回调的坑~
- 做好项目成本核算需要注意哪些事项
- MCU Alarm报警监测
- 射频标签技术特征的分类
热门文章
- python3(十二)打开和关闭文件
- 为什么银行大额存单没有4年期?想存4年期怎么办?
- 信用贷款额度是怎么确定的?
- WordPress的用户系统总结
- $unit编译单元声明
- 水晶报表10高级开发版下载及序列号
- java 验证码_Java - 验证码 - 由Kaptcha组件实现
- 将excel转为python的字典_python读取excel表并把数据转存为字典
- python正负数转换,如何在Python中将负整数值转换为十六进制
- vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...