【运维工程师学习二】OS系统管理

news2024/11/26 20:30:49

【运维工程师学习二】OS系统管理

    • 1、操作系统管理
    • 2、进程管理
    • 3、进程的启动
    • 4、进程信息的查看
      • 4.1、STAT 进程的状态:进程状态使用字符表示的(STAT的状态码),其状态码对应的含义:
      • 4.2、ps命令常用用法(方便查看系统进程)
    • 5、进程的关闭
      • 5.1、Kill命令
      • 5.2、常用的进程信号:
      • 5.3、systemctl命令的常用命令。(httpd.service是apache的服务名称)
      • 5.4、查看是否已安装httpd
      • 5.5、安装httpd
      • 5.6、查看httpd状态
      • 5.7、开启httpd
    • 总结
    • 6、防火墙管理
    • 7、firewalld区域概念
      • 7.1、工作原理:
    • 8、firewalld服务
      • 8.1、关闭80端口
    • 9、远程管理
    • 总结

1、操作系统管理

操作系统管理着所有的硬件资源,负责响应各个应用的资源请求。应用还没有运行的时候就只是一堆各种各样的文件(二进制文件、文本文件等等),运行的时候,相对系统而言就是进程。比如你启动apache(linux下知名的web服务端),在系统中就启动了一个(或多个,假如配置了多个的话)进程,这个进程负责等待并处理用户的请求。
正常启动一个应用可能还需要其它支撑(如需要用到网络资源的,就需要网络服务),支撑别的应用的进程又可以叫做服务。
本文讲解的系统管理,无非就是进程管理、服务管理。不过管理一个系统,除了这两个常规工作外,还有防火墙管理、远程管理等,本文将对上面的概念及操作进行演示讲解。

注:windows下的操作请自行搜索了解,本文仍然是使用CentOS7系统(字符界面)作为演示。

2、进程管理

  • 进程就是程序运行时的状态,因此是动态的,程序关闭了,进程也就退出了。
  • 在演示进程管理之前,先说明一下,进程分两种:前台进程后台进程
  • 两者最大的区别就是:前台进程是在当前屏幕上看得见的,后台进程是在屏幕上看不见的,在后台默默地运行着的。
  • 比如yum、find、vi等等这些是前台进程,apache、nginx、mysql等这些属于后台进程。可在运行程序的命令后面加&符号把前台进程放到后台运行。例如,使用yum安装GNOME图形界面需要安装很多软件,需要等待的时间十分长,则使用
yum groups install 'GNOME Desktop'-y & 
  • 通过在命令的最后增加&符号将yum放到后台运行,然后你可以继续做其它事情。如果你做完了其它事情,想看看yum安装得怎么样了,可以使用fg命令将刚刚放到后台的进程调到前台来看。
  • 进程管理是管理什么东东呢?无非就是管理进程的启动、关闭及查看该进程的运行情况(对系统资源的使用情况)。其实刚刚的&符号及fg命令都属于进程管理的范畴。

3、进程的启动

上面提到的进程分前台进程及后台进程,这是从不同应用来区分的,但同一个应用的进程下又有父进程、子进程之分(一般是大型应用才会这样设计,如nginx等)。子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。父进程终止子进程自然终止。

  • 启动一个应用就相应启动了对应的进程,因此进程的启动没有什么好说的。
  • 启动了一个vi进程,不过加了&符号,意思是放在后台运行
vi test.txt &
  • vi进程的信息,包括用户,启动时间等等。
  • ps是查看进程信息的工具,下面会继续演示ps的常用方法
ps aux | grep vi

在这里插入图片描述

4、进程信息的查看

Linux中的ps命令是Process Status的缩写,进程状态的意思。Ps命令有很多参数,最常用的参数组合是-aux(显示的信息较全面),下面是ps –aux的输出结果,每列输出的意义如下:
在这里插入图片描述

参数具体意义
USER用户名
PID进程ID(Process ID)
%CPU进程的cpu占用率
%MEM进程的内存占用率
VSZ进程所使用的虚存的大小(Virtual Size)
RSS进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
TTY与进程关联的终端(tty)
STAT进程的状态:进程状态使用字符表示的(STAT的状态码)
START进程启动时间和日期
TIME进程使用的总cpu时间
COMMAND正在执行的命令行命令

上面截图显示的大多是系统进程,因此为快速查看自己指定的进程,经常与grep结合使用,如:
ps –aux | grep vi
显示关于vi进程的信息。

4.1、STAT 进程的状态:进程状态使用字符表示的(STAT的状态码),其状态码对应的含义:

  • R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
  • S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。
  • I 空闲 Idle
  • Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在,
    直到父进程调用wait4()系统调用后释放。
  • D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行,
    进程必须等待直到有中断发生。
  • T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN,
    SIGTOU信号后停止运行运行。
  • P 等待交换页
  • W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
  • X 死掉的进程
  • < 高优先级进程 高优先序的进程
  • N 低优先 级进程 低优先序的进程
  • L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
  • s 进程的领导者(在它之下有子进程);
  • l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
  • +位于后台的进程组

4.2、ps命令常用用法(方便查看系统进程)

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有进程。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

5、进程的关闭

关闭进程有很多方法,最常用的有kill命令及一些快捷键(Ctrl+c或Ctrl+z等)。
前台进程一般有退出指令,如vi,top的退出指令都是q。
前台进程一般使用应用自身的退出指令(多数是q),但像yum这种前台进程,它在运行过程中不提供指令退出,这时可以使用快捷键退出,或使用kill命令。
下面演示一下这两个快捷键及kill命令。
在这里插入图片描述
在这里插入图片描述

在yum运行的过程,输入了Ctrl+c快捷键来中止yum的运行。
Ctrl+c与Ctrl+z都是中止进程的运行,但两者是有区别的。
Ctrl+c强制退出该进程
Ctrl+z进程中止运行,但在系统中处于挂起状态,后续可以使用fg命令将该进程调出来再继续运行。

  • 第一次使用Ctrl+c,使用ps –aux来看,没有再看到yum进程的信息了。
  • 第二次使用Ctrl+z,使用ps –aux来看,能看到yum进程的信息了。

温馨提示:
1、这里显示的这个是grep的进程信息,并不是yum的进程信息
2、^ 表示Ctrl。^c就表示是Ctrl+c
3、强制中止对于数据不敏感的程序可以使用,但如果是数据库的进程,请慎用强制中止。

5.1、Kill命令

除了使用快捷键,使用kill命令也可以关闭进程。kill命令的格式是:

 kill[参数][进程号]

由此可见,除输入正确的参数外,还需要知道进程对应的进程号。如何获得进程号?请参考前面“进程信息的查看”。ps –aux命令输出结果中的PID(进程ID(Process ID))。

  • 前面演示时使用Ctrl+z将yum进程放到了后台,通过ps命令查到其进程ID为8769,因此使用
  • kill -9 8769便“杀死”了该进程。再次使用ps命令查询关于yum的进程信息,已无输出结果。

在这里插入图片描述

命令参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a  当处理当前进程时,不限制命令名和进程号的对应关系

-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s  指定发送信号

-u  指定用户 

5.2、常用的进程信号:

HUP    1    终端断线

INT     2    中断(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    终止

KILL    9    强制终止

CONT   18    继续(与STOP相反, fg/bg命令)

STOP    19    暂停(同 Ctrl + Z)

温馨提示:强制中止对于数据不敏感的程序可以使用,但如果是数据库的进程,请慎用强制中止。
-9是强制退出指令,init进程是不可杀的

5.3、systemctl命令的常用命令。(httpd.service是apache的服务名称)

在这里插入图片描述
要成功执行如上命令,请确保你安装了httpd,如下图示:

5.4、查看是否已安装httpd

rpm -aq | grep httpd

在这里插入图片描述

5.5、安装httpd

yum install -y httpd

在这里插入图片描述

5.6、查看httpd状态

 sudo service httpd start

在这里插入图片描述

5.7、开启httpd

systemctl status httpd.service

在这里插入图片描述

总结

  • 新手不要乱关闭系统服务(不清楚该服务的真正用途)已免系统出现某些功能不可用或崩溃;
    对于新手可以将systemctl理解为只是管理开机启动的命令,如前面演示的,我想要httpd服务开机启动,则使用systemctl enable httpd.service,如要取消开机启动则使用systemctl disenable httpd.service
  • 注意:该举例只适用于使用yum安装的httpd,编译安装的话需要自行建立适当文件才能实现这样管理httpd服务的启动与关闭;
  • 前面介绍系统的安装时,讲解网络服务的重启也是使用了systemctl restart network,同理ssh服务也可使用该命令管理;

6、防火墙管理

要管好一个防火墙涉及太多的网络知识,如果还没有网络基础的同学,请留待有一定的网络基础之后再回过头来了解。
CentOS7开始,使用了firewalld代替之前的iptables,因此这里说的防火墙管理是针对CentOS7中的firewalld程序。firewall-cmd是该程序的管理命令,如果没有该命令说明系统还没有安装firewalld,请使用yum install firewalld firewall-config命令安装。
在这里插入图片描述

7、firewalld区域概念

1.trusted 信任区域 默认允许所有流量传入
2.public 公共区域 (默认区域)默认允许ssh 服务 dhcp
3.external 外部区域 默认允许ssh其余均拒绝
4.home 家庭区域 有ssh, 预定于服务等
5.internal 内部区域 默认允许ssh 服务 dhcp服务等
6.work 工作区域 默认ssh
7.dmz 隔离区
8.block 限制区域 默认拒绝所有流量传入
9.drop 丢弃区域 默认丢弃所有流量传入

7.1、工作原理:

管理数据包时:
1、先根据数据包的源IP进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行; 如果未关联到特定的区域,则按默认区域的规则执行。
2、根据传入的网络接口,进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行; 如果未关联到特定的区域,则按默认区域的规则执行。
绑定源地址的区域规则> 网卡绑定的区域规则> 默认区域规则

8、firewalld服务

 systemctl status firewalld
 
 systemctl start firewalld
 
 systemctl enable firewalld

# 显示所有可用区域
 firewall-cmd --get-zones
 
# 显示当前默认区域
 firewall-cmd --get-default-zone
 
# 设置默认区域
 firewall-cmd --set-default-zone=public
 
# 显示当前使用的区域和对应网卡
 firewall-cmd --get-active-zones
 
# 显示指定接口绑定的区域
 firewall-cmd --get-zone-of-interface=ens33
 
# 为指定接口绑定区域
 firewall-cmd --zone=dmz --add-interface=ens37
 
# 为指定的区域更改绑定的网络接口
 firewall-cmd --zone=dmz --change-interface=ens33
 
# 为指定的区域删除绑定的网络接口
 firewall-cmd --zone=dmz --remove-interface=ens37
 
# 查看默认区域设置
 firewall-cmd --list-all
 
# 查看指定的区域设置
 firewall-cmd --zone=dmz --list-all
 
# 显示指定区域可以访问的服务
 firewall-cmd --zone=public --list-services
 
# 显示系统预定义的服务名
 firewall-cmd --get-service
 
# 为指定区域添加允许访问的服务
 firewall-cmd --zone=public --add-service=http
 
# 为指定区域删除允许访问的服务
 firewall-cmd --zone=public --remove-service=http
 
# 添加多个服务
 firewall-cmd --zone=public --add-services={http,https,redis,ssh}
 
# 永久生效,运行时配置结束后统一执行
 firewall-cmd --runtime-to-permanent
 
# 永久生效,需要在设置时加--permanent选项,但是并不是运行时生效,需要重启启动firewalld或者重
#新reload
 firewall-cmd --permanent --zone=public --add-services=http
 firewall-cmd --reload 或者 systemctl restart firewalld
 
# 显示指定域中允许访问的端口
 firewall-cmd --zone=public --list-port
 
# 位指定域中添加允许访问的端口
 firewall-cmd --zone=public --add-port=22/tcp --add-port=80-100/tcp
 
#位指定域中删除允许访问的端口
 firewall-cmd --zone=public --remove-port=22/tcp --remove-port=80-100/tcp
 

8.1、关闭80端口

#列出已开放的服务(端口)
firewall-cmd --list-services
#添加http服务(80端口)到防火墙中
firewall-cmd --add-service=http

对仅处于学习网络应用(http、mysql等)的同学,最好的办法是直接关闭firewalld,但如果你不想关闭防火墙,那你就得知道如何在防火墙中开启http的端口(80)。本文仅演示http默认端口(80)的开放。
在这里插入图片描述
在这里插入图片描述

如果你的http服务端已启动,则此时你可以在另外一台机器尝试访问你部署的网页了。同理,

firewall-cmd --add-service=mysql
  • 在防火墙中允许别人访问你的3306端口(mysql数据库默认端口)。
    在这里插入图片描述
    如要防火墙永久开放端口,需要命令后面加—permanent参数,如:
firewall-cmd --add-service=http --permanent

在这里插入图片描述
防火墙默认开放22端口(ssh远程服务的默认端口),但如果你修改了ssh的默认端口,则你需要修改防火墙中的规则。由于你不使用22这个默认端口,则不可以使用上面“添加服务”的方式来开放端口,请自行搜索资料解决。

9、远程管理

  • Linux字符界面的远程使用ssh协议,图形界面的远程使用vnc。
  • CentOS最小安装会自动安装ssh服务端并自动开启(需要注意:ubuntu最小化安装则不会安装ssh服务端),ssh协议默认端口是22,如果你想系统安全一些,不那么轻易被人扫描到,则修改ssh远程端口的方法是:
    修改/etc/ssh/sshd_config文件中的行,将“#Port 22”修改“Port 你想的端口”,如“Port
    65222”,然后重启sshd服务,命令是systemctl restart sshd

总结

本文介绍了OS系统管理的进程管理、服务管理、防火墙管理、远程管理的基本用法,后续运维工程师学习请关注我的更新~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/701045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据库八】MySQL MHA高可用配置及故障切换

MHA高可用配置及故障切换 1.什么是MHA2.MHA组成3.MHA特点4.案例实施&#xff1a;搭建MySQL MHA高可用及故障切换4.1 主节点数据库&#xff08;CentOS 7-5&#xff09;4.2 从节点数据库&#xff08;CentOS 7-6&#xff09;4.3 从节点数据库&#xff08;CentOS 7-7&#xff09;4.…

9.3 多路复用poll函数

目录 poll和epoll poll函数和epoll函数族 poll函数 ​编辑 poll函数&#xff1a;事件类型 epoll函数族 epoll_event结构体 poll和epoll poll函数和epoll函数族 poll函数 poll函数&#xff1a;事件类型 events&#xff1a; POLLIN&#xff1a;有数据可读 POLLPRI&#x…

python读取CSV文件表头字段乱序作json文件(自己笔记)

有时候我们会将csv文件的某列对应某列(或这某几列)&#xff1b;如{A&#xff1a;[B,C,D,E]},说白了就是一个键对应的值是一个列表&#xff0c;但是有时候我们的值在表头中位置不一致&#xff0c;这时候我们就需要先获取每一个字段的索引值&#xff0c;这样程序就会通过索引值自…

[Flask] Flask的请求与响应

1.Flask的请求 如果以GET请求访问URL&#xff0c;例如URL是127.0.0.1:5000/?nameandy&age18&#xff0c;那么如何获取这个URL的参数?如果以POST请求提交一个表单&#xff0c;那么又如何获取表单中各个字段值呢? Flask提供的Request请求对象就可以实现上述功能 Reques…

uniapp开发的微信小程序之实现转发功能以及页面跳转传递、接收对象

效果图&#xff1a; 转发功能&#xff1a; <template><view class"container"><button class"share-btn" open-type"share">转发</button></view> </template><script> export default {data() {re…

规划电子类专业生涯:打造单片机/嵌入式技术专家之路

如果我是一个电子类专业的学生&#xff0c;打算将来从事单片机/嵌入式方向的职业&#xff0c;我可能会采取以下步骤来规划我的职业生涯&#xff1a; 学术准备&#xff1a;我将全面学习电子工程的基础知识&#xff0c;包括模拟电子、数字电子、信号处理等方面的知识。我会确保自…

page cache 在内核中的数据结构

page cache 在内核中的数据结构是一个叫做 address_space 的结构体&#xff1a;struct address_space。 struct address_space {struct inode *host; // 关联 page cache 对应文件的 inodestruct radix_tree_root page_tree; // 这里就是 page cache。里边缓存了文件的所有缓…

拼多多购物中的4个开关需尽快关闭,防止个人购买信息泄露

拼多多购物中的4个开关需尽快关闭&#xff0c;防止个人购买信息泄露 随着网络购物的普及&#xff0c;越来越多的人选择在拼多多等平台进行购物。然而&#xff0c;在享受便利的同时&#xff0c;我们也要警惕个人购买信息泄露的风险。在拼多多购物时&#xff0c;有些设置可能会影…

Hyperledger Fabric核心配置文件(1)

1、core.yaml core.yaml配置文件是Peer节点的示例配置文件&#xff0c;具体路径在fabric-samples/config目 录下。该core.yaml示例配置文件共指定了如下六大部分内容。 1.日志部分 日志记录级别有6种&#xff1a; CRITICAL、 ERROR、 WARNING、 NOTICE、 INFO、 DEBUG. …

CUDA矩阵乘法GEMM优化,从全局内存到共享内存优化的详细流程

在​未优化的矩阵乘法​CA*B中&#xff0c;a、b和c分别是指向矩阵 A、B 和 C 的全局内存的指针&#xff1b;blockDim.x、blockDim.y、 和TILE_DIM都等于 w。wxw-thread 块中的每个线程计算 C 的tile中的一个元素&#xff0c;row并且col是由特定线程计算的 C 中元素的行和列。该…

celery----异步任务、延时任务、定时任务

Celery 是一个强大的分布式任务队列&#xff0c;它可以让任务的执行完全脱离主程序&#xff0c;甚至可以被分配到其他主机上运行。我们通常使用它来实现异步任务&#xff08;async task&#xff09;和定时任务&#xff08;crontab&#xff09;。它的架构组成如下图 &#xff1a…

初学帆软踩得坑——数据填报_Excel数据导入

第一次做数据填报&#xff0c;按照教程做完在用excel导入工具本地数据报表的时候出现 1、整块空白合并单元格&#xff0c;数据无法填入的现象 2、表格重新导入一批&#xff0c;无法成功入库&#xff0c;导致只能导入一次&#xff0c;如下图&#xff1a; 说明&#xff1a;点击…

python网络编程(四),用面向对象方式实现文件上传下载

一&#xff1a;背景 在之前已经实现了文件的下载&#xff0c;现在再来完善上传功能&#xff0c;并且使用面向对象来封装&#xff0c;让代码看起来更加清楚明了。 二&#xff1a; 使用规则和运行结果 下载文件&#xff0c;下载格式 get 文件名 get空格后面直接接文件名称&…

MySQL-SQL InnoDB引擎 (下)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

【直播预告】HarmonyOS极客松赋能直播第三期:一次开发多端部署与ArkTS卡片开发

直播预约通道&#xff1a; 【直播预告】HarmonyOS极客松赋能直播第三期&#xff1a;一次开发多端部署与ArkTS卡片开发

朴素模式匹配算法(暴力寻找字串)

目录 0. 前言1. 算法简介2. 代码实现3. 运行结果 0. 前言 使用朴素模式匹配算法查找子串是否位于主串中 开发环境&#xff1a;Dev-Cpp 操作系统&#xff1a;Windows10 专业版 1. 算法简介 朴素模式匹配算法&#xff0c;也称为暴力模式匹配算法或穷举法&#xff0c;是一种简…

自己动手写C语言float浮点数转换字符串的函数

最近在项目中用到了holtek厂商的HT45F24A和BA45F5650两款单片机。 用的开发工具是HT-IDE3000&#xff0c;烧录软件是HOPE3000。 这两款单片机都是8位的单片机&#xff0c;支持寄存器位操作。 HT45F24A单片机不带UART串口&#xff0c;要想实现串口功能&#xff0c;只能自己用定时…

基于肺部图片与文本信息的多模态模型架构

文章题为 「A transformer-based representation learning model with unified processing of multimodal input for clinical diagnostics」 https://www.nature.com/articles/s41551-023-01045-x &#xff08;arXiv版链接: https://arxiv.org/abs/2306.00864&#xff09; htt…

2020年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

2020 级考研管理类联考数学真题 一、问题求解&#xff08;本大题共 15 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09;下列每题给出 5 个选项中&#xff0c;只有一个是符合要求的&#xff0c;请在答题卡上将所选择的字母涂黑。 1、某产品去年涨价 10%&#xf…

备战2024秋招面试题-Vue的框架原理

前言&#xff1a; \textcolor{Green}{前言&#xff1a;} 前言&#xff1a; &#x1f49e;快秋招了&#xff0c;那么这个专栏就专门来记录一下&#xff0c;同时呢整理一下常见面试题 &#x1f49e;部分题目来自自己的面试题&#xff0c;部分题目来自网络整理 给我冲 学习目标&am…