运维的终极目标就是无所事事,如果一个运维一整天都无所事事,说明他把公司的集群维护的很好很稳定、并且能自动化的处理问题、部署环境、上线代码… by——拾实
SRE的全称是Site Reliability Engineering,即网站稳定性工程师,作为sre人员的主要责任有四点:
- 保证网站的数据不丢失
- 网站24小时正常运行
- 保证用户体验
- 保证网站的安全
linux介绍
linux起源于unix(贝尔实验室发明),unix一开始是免费的,后来变成收费的,谭宁邦不爽搞了一个教学版,再后来斯托曼不爽,搞了一个叫做自由软件基金会的公司,启动了叫做GNU的项目,这个项目遵循GPL通用公共许可这个协议,Linus Torvalds创造了linux的内核,和GUN的shell(命令解释器)以及其他软件结合在一起变成了linux。
shell和bash的关系
安装vmware
安装时一直下一步就可以,除了更新计划,收集数据计划啥的。创建虚拟机,centos7选2g内存,储存10g以上。蓝屏问题解决:
- 关闭Hyper-v,没有需要下载,运行关闭命令,重启。
- bios开启虚拟化
- 确保服务都在运行,有五个
- 再不行就换虚拟机版本,本人就是这样(win11,15换16)
初始化(配置)centos:以后可以用命令行改(先标记)
配置vmware:虚拟网络编辑器—-》nat模式改子网ip:10.0.0.0
xshell连接:主机名填ip地址,sshd端口号(即服务监听的号)默认22。
内网和公网的概念(了解)
xshell 连不上解决步骤
- ping 排错 www.jianshu.com/p/0bc0b596c1a0
- 检查防火墙
- 检查端口是否开放
Linux必备优化-yum源优化
```bash curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
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
<a name="ihwia"></a># 命令```bashping # ping不通排错 www.jianshu.com/p/0bc0b596c1a0ip a # ip addresstelnet 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
/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 磁盘使用情况的信息
/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
文件
目录
chown
chattr
目标:掌握通过chattr,给系统关键命令或文件加上锁头.
chattr 设置特殊属性
chattr +a或+i 文件/目录 #去掉权限 -a或-i
只能追加,只能看
lsattr 查看特殊属性
lsattr 查看
