消除无效率 - 运维工作的手动工作,如果可以实现自动化,将显著提升效率水平。
减少错误 - 即使最谨慎的人,也会犯错,尤其是面对着重复性工作。通过运维自动化工具来完成这样的工作,结果是显而易见的,错误率将大大降低。
最大化员工使用 - 通过运维自动化,运维专家们的经历可以集中在更复杂、更有战略意义的业务问题上。同时也降低了雇佣更多员工来应对工作量增加的需求。同样一批人,有自动化运维,就有更大的能量来创造价值。
提高满意度水平 - 自动化运维工具帮助IT运维,为内部和外部客户提供高水平支持。无论是通过提供自助服务选项,还是大幅缩短时间(最多达90%)来减少联系和等待服务台的需求,自动化运维让我们可以更好得拥抱SLA。
降低成本 - 系统中断、人为错误、重复工作,会导致不菲的费用和代价,而自动化运维几乎可以将这些成本完全消除。
为了获得最佳的结果,运维应该将自动化最为其“最佳实践”的一部分,尽可能多的实施自动化流程。除了成本和费用上的减少,无数例子证明,其业务敏捷性和整体服务提供也将呈指数级增长。
以上部分来自https://blog.csdn.net/zyqduron/article/details/77744793
自动化运维的好处是如此之明显,而自动化运维的实现基础便是shell
shell的定义: 在计算机科学中,Shell就是一个命令解释器。
shell是位于操作系统和应用程序之间,是他们二者最主要的接口,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。
总结:一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具
基本上shell分两大类:图形界面shell和命令行shell
图形界面shell:图形界面shell就是我们常说的桌面
命令行式shell:
我们常说的shell是命令行式的shell,在工作中常用的是linux系统下的bash
python@ubuntu:~$ echo $SHELL
/bin/bash
python@ubuntu:~$ cat /etc/shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
shell使用方式
创建临时shell脚本文件 hello.sh
python@ubuntu:~/Desktop$ gedit hello.sh
在文件中写入
#!/bin/bash
echo "hello world"
输出结果:成功得在终端中输出hello world
python@ubuntu:~/Desktop$ ./hello.sh
hello world
脚本创建工具:
脚本命名:
脚本内容:
注释内容:
#!/bin/bash
echo '1'
# echo '2' # 这一行就表示注释
echo '3'
:<<字符 ... 字符
#!/bin/bash
echo '1'
:<<! echo '2'
echo '3'
echo '4'
!
echo '5'
Shell脚本的执行通常可以采用以下几种方式
# 1、使用bash执行
bash /path/to/script-name 或
/bin/bash /path/to/script-name (强烈推荐使用) 或
# 2、脚本文件具有可执行权限的自己执行
/path/to/script-name 或
./script-name (当前路径下执行脚本)
# 3、使用source或者.点号,加载shell脚本文件内容,使shell脚本内容环境和当前用户环境一致
source script-name 或
. script-name (注意“.“点号后面有空格)
注意:source或者.点号与其他执行方式的比较
1、source或者.点号执行方式不会开启子进程
test.sh 脚本内容如下:
#!/bin/bash
ps
终端执行命令如下:
python@ubuntu:~/Desktop$ ps # 返回当前终端运行的进程
PID TTY TIME CMD
34863 pts/1 00:00:00 bash # 当前终端开启的bash进程
34891 pts/1 00:00:00 ps
python@ubuntu:~/Desktop$ bash test.sh # 第一种方法
PID TTY TIME CMD
34863 pts/1 00:00:00 bash # 当前终端开启的bash进程
34894 pts/1 00:00:00 bash # 执行bash test.sh命令时开启了一个子进程
34895 pts/1 00:00:00 ps
python@ubuntu:~/Desktop$ source test.sh # 第三种方法
PID TTY TIME CMD
34863 pts/1 00:00:00 bash # 只有当前终端开启的bash进程,执行
34900 pts/1 00:00:00 ps
2、source或者.点号执行方式能共享当前终端定义的变量
test.sh 脚本内容如下:
#!/bin/bash
echo $user
终端执行命令如下:
python@ubuntu:~/Desktop$ user=python # 当前终端定义变量
python@ubuntu:~/Desktop$ echo $user # 打印变量
python
python@ubuntu:~/Desktop$ bash test.sh # 使用bash方式会开子进程,不能使用当前终端定义的变量
python@ubuntu:~/Desktop$ source test.sh # 使用source方式不会开子进程,能使用当前终端定义的变量
python
(1)脚本命名要有意义,文件后缀是.sh
(2)脚本文件首行是而且必须是脚本解释器
#!/bin/bash
(3)脚本文件解释器后面要有脚本的基本信息等内容
(4)脚本文件中尽量不用中文注释
(5)脚本文件常见执行方式:bash 脚本名
(6)脚本内容执行:从上到下,依次执行
(7)代码书写优秀习惯
(8)通过缩进让代码易读(即该有空格的地方就要有空格)