<>自动化与运维可以做什么

消除无效率 - 运维工作的手动工作,如果可以实现自动化,将显著提升效率水平。

减少错误 - 即使最谨慎的人,也会犯错,尤其是面对着重复性工作。通过运维自动化工具来完成这样的工作,结果是显而易见的,错误率将大大降低。

最大化员工使用 -
通过运维自动化,运维专家们的经历可以集中在更复杂、更有战略意义的业务问题上。同时也降低了雇佣更多员工来应对工作量增加的需求。同样一批人,有自动化运维,就有更大的能量来创造价值。

提高满意度水平 -
自动化运维工具帮助IT运维,为内部和外部客户提供高水平支持。无论是通过提供自助服务选项,还是大幅缩短时间(最多达90%)来减少联系和等待服务台的需求,自动化运维让我们可以更好得拥抱SLA。

降低成本 - 系统中断、人为错误、重复工作,会导致不菲的费用和代价,而自动化运维几乎可以将这些成本完全消除。


为了获得最佳的结果,运维应该将自动化最为其“最佳实践”的一部分,尽可能多的实施自动化流程。除了成本和费用上的减少,无数例子证明,其业务敏捷性和整体服务提供也将呈指数级增长。

以上部分来自https://blog.csdn.net/zyqduron/article/details/77744793

运维人员眼中的运维


自动化运维的好处是如此之明显,而自动化运维的实现基础便是shell

<>一、shell简介

<>1、什么是shell

shell的定义: 在计算机科学中,Shell就是一个命令解释器。

shell是位于操作系统和应用程序之间,是他们二者最主要的接口,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。

总结:一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具

<>2、shell的分类

基本上shell分两大类:图形界面shell和命令行shell 
图形界面shell:图形界面shell就是我们常说的桌面  
命令行式shell:

* windows系统: cmd.exe 命令提示字符
* linux系统: sh / csh / ksh / bash / …
我们常说的shell是命令行式的shell,在工作中常用的是linux系统下的bash


<>3、查看系统的shell信息

* 查看当前系统的shell类型 python@ubuntu:~$ echo $SHELL /bin/bash
* 查看当前系统环境支持的shell python@ubuntu:~$ cat /etc/shells /bin/sh /bin/dash
/bin/bash /bin/rbash
<>4、shell脚本介绍

shell使用方式

* 手工方式:手工敲击键盘,在shell的命令行输入命令,按Enter后,执行通过键盘输入的命令,然后shell返回并显示命令执行的结果,
逐行输入命令、逐行进行确认执行
* 脚本方式: 就是说我们把手工执行的命令a,写到一个脚本文件b中,然后通过执行脚本b,达到执行命令a的效果.
* shell脚本定义: 当可执行的Linux命令或语句不在命令行状态下执行,而是通过一个文件执行时,我们将这个文件为shell脚本。
<>5、shell脚本示例

创建临时shell脚本文件 hello.sh <http://hello.sh>
python@ubuntu:~/Desktop$ gedit hello.sh
在文件中写入
#!/bin/bash echo "hello world"
输出结果:成功得在终端中输出hello world
python@ubuntu:~/Desktop$ ./hello.sh hello world
<>二、shell基础知识

<>1 shell脚本

<>1.1 创建脚本

脚本创建工具:

* 创建脚本的常见编辑器是 vi/vim
脚本命名:

* shell脚本的命名简单来说就是要有意义,方便我们通过脚本名,来知道这个文件是干什么用的
脚本内容:

* 各种可以执行的命令
注释内容:

* 单行注释:
除了首行的#不是注释外,其他所有行内容,只要首个字符是#,那么就表示该行是注释 #!/bin/bash echo '1' # echo '2' #
这一行就表示注释 echo '3'
* 多行注释
多行注释有两种方法::<<字符 ... 字符

解释一下,首先":“在shell中的意思"什么都不做”,而>>符号代表重定向,用字符作为边界,合起来就是表示"这个边界内的内容什么都不做",作为边界的字符可以说字母和特殊字符,但是通常为了不和注释中的内容混淆,都以特殊字符作为边界
#!/bin/bash echo '1' :<<! echo '2' echo '3' echo '4' ! echo '5'
<>1.2 脚本执行

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:00ps python@ubuntu:~/Desktop$ bash test.sh # 第一种方法 PID TTY TIME CMD
34863 pts/1 00:00:00bash # 当前终端开启的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:00ps
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.3 脚本开发规范

(1)脚本命名要有意义,文件后缀是.sh <http://xn--5nqz7jm0rjtas67g.sh>

(2)脚本文件首行是而且必须是脚本解释器
#!/bin/bash
(3)脚本文件解释器后面要有脚本的基本信息等内容

(4)脚本文件中尽量不用中文注释

* 尽量用英文注释,防止本机或切换系统环境后中文乱码的困扰
* 常见的注释信息:脚本名称、脚本功能描述、脚本版本、脚本作者、联系方式等
(5)脚本文件常见执行方式:bash 脚本名

(6)脚本内容执行:从上到下,依次执行

(7)代码书写优秀习惯

* 成对内容的一次性写出来,防止遗漏。
如:()、{}、[]、’’、``、""
* []中括号两端要有空格,书写时即可留出空格[ ],然后再退格书写内容
* 流程控制语句一次性书写完,再添加内容
(8)通过缩进让代码易读(即该有空格的地方就要有空格)