下你所需,载你所想!
IT技术源码资料下载网站

Linux shell编程变量及自动化运维实现

:其他软件 2020-09-07 15:26:53

Linux shell编程变量及自动化运维实现

Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;
作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、
建立文件并以并行的方式协调各个程序的运行。
因此,对于用户来说,shell是最重要的实用程序,
深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。
shell能做什么:Shell 能做什么?
自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略...)
自动化批量软件部署程序 (LAMP,LNMP,Tomcat,LVS,Nginx)
应用管理程序 (KVM,集群管理扩容,MySQL,DELLR720批量RAID)
日志分析处理程序(PV, UV, 200代码, !200代码, top 100, grep/awk)
自动化备份恢复程序(MySQL完全备份/增量 + Crond)
自动化管理程序(批量远程修改密码,软件升级,配置更新)
自动化信息采集及监控程序(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
配合Zabbix信息采集(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
自动化扩容(增加云主机——>业务上线)
zabbix监控CPU 80%+|-50% Python API AWS/EC2(增加/删除云主机) + Shell Script(业务上线)
俄罗斯方块,打印三角形,打印圣诞树,打印五角星,运行小火车,坦克大战,排序算法实现
Shell可以做任何事(一切取决于业务需求)
2.bash shell
一,shell特性:易学,高效。
二,shell解释器有哪些:shell 命令就是前一阶段所学习的大部分命令。 cp ls date组合到一起。
Linux支持的shell有哪些呢?
cat /etc/shells

chsh -l
3.变量
一,简介:shell 变量? 用一个固定的字符串去表示不固定的内容,便于修改。
二,变量的类型
自定义变量
特性:1. 自定义变量(示例:ping01.sh引入变量)
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
示例0:使用变量前。麻烦
ping -c1 192.168.100.10 &>/dev/null && echo 192.168.100.10up || echo 192.168.100.10down
使用变量后,简洁
#!/bin/bash
ip=192.168.100.10
ping -c1 $ip &>/dev/null && echo $ip up || echo "$ip down"
3变量赋值(定义变量)
一,显示赋值:变量名=变量值
示例:
ip1=192.168.1.251
school="BeiJing 1000phone"
today1=date +%F
today2=$(date +%F)
二,read 从键盘读入变量值
read 变量名
read -p "提示信息: " 变量名
read -t 5 -p "提示信息: " 变量名 //-t 等待5秒,后超时
read -n 2 变量名 //-n 只记录几个字符