运维的终极目标就是无所事事,如果一个运维一整天都无所事事,说明他把公司的集群维护的很好很稳定、并且能自动化的处理问题、部署环境、上线代码… by——拾实

SRE的全称是Site Reliability Engineering,即网站稳定性工程师,作为sre人员的主要责任有四点:

  1. 保证网站的数据不丢失
  2. 网站24小时正常运行
  3. 保证用户体验
  4. 保证网站的安全

命令速查
正则

linux介绍

linux起源于unix(贝尔实验室发明),unix一开始是免费的,后来变成收费的,谭宁邦不爽搞了一个教学版,再后来斯托曼不爽,搞了一个叫做自由软件基金会的公司,启动了叫做GNU的项目,这个项目遵循GPL通用公共许可这个协议,Linus Torvalds创造了linux的内核,和GUN的shell(命令解释器)以及其他软件结合在一起变成了linux。
shell和bash的关系

安装vmware

安装时一直下一步就可以,除了更新计划,收集数据计划啥的。创建虚拟机,centos7选2g内存,储存10g以上。蓝屏问题解决:

  1. 关闭Hyper-v,没有需要下载,运行关闭命令,重启。
  2. bios开启虚拟化
  3. 确保服务都在运行,有五个
  4. 再不行就换虚拟机版本,本人就是这样(win11,15换16)

初始化(配置)centos:以后可以用命令行改(先标记)
配置vmware:虚拟网络编辑器—-》nat模式改子网ip:10.0.0.0
xshell连接:主机名填ip地址,sshd端口号(即服务监听的号)默认22。
内网和公网的概念(了解)

xshell 连不上解决步骤

yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect sl cowsay ntpdate

  1. <a name="ihwia"></a>
  2. # 命令
  3. ```bash
  4. ping # ping不通排错 www.jianshu.com/p/0bc0b596c1a0
  5. ip a # ip address
  6. telnet ip 端口号 # 查端口是否开启
命令 选项 参数
rm # 不建议使用 -f、-rf 路径
shutdown -h # 关机
-r # 重启
-c # 取消关机/重启
now # 现在
10 # 十分钟后
man # manual,非常详细
具体命令
—help # 速查
ls -l(ll)、h(human-readable)、t(时间)、r(倒叙)、d(dirtcory)、a(显示隐藏)、i(inode)
cd .. . -
pwd
mkdir -p 递归(特殊,别人都是-r)
touch
mv # 剪切,改名,可以剪目录(默认可以递归)
cp # 备份,还原 -r -p(复制的时候,保持属性信息不变。) -a(pdr)
echo # 标准输出,案例 echo {1..8}
vi
cat # 输出文件内容 -n(行号),-A(在行尾加上$)
tree # 输出树形目录结构
head/tail # 默认输出文件的前十行 -5n或者-5、tail可以-f(显示实时更新)等价于tailf
less/more less可以使用快捷键,到最后一行要按q才能退出,more不支持太多快捷键
seq # 序列生成,可以设置步长 2 10 2 2到10,2步长 -w # 等宽 数字 # seq3 输出:1 2 3
wc # 查看 行数 单词数 大小 -l # 只产看行数
which和whereis # 查看命令位置或命令位置加手册位置
diff和vimdiff # 查看文件的区别或用vim的方式查看文件的区别
file 查看文件类型 文件
stat # 查看 文件查看时间,文件修改时间,属性改变时间 文件
su # 切换用户 -, -c # 在参数之后使用,后面跟上命令
passwd # echo ‘lidao!!!’ | passwd —stdin oldbboy
userdel -r # 删除家目录和邮件

符号

{} ..表示连续,第二个点点表示步长
>(标准输出重定向) 配合其他命令如echo使用
>>(标准输出追加重定向) 配合其他命令如echo使用
|
``
<< 配合cat,tr使用

FHS目录结构层次标准

bin 存放二进制文件(命令),是一个软连接
sbin 存放root使用的命令,也是软连接,连接到/user
boot 与linux系统启动与引导相关的文件,内核也在这
dev 存放设备文件(blkid 看设备
etc 配置文件
home 普通用户的家目录
root root的家
lib和lib64 服务或软件的依赖库,一般以.so结尾
lost+found 失物招领处,宕机故障时保存磁盘数据
mnt 空目录,默认挂载点
opt option 空目录,第三方软件安装位置
proc process(进程)存放的是内存中信息 进程 服务信息 内核信息
sys 和proc类似
tmp 让运维存放临时文件
usr 存放用户安装的软件,帮助文档
var(变量) 放日志
run 启动的进程

/app/tools 放解压包
/server/tools 放压缩包
/opt/ 自己搭建的软件列表,比如openvpn
/usr/local/ 编译安装默认放这

etc下核心文件

/etc/hosts

对应ip地址与主机名

/etc/hostname

存放主机名,
查看主机名命令:hostname或hostnamectl
查看ip hostname - i/I
修改主机名: hostnamectl set-hostname 新名字

/etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8e987179-762e-466e-aa40-fe38ebb012d0
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.200                       #ip地址   
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
IPV6_PRIVACY=no

#修改网卡配置文件。需要重启网卡
systemctl restart network

/etc/issue /etc/issue.net

用户登录系统之前显示的信息

/etc/motd

用户登录系统后显示的内容

/etc/fstab

开机的时候自动挂载目录 。

/etc/rc.local (软链接,源文件:/etc/rc.d/rc.loacl)

开机自动运行的内容存放这个文件。

#红帽7 及之后 第1次用之前 需要配置下 授予权限
chmod  +x   /etc/rc.d/rc.local

/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile

/etc/profile     存放各种系统环境变量以及使用它配置别名
/etc/bashrc      官方建议配置别名。 

另外两个只管当前用户

/etc/passwd 存放用户信息

/etc/group 用户组信息

/etc/shadow 密码信息

/etc/skel

用户家目录的模板,添加用户的用户的家目录会从这里复制。

/etc/profile.d/

用户登录系统后会执行这个目录下面以.sh结尾的文件。(详细应用第3阶段 DevOps讲解。)

var下核心文件

/var/log/messages

  • 系统通用日志,各种信息默认都会写入到这个文件中。

    /var/log/secure

  • 用户登录信息(记录)

    proc下核心文件

    /proc/cpuinfo

    看看核心数和颗数
    processor : 0 #CPU核心的 id 从0开始
    physical id : 0 #物理cpu的 id号 从0开始
    或者使用命令lscpu
    CPU(s): 1 #cpu核心总数
    Socket(s): 1 #cpu颗数

    /proc/meminfo内存信息

    /proc/mounts 磁盘挂载信息

/proc/diskstats 磁盘使用情况的信息

或者使用 df -h 命令

/proc/loadavg 系统负载信息

usr下文件

/usr/local 编译安装(一种安装方式)默认的位置。

别名

如果只当前用户使用该别名,直接在/.bashrc中改就行

#01) 如果你设置的是rm,cp,mv的别名 需要修改 ~/.bashrc     
[root@oldboy81-golden-lnb ~]# cat ~/.bashrc
# .bashrc
# User specific aliases and functions
#alias rm='rm -i'                   #注释 rm的行
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
 . /etc/bashrc
fi
#02) 修改系统别名的配置文件 /etc/profile 
修改这个文件内容,把别名设置命令写入 结尾。
#alias rm='echo 请不要使用rm命令'

#03) 生效
端开再连接即生效
source /etc/profile

#临时取消别名
###1.命令绝对路径
 /bin/rm  -f   oldboy.txt 
###2.命令前加个撬棍
\rm -f oldboy.txt

用户的增删改查

useradd

-s 添加用户的时候指定命令解释器
-M 添加用户的时候不创建家目录
-u 指定uid
-g 指定主要组
-G 指定附加组
-c 添加用户说明

su(switch user)

放在命令里了

userdel

usermod

groupadd

#案例 企业案例     添加用户的时候保证用户和用户组 uid,gid一致。  
如果直接添加的时候uid,gid不一致。那么需要先添加用户组,然后创建用户。
groupadd -g 888 mysqlv2                #-g指定gid  
useradd -u 888  -g mysqlv2   mysqlv2   #-g指定用户组

查看用户信息

id 用户
w 负载,用户在干嘛。哪些用户登陆到此系统
last 所有用户的登录记录
lastlog 所有用户的最后一次登录记录

为别人授权

授权的命令
visudo  #编辑sudo授权。 vi /etc/sudoers
#案例01 授予oldboy以root权限运行rm和vi权限
 oldboy  ALL=(ALL)   /bin/rm, /bin/vi
[root@oldboy81-golden-lnb ~]# grep oldboy /etc/sudoers
oldboy  ALL=(ALL)   /bin/rm, /bin/vi

#案例02 授予oldboy用户所有命令
[root@oldboy81-golden-lnb ~]# grep oldboy /etc/sudoers
#oldboy ALL=(ALL)   /bin/rm, /bin/vi
oldboy  ALL=(ALL)       ALL

#案例03 授予oldboy用户所有命令并且不需要输入密码
[root@oldboy81-golden-lnb ~]# grep oldboy /etc/sudoers
#oldboy ALL=(ALL)   /bin/rm, /bin/vi
#oldboy ALL=(ALL)       ALL
oldboy  ALL=(ALL)       NOPASSWD: ALL

#案例04 了解 授予/bin、目录所有命令
oldboy  ALL=(ALL)     /bin/*

#案例05 了解 授予/bin、目录所有命令 排除命令 su ,vi 
oldboy  ALL=(ALL)     /bin/* ,! /bin/rm ,! /bin/su

文件目录权限控制

chmod

选项-R

文件

rw修改
rx执行
r看

目录

看详细信息rx
创建删除重命名wx,最好rwx
x进入此目录

chown

选项-R
用户名.组名

chattr

目标:掌握通过chattr,给系统关键命令或文件加上锁头.
chattr 设置特殊属性
chattr +a或+i 文件/目录 #去掉权限 -a或-i
只能追加,只能看
lsattr 查看特殊属性
lsattr 查看