前言

Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

互联网Linux运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。运维的职责覆盖了产品从设计到发布、运行维护、变更升级及至下线的生命周期。

                                            运维团队的工作分类

 

1-应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作,工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。

2-系统运维(SYS):负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修,工作职责如下:IDC数据中心建设、网络建设、LVS负载均衡和SNAT建设、CDN规划和建设、服务器选型、交付和维护、内核选型和OS相关维护工作、资产管理、基础服务建设。

3-数据库运维(DBA):数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下:设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化、自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统。

4-运维安全(SEC):运维安全负责网络、系统和业务等方面的安全加固工作,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理,工作内容如下:安全制度建立、安全培训、风险评估、安全建设、安全合规、应急响应。

 

软件和技能

运维平台和工具包括:

  • Web服务器:apache、tomcat、nginx、lighttpd

  • 监控:nagios、ganglia、cacti、zabbix

  • 自动部署:ansible、sshpt、salt

  • 配置管理:puppet、cfengine

  • 负载均衡:lvs、haproxy、nginx

  • 传输工具:scribe、flume

  • 备份工具:rsync、wget

  • 数据库:mysql、oracle、sqlserver

  • 分布式平台:hdfs、mapreduce、spark、storm、hive

  • 分布式数据库:hbase、cassandra、redis、MongoDB

  • 容器:lxc、docker

  • 虚拟化:openstack、xen、kvm

  • 安全:kerberos、selinux、acl、iptables

  • 问题追查:netstat、top、tcpdump、last

新时代运维

传统的运维该如何转型呢?这里给出一点小的建议: 大致需要学习下这四个部分:

  • 自动化运维(Ansible,Puppet,Saltstack等)
  • Devops(Docker,K8s,Jenkins,Jira等),
  • 云服务技术(虚拟化、OpenStack、AWS及阿里云各种产品服务架构等)
  • python

计算机的组成及其功能

冯.诺伊曼体系中,计算机有五大基本部件:控制器、运算器、存储器、输入设备、输出设备。(电子专业学过,哈哈) 
实际应用中,计算机包括CPU(控制器和运算器)、存储器(Memory内存和Disk外存)、Input输入设备、Output输出设备。

 

CPU由运算器、控制器、寄存器、缓存、指令集组成。 

a、运算器是实现算术运算和逻辑运算的部件

Linux发行版有三大主流分支:Debian、Slackware、Redhat,包含的主要发行版分别如下:

  1. Debian 
    • Ubuntu 
      Linux mint
    • Knopix
  2. Slackware 
    • S.u.S.E 
      SLES-SuSE Linux Enterprise 
      OpenSuSE
  3. Redhat 
    • RHEL-RedHat Enterprise Linux 
      CentOS-Community ENTerprise
    • Fedore Core

Linux的哲学思想

1. 一切皆文件 
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义; 
对文件的操作有:open,read,write,close,delete,create 
2. 由众多功能单一的程序组成 
一个程序只做一件事,并且做好,保证了Linux内核的高效运行; 
3. 组合小程序完成复杂任务 
通过连接多个简单的程序实现复杂的功能; 
4. 尽量避免和用户交互 
更贴近编程,易于以编程的方式实现自动化任务; 
5. 使用文本文件保存配置信息 

修改配置信息只需要任意一款文本编辑器就可以进行。

 

Linux系统的启动过程可以分为5个阶段

内核的引导    运行 init    系统初始化    建立终端     用户登录系统

用户的登录方式有三种:

  • (1)命令行登录
  • (2)ssh登录  
  • (3)图形界面登录

正确的关机流程为:sync > shutdown > reboot > halt

不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

 

cache:为了解决读磁盘的效率    buffer:为了解决写磁盘的效率

linux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。

 

sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。

如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。

shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟
后关机,并且会显示在登陆用户的当前屏幕中。

Shutdown –h now 立马关机

Shutdown –h 20:25 系统会在今天20:25关机

Shutdown –h +10 十分钟后关机

Shutdown –r now 系统立马重启

Shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

Linux基础教程之基础命令总结

基本命令

清屏:clear 或者 ctrl+l

查看内存(free)
查看磁盘(df)
查看cpu占用率(top)
查看内核版本(uname)

uname命令用于查看系统内核与系统版本等信息, windows是systeminfo

cat命令用于查看纯文本文件(内容较少的)

more命令用于查看纯文本文件(内容较多的)

less查看课后退

 

ls命令  list 列出指定目录下的内容

pwd命令   printing working directory 显示当前工作目录

cd 命令  change directory 切换目录

cp命令 copy 用于复制源文件或者目录到

    -f:强制覆盖目标文件;

    -r, -R:递归复制目录;

mkdir命令  创建目录make directories

rm    删除命令remove   ls删除前可以用来看下

    -r  将参数中列出的全部目录和子目录均递归地删除

注意:删除命令是一个非常危险的操作,所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站),过段时间后,非常明确肯定不要了再删除。

权限

(1)user (2)group (3)others三种身份啦! 那么我们就可以藉由u, g, o来代表三种身份的权限! a 则代表 all 亦即全部的身份!

加权限

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

减去权限:

<span style="color:#880000">#  chmod  a-x test1</span>

关机

shutdnow -h -now马上关机   shutdnow  +30   :30分钟后关机

文本查看类命令

cat命令  concatenate查看文本文件内容

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

less命令   翻屏查看文件

    less file

more命令  从头到尾查看文件,不可以回头,不是很好用

 

  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

head命令   显示文件的前n行,默认是显示前十行

    语法格式:head [参数]… [文件]…

    -c<字节> 显示字节数。  head  -c 50 /etc/rc.d/init.d/functions 显示前50字节,要是改为-50.则显示文件后50字节。

    -n<行数> 显示的行数。显示文件的前50行:head  -50 /etc/rc.d/init.d/functions

 stat命令:显示文件和文件的系统熟性,包括文件名,大小,时间戳等信息,通俗地说就像我们看到windows右键,文件属性看到的信息类似。

网络相关类

ifconfig  或ip addr list  查看活动接口的ip地址

ss命令  ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

    例如查看22端口状态 :ss  -tnl

搜索和查询类

file命令  查看文件内容类型

type命令  判断一个命令是外部命令还是内部命令

    语法格式 type  COMMAND

 

help命令 用于shell内部命令的帮助信息

    语法格式 help COMMAND

man  命令   帮助手册

    语法格式 man COMMAND

tty  显示当前终端   虚拟终端tty,centos7启动后默认有6个tty1–tty6,alt+F1-F6键切换

伪终端是pty

echo命令  打印或输出内容,查询变量值,常用于编程

 

第二部分

 

文件管理类命令大全

1.  mkdir – make directories,创建目录

2.  rmdir – remove empty directories, 删除空目录,非空则无法删除  鸡肋

3. mv – move,移动或重命名文件

6. rm – remove,删除文件或目录

权限管理

r(read):可读取 w(write):可写入 x(execute):可执行     r:4 w:2 x:1

更改属主属组权限命令

chown:改变文件所属的用户组。

chgrp:改变文件的所有者。

chmod:改变文件的权限。

三种身份用user=u;group=g;others=o

1、chmod a=rwx
2、chmod g=rwx,u=rwx,a=rwx
3、chmod g+w,o+w

正则表达式小白读本

正则表达式分两类

  • 基本正则表达式
  • 扩展正则表达式(正则表达式的优化版,元字符的表达更简洁,更方便。)

在Linux中,正则表达式通常会配合文本过滤工具grep使用。 grep的功能强大,且简单粗暴。

 

shell脚本使用入门

1、编程基础

  •   程序:指令+数据   算法+数据结构
  •   程序编程风格:

                        过程式:以指令为中心,数据服务于指令

                        对象式:以数据为中心,指令服务于数据

  •   shell程序:提供了编程能力,解释执行

2、程序的执行方式

  •         计算机:运行二进制指令
  •         编程语言:

                    低级:汇编

                    高级:

                             编译:高级语言– >编译器–> 目标代码

                                     C,C++,C#,Go

                             解释:高级语言–> 解释器–> 机器代码

                                shell,perl , python , JAVA

                                JavaScript , ruby ,PHP

3、编程基本概念

  •        编程逻辑处理方式:

                 顺序执行

                 循环执行

  •        shell编程 :过程式、解释执行

                 编程语言的基本结构:

                   各种系统命令的组合

                   数据存储:变量、数组

                         表达式:a+b

                   语句:if

4、shell脚本基础

  •       shell脚本:

                包含一些命令或声明,并符合一定格式的文本文件

  •       格式要求:首行shebang机制

                #!/bin/bash

                # ! /usr/bin/python

                #!/usr/bin/perl

  •       shell脚本的用途有:

                >   自动化常用命令

                >   执行系统管理和故障排除

                >   创建简单的应用程序

                >   处理文本或文件

  • 强类型:变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。一般定义变量时必须指定类型参与运算必须符合类型要求;调用未声明变量会产生错误     如  java,c#
  • 弱类型:语言的运行时会隐式做数据类型转换。无须指定类型,默认均为字符型;

          参与运算会自动进行隐式类型转换;变量无须事先定义可直接调用  python

 

 

Linux包管理:rpm/yum/编译安装

程序包管理器:

将编译好的应用程序的各个组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作

 

磁盘分区

       优点:

           1、隔离系统和程序  安全

           2、安装多个0S

           3、提高修复速度

           4、实现磁盘空间配额限制

           5、优化I/O性能

 

网络基础知识详解


以太网的网络接头:分为交叉和直连RJ-45,又因为每条芯线的对应不同,而分为568A和568B接头,这两款芯线内部的顺序为:

补脑:Dos 攻击 Ping –f 10.1.250.95 –s 65507泛洪  发送大量数据包给该ip,查看网卡利用率会很高,DDOS 成千上万台计算机给指定计算机发送大量数据包

 

 

 ARP网络地址解析协议        RARP反向网络地址解析协议

        当我们想要了解某个IP配置于哪张以太网卡上面,我们主机会对整个局域网发送出ARP数据包,对方接收到ARP数据包后就会返回他们的MAC给我们,知道对方的网卡地址后就可以传递数据了,当ARP协议取得目标IP与它的网卡卡号后,就会将其记录到ARPtable(内存中)中记录20分钟,linux中对应命令 arp –n.

ACK:为1代表这人数据包为响应数据包。

 

SYN:为1代表发送端希望双方建立同步连接,表示主动连接对方

FIN:为1代表传送结束。

        192.168.0.0/255.255.255.0就是属于网络地址,

        192.168.0.255/255.255.255.0 就属于广播地址

         Host_ID同时为0表示网络地址(Network_IP)

         Net_ID同时为1表示广播地址(BroadcastIP)

 

IPV4中两种IP类别:

            Public IP:公共IP,经由InterNIC统一规划的IP,只有这种IP才可链接到Internet

            Private IP:私有IP或保留IP,不能直接连上Internet的IP,主要用于局域网络内的主机链接规划

私有IP网段:

                      Class A:10.0.0.0/8~10.255.255.255/8      移动  

                      Class B:172.16.0.0/16~172.31.255.255/16    CIDR格式:172.16.0.0/12   学校

                      Class C:192.168.0.0/24~192.168.255.255/24  CIDR格式:192.168.0.0/16  家里

              由于这三段Class的IP是预留使用的,所以并不能直接作为Internet上面的连接使用,否则会导致到处都有相同的IP。

 

IP地址,子网掩码,默认网关,DNS服务器详解

A.B.C.D/n,表示32位IP地址的前n位与A.B.C.D的前n位相同。比如192.168.1.0/24,所有前24位与192.168.1.0相同的都是这个网段的IP,由于IP地址8位一分组,24位就是前三段,也就是192.168.1.x。符合规范的这段连续的IP段就叫做一个子网。这种子网的表示方法叫做CIDR。

 

路由的功能:跨网络通信时选择传输路径。(网关)    路由器(router):可以转发不是发给自己的 IP 包的设备

 

 

网关必须和ip在同一个网段

答:这个认知其实是不成立的,我觉得这更多的是一种误解。

 

网关没必要和你的IP在一个子网。和你IP在同一个子网只会是下一跳路由

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐