运维与shell脚本

运维工作内容

负载均衡GSLB

  • 方式
    • 轮询
    • ip
    • hash:这样的话由于hash值是一样的,那么服务器可以为用户做缓存
    • 权重:按照服务器能力,权重

业务运营支持系统BOSS

  • 例如:计费、结算

互联网数据中心(IDC):机房

互联网服务提供商(ISP):选电信还是联通

内容分发网络(CDN)

告警:

  • 方法访问、日志
  • 分类:业务、系统层(硬件)

shell

查看用户的shell

  • 运维与shell脚本_第1张图片

ubuntu默认用的是bash,可以通过sh切换到sh的shell(没有高亮显示)

  • shell执行命令是
    • shell 又叫命令解释器,可以一次执行好多命令
    • 可以用()把命令包住执行,是用一个子进程来执行的;
  • echo $?:表示上一个程序

Nginx配置

  • main 配置
  • event配置
    • worker_rlimit_nofile 1024;最多能打开多少个文件(一个socket就是一个文件描述符)
  • html 配置
    • mime.types(多媒体类型): 定义各种格式后缀,是属于什么类型的;在mime.types文件里可以看到定义的各种类型
    • application/octet-stream:定义了如果后缀名在mime.types里面没有的话(不能识别),就,按照字节(二进制)传输
    • sendfile 默认on:设置直接从内核空间传给用户,不经过用户空间
    • keepalive:0表示短连接
    • gzip:是否压缩传输
  • server 配置
    • listen :监听端口
    • root:根目录
    • location:反向代理,
    • upstream:负载均衡

标准输入输出

运维与shell脚本_第2张图片

  • 输入/输出重定向
    运维与shell脚本_第3张图片

a+,w+,r+(都是读写)

  • a+:追加
  • w+:覆盖
  • r+:文件不存在,不创建

函数

  • 传参方式跟C一样
    运维与shell脚本_第4张图片

  • Shell脚本中用#表示注释,相当于C语言的//注释。但如果#位于第一行开头,并且是#!(称为Shebang)则例外,它表示该脚本使用后面指定的解释器/bin/sh解释执行。如果把这个脚本文件加上可执行权限然后执行:

	chmod a+x test.sh
	./test.sh
  • Shell会fork一个子进程并调用exec执行./test.sh这个程序,exec系统调用应该把子进程的代码段替换成./test.sh程序的代码段,并从它的_start开始执行。然而test.sh是个文本文件,根本没有代码段和_start函数,怎么办呢?其实exec还有另外一种机制,如果要执行的是一个文本文件,并且第一行用Shebang指定了解释器,则用解释器程序的代码段替换当前进程,并且从解释器的_start开始执行,而这个文本文件被当作命令行参数传给解释器。因此,执行上述脚本相当于执行程序
$ /bin/sh ./test.sh
  • 以这种方式执行不需要test.sh文件具有可执行权限。

  • 如果将命令行下输入的命令用()括号括起来,那么也会fork出一个子Shell执行小括号中的命令,一行中可以输入由分号;隔开的多个命令,比如:

$ (cd ..;ls -l)
  • 和上面两种方法执行Shell脚本的效果是相同的,cd …命令改变的是子Shell的PWD,而不会影响到交互式Shell。然而命令
$ cd ..;ls -l
  • 则有不同的效果,cd …命令是直接在交互式Shell下执行的,改变交互式Shell的PWD,然而这种方式相当于这样执行Shell脚本:
$ source ./test.sh
或者

$ . ./test.sh
  • 用于算术计算, ( ( ) ) 中 的 S h e l l 变 量 取 值 将 转 换 成 整 数 , 同 样 含 义 的 (())中的Shell变量取值将转换成整数,同样含义的 (())Shell[]等价例如:

$ VAR=45
$ echo ( ( (( ((VAR+3))

nginx

正向代理(翻–墙)

  • 可以隐藏客户端身份
    运维与shell脚本_第5张图片

反向代理

运维与shell脚本_第6张图片

  • Nginx 作用:
    • 反向代理,
    • 负载均衡,
    • 静态资源服务器(所以建议主页做成静态的,直接放在Nginx上返回给用户)
    • 帮助业务服务器管理非活跃链接(epoll)
  • 理解
  • 运维与shell脚本_第7张图片

你可能感兴趣的:(Python,后台)