linux数据库自动化运维shell示例,Linux shell编程及自动化运维实现 第1章 变量

1.shell前言

一,什么是shell

3b7916eb59bc93b2dc8f5fce69459af2.png

二,shell语言特点:SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称。

Shell本身是一个用C语言编写的程序,它是用户使用Unix/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 只记录几个字符

read -p "请输入您测试的IP地址:" ip

ping -c1 $ip &>/dev/null && echo " $ip up" || echo "$ip

down"

~

6001b7fc37ebe3d92f2ab1813ecf0104.png

ad65a1d91c6b4d93362b4b0f4c9a3b00.png

三,注意事项:

1.“ ” 弱引用

2.' ' 强引用

3.` ` 命令替换

四,环境变量:定义环境变量: 方法一 export back_dir2=/home/backup

方法二 export back_dir1 将自定义变量转换成环境变量

引用环境变量: $变量名 或 ${变量名}

查看环境变量: echo $变量名 env 例如env |grep back_dir2

取消环境变量: unset 变量名

变量作用范围: 在当前shell和子shell有效 !!!!!!!!!!!!!!!!!!!!!!!

4.位置变量和预定义变量:

语法

命令 参数1 参数2 参数3 ....9以后特殊定义

$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ...

预先定义过的变量

$0 脚本名

$* 所有的参数

$@ 所有的参数

$# 参数的个数

$$ 当前进程的PID

$! 上一个后台进程的PID

$? 上一个命令的返回值 0表示成功

示例:

7c0804ec2f446ce650c83908a2fcaacb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值