1.什么是shell脚本?
1.1 hello world入门
中间需要修改权限
chmod 777 demo1.sh
1.2 Shell 变量
1.3 Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
1.4Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下
1.5 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
两点注意:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
- 完整的表达式要被 ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
1.6关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字 .
1.7 布尔运算符
1.8 逻辑运算符
2 Shell 流程控制
if [ $(ps -ef | grep -c “ssh”) -gt 1 ]; then echo “true”; fi
ps -ef | grep -c "mysql"统计某个进程的个数
3.Nginx
代理服务器–使用比较多的为nginx代理服务器
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应。
如何使用nginx
(1)安装nginx软件所需的依赖插件
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2)把我们的nginx安装包上传到linux中并解压
(3)创建一个目录作为nginx的安装目录
mkdir /usr/nginx
(4)进入nginx的解压目录
(5)设置nginx的安装路径为上面/usr/nginx
(6) 编译–安装
make
make install —安装
conf: 配置目录
html: 放置静态资源的。
logs: 日志
sbin: 启动和关闭nginx的脚本
(7)启动nginx
./nginx 开启nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件—修改完配置文件后使用该命令
(8) 访问nginx服务器
关闭防火墙
4 nginx三大核心
反向代理:
负载均衡:
动静分离:
4.1 反向代理
如何使用nginx完成反向代理
准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.—springboot项目
新建project文件夹
启动真实项目
java -jar xxxx.jar
4.2 nginx—负载均衡
修改nginx配置文件
测试:
默认负载均衡的策略为轮询策略。
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5)、url_hash(第三方)
4.3. nginx—动静分离
静态资源的统一管理。
4.4 nginx—高可用。
准备条件:
192.168.223.155 [master]
192.168.223.156 [backup]
(1)需要再每个nginx所在的主机上安装keepalived
yum install -y keepalived 安装keepalived
rpm -q -a keepalived 检查是否安装keepalived
默认再/etc/keepalived目录
两台启动nginx
启动keepalived
systemctl start keepalived
主的nginx关闭:
nginx -s stop
systemctl stop keepalived
另一台仍可用