Linux企业级应用

写在前面

本书还托管在看云,地址:https://www.kancloud.cn/djangowang/lnux_enterprise/2094925
相关视频见: https://docs.qq.com/sheet/DTlZ3b2Z0UmRPYm9X?tab=BB08J2

本书背景

《Linux企业级应用》第二版开始写作2020.12.25 , 截止时间xxxx 。 书第一版本 《Linux企业级应用》是笔者在上学时学习Linux过程中整理的学习笔记,并最终汇总成书, 汇总的过程也是我再次学习和夯实这些知识的过程,我享受着整个过程带来的快乐同时过程也让我工作上受益匪浅。 工作多年来在工作中笔者大部分时间占比是做为运维工程师和运维开发工程师,对Linux有着多年的使用经验和实战经验, 真心的希望能把这些使用经验和实战经验能够分享给更多人。

Linux不止是学习它的应用,还要了解他的发展经过、过程中的思考、设计理念和未来趋势等。相信学习Linux并深入了解这些后对我们的工作和对事物看待的角度都会有更多的帮助。

本书将会沿着第一版本的思路继续更新和拓展知识,并分三块来讲解:

  • 初级篇:Linux应用与高级 (运维相关)
  • 中级篇:DevOps (运维开发、自动化运维相关 )
  • 高级篇:云计算 (企业上云、云产品介绍、产品思维),此环节会主要介绍腾讯云阿里云和海外的AWS的使用案例,并借鉴了笔者整理《腾讯云产品体验实战课程

环境

  • 本书使用的Linux默认环境为CentOS7.8 (查看操作系统发行版本命令cat /etc/redhat-release), 特殊情况会注视说明。
  • 本书环境主要应用的是腾讯云。

适合人群

本书目前以在线电子书形式呈现,整个过程目标定位人群如下:

  • 大学生
  • 产品经理
  • 希望转行Linux运维的人群

这里希望读者,具备一定的计算机基础知识,对自己的职业有大概的规划方向。通过书的学习能够快手掌握当下比较领先的技术内容,并一起探讨技术的细节共同进步。

遇到问题

笔者非常喜欢的一句话“提问才是思考真正开始的地方,质疑才是学习真正开始的地方”,所以要学好Linux提问和质疑很重要但笔者在您提问前有一个建议优,先确认问题是否能自行通过各种方式来解决,解决的思路可以参考笔者整理的文章《如何避免你的问题被烂尾》,确认都解决不了再来提问相信你会有更大的收获。

本书目录结构

批量检测服务器状态

一个网友反馈批量在腾讯云购买的服务器10台部分连接失败!!这里连接失败特指使用服务器秘钥的方式登录失败。我这边也模拟用户的场景复测了一下一次性购买20台服务器,大概思路:

  • 是先判断端口是否工作正常,如果不正常再来根据情况排查
  • 再来通过脚本批量测试秘钥登录服务器,是否有异常。

这里拆分两块来完成,分别是检测端口是否工作正常和通过秘钥方式来模拟登录服务器。

先确认端口是否工作正常

如何批量检测这些服务器端口是否正常是摆在眼前的一个问题,当然检测服务器端口是否正常有很多方式,哪种是最快的让我想到以下方式推荐大家。
首先下载nc (或叫netcat)

1
yum install nc

编辑以下Shell脚本。

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
port=80
while read line
do
if nc -z -w1 $line $port ;then
echo $line $port "ok"
else
echo $line $port "fail"
fi
done < iplist

nc 命令的参数解释:

  • -z 表示zero,表示扫描时不发送任何数据
  • -w1 超时秒数,后面跟数字

它也可以写成一行

1
if nc -z -w1 ip 80 ;then echo "ok"; else echo "fail"; fi

将要测试的IP放到ipList文件中,然后执行脚本效果如下。

再来确认秘钥登录

这里可以使用expect脚本来实现,脚本如下

1
2
3
4
5
6
7
8
9
#!/usr/bin/expect
set timeout 3
set host [lindex $argv 0]
set command [lindex $argv 1]

spawn ssh -i djangowang.pem root@$host $command
expect "*connecting"
send "yes\r"
interact

参数解释

  • djangowang.pem 为服务器秘钥
  • host为检测服务器IP
  • command 为执行的命令

MacOS 下iterm2 快捷键复制不好用

在MacOS下iterm2通过vim配置Apache配置文件时发现一个问题快捷键 “command + c” 不能复制粘贴!!
起初以为我用的不是Mac键盘是Karabiner-Elements(一款模拟mac键盘的程序)的配置问题导致,但测试在其他程序里并没有此问题,唯独在vim下编辑文件时会出现此问题。 另外网上也有网友说在iterm2直接用鼠标划要复制的文字也可以实现复制的功能,但我还是希望能实现在vim通过快捷键( “ command + c “复制 & “command + v ” 粘贴)来实现复制粘贴的功能。

解决方案
选择iterm2 - > preferences -> profiles -> terminal -> 去掉 “ Enable mouse reporting “ 前面挑。如下截图:

再次在vim下测试command + c 快捷键复制 + command + v粘贴:)

腾讯云务器连接不上如何排查

最近看到一些网友经常会问,购买了云服务器、云MySQL或类似的云产品后无法远程登录应该如何排查?这里笔者以排查云服务器问题为例,整理了一下问题排查思路分为三个过程分别为客户端确认,腾讯云控制台确认和登录服务器确认来介绍(注:按照问题可能的原因进行排序从高到低)同时推荐一些好用的排查问题工具供大家参考。另外如果你有好的思路别忘记给我留言,我会持续更新本文档。

本文内容提供B站在线视频( https://www.bilibili.com/video/BV1564y1u72Z

客户端确认

网络质量排查

首先确认自己的网络环境与云服务器的连接链路网络质量是否有问题,这里通常通过ping命令来确认。以下购买的是一台腾讯云的美国云服务器, ping -c参数代表发送包次数,其中截图1代表云服务器收到icmp包到返回的响应时长单位是毫秒,2代表是否有丢包也就是我发了3个icmp包响应也是三个代表没有丢包。

ping远程服务器的结果,图1

Read More

腾讯云培训认证学习笔记

本文提供视频讲解,详细见地址:https://www.bilibili.com/video/BV1Gi4y1V7vV

写在前面
本文主要介绍“腾讯云认证课”程的学习过程,为什么要学腾讯云认证课程? 如何学习? 适合人群是哪些?以下是本文整个讲解详细的过程:

本文目录结构

为什么学

学习腾讯培训认证有助于快速了解腾讯云产品的一些细节、使用、原理,这里我将从三个方面来介绍:

  • 学习后的感受
  • 学习路径
  • 当前我学到哪

Read More

Linux防火墙介绍

防火墙(iptables)基于Netfilter实现,它在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。

关于Netfilter,它在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。1990年代,Netfilter在Linux 2.3.15版时进入Linux内核。( http://www.netfilter.org/ )

在很多云厂商以腾讯云为例,类似的产品如腾讯云的clb(负载均衡)、安全组和应用防火墙功能 ,开源产品的Nginx(负载均衡,应用层转发)和lvs 这些都可以通过Linux下的防火墙来实现或者也可以说这些产品的原型就是Netfilter的iptables。

整理介绍目录

防火墙的备份与恢复

在玩防火墙命令前建议先备份线上的规则,这是一个非常不错的习惯。
查看当前防火墙规则

1
iptables -L -nv --line 

通过iptables-save + “>” 将当前iptables规则备份在文件中。

1
iptables-save > iptables.2020.10.1

通过iptables-restore命令来恢复之前备份好的防火墙规则

1
iptables-restore < iptables.2020.10.1

防火墙进阶

防火墙基础知识

学习iptables的顺序(Tables(表) -> Chains (链)-> Rules(规则))

表与链

防火墙(iptables) 分为常用的表和链,先介绍三张表分别为:

  • filter 过滤数据
  • nat 转发数据
  • mangle 数据包打标记
    根据每张表的不同常用的链如下:
  • INPUT 用于匹配进入的数据包
  • OUTPUT 用于匹配出的数据包
  • FORWARD 用于匹配转发的数据包
  • PREROUTING 用于匹配NAT之前的数据包
  • POSTROUTING 用于匹配NAT之后的数据包
  • 数据生命周期流程图
    具体每张表对应链使用的场景可以见以下数据转发生命周期的流程图。

Read More