1. 程式人生 > >Shell編程之if語法練習(LNMP)全過程

Shell編程之if語法練習(LNMP)全過程

bzip2 pan ++ php.ini 雲計 download mkdir -- iad

大家好,我是延凱,本人原來在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.7echo "開始下載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語句有一些認識了

    再見!

Shell編程之if語法練習(LNMP)全過程