发表于: 2017-12-14 21:19:48

1 667


今天完成的事情:基本完成了 配置nginx文件的脚本  脚本如下 

#!/bin/bash

cd /data/deploy/conf/

read -p"请输入前台域名(请向施星大佬申请):"  var0

read -p"请输入后台域名(请向施星大佬申请):"  var1

read -p"请输入项目名 统一使用小写:"  var2

read -p"请输入组名 统一使用小写 :"  var3

read -p"请输入前台端口:"  var4

read -p"请输入后台端口:"  var5

read -p"请输入前端前台代码路径:"  var6

read -p"请输入前端后台代码路径:"  var7

echo 你的域名是  $var0  $var1

echo 你的项目名是  $var2

echo 你的组名是  $var3

echo 你的前台端口是  $var4

echo 你的后台端口是  $var5

echo 你的前台代码路径是  $var6

echo 你的后台代码路径是  $var7

cd /data/deploy/conf/

sed -i '$ a\# '$var2''$var3'  前台 \

server {\

  listen                       80; \

 server_name         '$var0';\

chunked_transfer_encoding    on;\

proxy_http_version           1.1;\

 proxy_set_header             Connection "";\

 proxy_set_header             Host            $host;\

 proxy_set_header             X-Real-IP       $remote_addr;\

 proxy_set_header             X-Forwarded-For $proxy_add_x_forwarded_for;\

  include    location_'$var2'_'$var3'_home.conf;\

}' servers.conf

sleep 1

sed -i '$ a\# '$var2''$var3'  后台 \

server {\

  listen                       80; \

 server_name         '$var1';\

chunked_transfer_encoding    on;\

proxy_http_version           1.1;\

 proxy_set_header             Connection "";\

 proxy_set_header             Host            $host;\

 proxy_set_header             X-Real-IP       $remote_addr;\

 proxy_set_header             X-Forwarded-For $proxy_add_x_forwarded_for;\

  include    location_'$var2'_'$var3'_admin.conf;\

}' servers.conf

echo 新增servers.conf完成

cd /data/deploy/conf/

sed -i '$ a\#'$var2'-'$var3'组 前台  \

upstream '$var2'_'$var3'_home_web{ \

server 127.0.0.1:'$var4';\

    keepalive 32;\

}' upstreams.conf

sed -i '$ a\#'$var2'-'$var3'组  \

upstream '$var2'_'$var3'_admin_web{ \

server 127.0.0.1:'$var5';\

    keepalive 32;\

}' upstreams.conf

echo 新增upstreams.conf完成

cd /data/deploy/conf/

touch location_"$var2"_"$var3"_home.conf

echo "location /{ 

     root   $var6; 

     index  index.html index.htm app.js;

     allow all;

}

location ~ /js/.*.(js|css)$ {

     root $var6;

}

location ~ /css/.*.(png|css|jpg)$ {

     root $var6;

}">> location_"$var2"_"$var3"_home.conf

sed -i '$ a\location /a  {\

 proxy_pass   http://'$var2'_'$var3'_home_web;\

        proxy_set_header        Host      $host; }' location_"$var2"_"$var3"_home.conf

touch location_"$var2"_"$var3"_admin.conf

echo "location /{ 

     root   $var7; 

     index  index.html index.htm app.js;

     allow all;

}

location ~ /js/.*.(js|css)$ {

     root $var7;

}

location ~ /css/.*.(png|css|jpg)$ {

     root $var7;

}">> location_"$var2"_"$var3"_admin.conf

sed -i '$ a\location /a  {\

        proxy_pass   http://'$var2'_'$var3'_admin_web;\

        proxy_set_header     Host       $host; }' location_"$var2"_"$var3"_admin.conf

明天计划的事情: 安心写接口 不玩服务器了 

遇到的问题:各种错误 主要是由于引入变量 特殊字符是否要转义 引起的

中英文切换错误 就更恐怖了 千万注意

sed: -e expression #1, char 29: extra characters after command

sed可以认为是个根据行来编辑的  如果新建一个空文件 他就不好使 就得改用echo
收获:read -p"XXXX:"  var0 输入内容 赋值给局部变量var0  一般引用这个变量 用”var0“ 

echo 后面可以直接跟var0   不用引号  用应该也行

sed命令 在文件最后新增 使用如下    sed -i '$ a\# '$var2''$var3'  前台 \

-i代表直接修改文件内容 不显示出来 $ 是匹配最后一行 a\代表 

注意1 换行需要在每行最后使用\ 千万别用/   

注意2 在sed中引用变量 众说纷纭 能够正常使用的是sed ’    ‘  中间变量使用’$var0‘引入

注意3  莫名其妙}报错   sed unexpected `}'    注意4 其中""$ 都不需要转义正则另算 

echo 命令 

在脚本中 echo ”“  中间用变量直接$var3   如果用$要转义 正则另算 


/t 代表制表符 其实和tab键一致    他代表多少 需要下面三个东西

单词的长度用 wordLength 表示 制表符的宽度用 tabSize 表示,制表符所代表的空白字符的个数用 tabAppearSpaceLength 表示,这三者满足两个条件

tabAppearSpaceLength >=1 && tabAppearSpaceLength <= tabSize

(wordLength + tabAppearSpaceLength) % tabSize == 0

单词长度是他本身 制表符代表的空白字符 可能是4 也可能是8  


echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

该命令的一般格式为: echo [ -n ] 字符串

其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

$( )中放的是命令,相当于` `,例如todaydate=$(date +%Y%m%d)意思是执行date命令,返回执行结果给变量todaydate,也可以写为todaydate=`date +%Y%m%d`;

${ }中放的是变量,例如echo ${PATH}取PATH变量的值并打印,也可以不加括号比如$PATH    可以${  $()}




返回列表 返回列表
评论

    分享到