欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Linux系统管理二

Linux系统管理二

2025/3/11 0:21:21 来源:https://blog.csdn.net/2301_76942658/article/details/146135206  浏览:    关键词:Linux系统管理二

目录

一.远程连接管理服务SSH

1.1 了解服务端和客户端

1.2 了解端口号的设定

1.3 了解ssh服务的作用

1.4 ssh搭建服务

二.netstat

2.1 netstat简介

2.2 netstat命令参数

2.3 常用命令参考

三.进程的检测与控制

3.1 管道

3.1.1 什么是管道

3.1.2 管道的分类

3.1.3 xargs命令

3.2 进程

3.2.1 什么是进程

3.2.2 进程有什么特点

3.2.3 进程信息查看

3.1 静态查看 ps命令

3.2 动态查看 top命令

四.时间同步(NTP服务)

五.计划任务

5.1 计划任务简介

5.1.1 crond 与 crontab 的关系

5.1.2 crond服务的安装与管理

5.1.3 任务调度的分类

5.2 计划任务创建


一.远程连接管理服务SSH

1.1 了解服务端和客户端

服务端:提供服务

客户端:享受服务

通过 IP地址 和 Port端口号 去找到相对应的服务

1.2 了解端口号的设定

说明:端口号只有整数,范围是从0 到65535

  • 1~255:一般是知名端口号,如:ftp 21号、web 80、ssh 22、telnet 23号等

  • 256~1023:通常都是由Unix系统占用来提供特定的服务

  • 1024~5000:客户端的临时端口,随机产生大于5000:为互联网上的其他服务预留

1.3 了解ssh服务的作用

用于Linux下远程连接管理服务器的安全协议。

功能:远程管理Linux服务器

  • SSH服务默认端口22

  • SSH服务是C/S架构

服务器端(开启ssh服务):安装软件(openssh-server)

客户端(专门的客户端工具): windows:SecureCRT 、 MobaXterm linux:openssh-clients ssh/scp

1.4 ssh搭建服务

Ⅰ ssh服务设置

systemctl status sshd  查看状态
systemctl stop sshd 关闭服务
systemctl start sshd 开启服务
systemctl restart sshd 重启服务
systemctl disable sshd 不自启
systemctl enable sshd 自启

Ⅱ ssh端口设置

netstat -ntap 查看端口

修改ssh服务端口vim /etc/ssh/sshd_config#在文件中添加以下行即可
Port 端口号重启服务
systemctl restart sshd

二.netstat

2.1 netstat简介

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(Interface Statistics),masquerade连接,多播成员(Multicast Memberships)等。

命令的输出有两部分,第一部分是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列,这些数字一般都应该是0,如果不是则表示软件包正在队列中堆积。

第二部分是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能比网络套接字高一倍)。Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

2.2 netstat命令参数

注:netstat命令默认是不显示LISTEN状态的网络连接和LISTEING状态的UNIX域连接,只有使用带-a或者-l参数的命令才能显示出来。

Tisp:需安装net-tools工具才可以使用netstat命令,执行下面这条命令进行安装 # yum install -y net-tools

-a (all)显示所有状态的连接
-t (tcp)仅显示tcp相关连接
-u (udp)仅显示udp相关连接
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在监听状态的连接-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

2.3 常用命令参考

Ⅰ 列出所有连接(包括监听和为监听状态)

命令:netstat -a;列出所有状态下的连接命令:netstat -at;列出所有状态下的tcp连接命令:netstat -au;列出所有状态下的udp连接 命令:netstat -ax;列出所有状态下的UNINX域连接

Ⅱ 列出处于LISTEN状态的连接

命令:netstat -l;列出所有处于LISTEN状态的连接命令:netstat -lt;列出所有处于LISTEN状态的tcp连接命令:netstat -lu;列出所有处于LISTEN状态的udp连接命令:netstat-lx;列出所有处于LISTENING状态的UNIX域连接

Ⅲ 统计通信协议连接信息

命令:netstat -s;统计所有连接的通信协议连接信息命令:netstat -st;统计基于tcp连接的通信协议连接信息命令:netstat -su;统计基于udp连接的通信协议连接信息

Ⅳ 输出中显示进程ID和进程名信息(可搭配其他参数使用)

命令:netstat -p;列出除LISTEN和LISTENING状态下的连接,包含连接所属进程的进程ID和进程名命令:netstat -tp;列出除LISTEN和LISTENING状态下的tcp连接,包含连接所属进程的进程ID和进程名命令:netstat -up;列出除LISTEN和LISTENING状态下的udp连接,包含连接所属进程的进程ID和进程名

Ⅵ 动态输出连续信息

命令:netstat -c;每间隔一秒输出当前连接信息

Ⅶ 列出特定的连续

命令:netstat -ap|grep postgres

三.进程的检测与控制

3.1 管道

3.1.1 什么是管道

管道,指在类UNIX系统中,进程之间通讯的一种方式或机制。管道,也指一种特殊的文件,叫管道文件。

3.1.2 管道的分类

Ⅰ 匿名管道

匿名管道,顾名思义,就是没有名字的管道,常常用于父子关系的进程之间通讯一种方式。匿名管道,在bash中,用符号"|"来表示。在同一个终端通讯。

匿名管道作用:将上一个命令所执行的结果(标准输出)作为下一条命令的标准输入

示列 : rpm -qa | grep openssh   grep "password" /var/log/mysqld.log  在指定文件中查询 password 关键字

Ⅱ 命名管道

命名管道,顾名思义,就是有名字的管道,既可以用于任何进程之间通讯。

命名管道,可以使用mkfifo命令创建。

[root@localhost ~]# mkfifo /tmp/p_file //创建一个命名管道文件
[root@localhost ~]# file /tmp/p_file //判断该文件的类型
/tmp/p_file: fifo (named pipe)
[root@localhost ~]# ll /tmp/p_file
prw-rw-r--. 1 root root 0 Mar 10 15:28 /tmp/p_file
[root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# echo "hello world" > /tmp/p_file
[root@localhost ~]# tty
/dev/pts/2
[root@localhost ~]# cat /tmp/p_file
hello world
[root@localhost ~]#

3.1.3 xargs命令

xargs: 将上一条命令所执行的结果作为下一条命令的参数

命令 [可选项] 参数
[root@localhost ~]# ls -l /root
命令:整条shell命令的主体
选项:会影响或微调命令的行为
参数:命令作用的对象举例说明:
cat -n filename
命令 选项 参数常见选项
-n:指定单行显示的参数个数
-d:定义分割符,默认是以空格和换行符[root@localhost ~]# cat 1.txt
a b c d
10.1.1.254
A B C[root@localhost ~]# cat 1.txt |xargs -n 3
a b c
d 10.1.1.254 A
B C[root@localhost ~]# cat 1.txt |xargs -n 4
a b c d
10.1.1.254 A B C[root@localhost ~]# cat 1.txt |xargs -d'\t' -n 3
a b c d
10.1.1.254
A B C[root@localhost ~]# cat 1.txt |xargs -d'.' -n 3
a b c d
10 1 1
254
A B C

3.2 进程

3.2.1 什么是进程

进程,由程序产生,是正在运行的程序,或者说是已启动的可执行程序的运行实例。

进程,具有自己的生命周期和各种不同的状态。 

3.2.2 进程有什么特点

  • 独立性 进程是系统中独立存在的实体,它可以拥有自己的独立资源,每一个进程都有自己的私有地址空间; 在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。

  • 动态性 进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合; 进程具有自己的生命周期和各种不同的状态。

  • 并发性 多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。

3.2.3 进程信息查看

3.1 静态查看 ps命令

Ⅰ 常见组合

ps -ef
ps -eF
ps -ely
ps aux
ps auxf
a 显示当前终端下的所有进程,包括其他用户的进程
u 显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别)
x 显示没有控制终端的进程。通常与a这个参数一起使用,可列出较完整信息
o 自定义打印内容
-e 显示所有进程。
-f 完整输出显示进程之间的父子关系
-l 较长、较详细的将该进程的信息列出

Ⅱ 进程信息解释说明

USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存,驻留内存
TTY: 进程运行的终端
STAT: 进程状态,man ps获取帮助(/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START 进程的启动时间
TIME 进程占用CPU的总时间
COMMAND 进程文件,进程名
其他命令查看进行信息
pidof 查看指定进程的PID
pstree 查看进程树
3.2 动态查看 top命令

第一部分:统计信息

[root@localhost ~]# top
top - 10:55:44 up 3:19, 2 users, load average: 1.03, 0.50, 2.10
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 1004412k total, 331496k used, 672916k free, 58364k buffers
Swap: 2031608k total, 0k used, 2031608k free, 107896k cached

关注load average:系统1分钟、5分钟、15分钟内的平均负载,判断一个系统负载是否偏高需要计算单核CPU的平均负载,如下图,一般以1以内为比较合适的值。偏高说明有比较多的进程在等待使用CPU资源。

计算方法: 平均负载 / 逻辑cpu数量

物理CPU(N路):主板上CPU插槽的个数
CPU核数:一块CPU上面能处理数据的芯片组的数量
逻辑CPU:一般情况,一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来;
逻辑CPU数量=物理cpu数量 x cpu核数。如果支持HT,还要更多。
查看物理CPU的个数
# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
# cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU是几核
# cat /proc/cpuinfo |grep "cores"|uniq

第三行:当前的CPU运行情况

us 用户进程占用CPU的比率
sy 内核、内核进程占用CPU的比率;
ni 如果一些用户进程修改过优先级,这里显示这些进程占用CPU时间的比率;
id CPU空闲比率,如果系统缓慢而这个值很高,说明系统慢的原因不是CPU负载高;
wa CPU等待执行I/O操作的时间比率,该指标可以用来排查磁盘I/O的问题,通常结合wa和id判断
hi CPU处理硬件中断所占时间的比率;
si CPU处理软件中断所占时间的比率;
st 其他任务所占CPU时间的比率;
说明:
1. 用户进程占比高,wa低,说明系统缓慢的原因在于进程占用大量CPU,通常还会伴有教低的id,说明CPU空闲时间很少;
2. wa低,id高,可以排除CPU资源瓶颈的可能。
3. wa高,说明I/O占用了大量的CPU时间,需要检查交换空间的使用;如果内存充足,但wa很高,说明需要检查哪个进程占用
了大量的I/O资源。

第二部分:进程信息

Ⅰ 常用按键命令

h | ? 帮助
M 按内存的使用排序
P 按CPU使用排序
T 按该进程使用的CPU时间累积排序
k 给某个PID一个信号(signal),默认值是信号15
1 显示所有CPU的负载
s 改变两次刷新之间的时间。默认是5秒
q 退出程序
N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
r 重新安排一个进程的优先级别

Ⅱ 常用选项

-d 后面可以接秒数,指定每两次屏幕信息刷新之间的时间间隔;
-p 指定某个进程来进行监控;
-u 指定进程的拥有者
-b -n 以批处理方式执行top命令。通常使用数据流重定向,将处理结果输出为文件;
[root@MissHou ~]# top
[root@MissHou ~]# top -d 1
[root@MissHou ~]# top -d 1 -p 10126 查看指定进程的动态信
息
[root@MissHou ~]# top -d 1 -u apache 查看指定用户的进程
[root@MissHou ~]# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件

四.时间同步(NTP服务)

Ⅰ 加载ntpyum install -y ntpⅡ ntp服务设置systemctl status ntpd 查看状态
systemctl enable ntpd 设置自启
systemctl start ntpd 开启服务Ⅲ 查看时间date

五.计划任务

5.1 计划任务简介

crontab 是 Unix 类操作系统(如 Linux)中的一种名为cron(周期性任务调度机制)的配置文件。crontab 文件允许用户定义周期性运行的命令或脚本。

5.1.1 crond 与 crontab 的关系

crond:是一个系统级的后台进程,负责根据 crontab 文件中的时间表,周期性地运行用户定义的任务。它始终在后台运行并每分钟检查任务是否需要执行。

crontab:是用户用于定义计划任务的配置文件,包含命令和任务执行的时间表。每个用户,包括系统用户,都可以拥有一个 crontab 文件。 因此,要执行crontab命令需要crond服务的支持。

5.1.2 crond服务的安装与管理

在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的,若需要安装则执行如下命令:

Ⅰ 安装yum install -y crontabsⅡ 管理systemctl start crond  开启服务
systemctl enable crond 设置自启
systemctl stop crond 停止服务
systemctl disable crond 取消自启
systemctl status crond 查看状态
systemctl restart crond 重启服务

注意:上述命令适用于大多数使用 systemd 作为初始化系统的 Linux 发行版(如 CentOS 7、RHEL 7、Ubuntu 等)。如果使用的是较老的系统(如 CentOS 6、RHEL 6 等),可以使用 service 命令管理 crond 服务。

5.1.3 任务调度的分类

Ⅰ 系统调度

由系统管理员配置和管理,用于执行系统级别的定时任务,通常涉及系统维护和全局管理,通常存储在 /etc/crontab 或 /etc/cron.d/ 等目录中。

格式分钟 小时 日期 月份 星期 用户 命令

Ⅱ 用户调度

由普通用户自行管理,用于个人需求的定时任务,不影响系统全局环境,通常在 /var/spool/cron/<用户名>

格式分钟 小时 日期 月份 星期 命令

5.2 计划任务创建

特殊字符含义
*任意时刻
-表示时间范围
,(逗号)分隔时段
*/n指定时间间隔的频率,如:每3分钟执行一次,*/3

Ⅰ 系统调度

1.创建并编写一个执行文件

写入以下代码

2.创建对应的文件

3.执行文件,进行测试

4.写入crontab文件中

Ⅱ 用户调度

① 需要用到crontab命令,格式如下:

crontab  [-u  user]  [-l | -r | -e]crontab命令参数参数	解释	示例
-l	list 查看定时任务	crontab -l
-e	edit 编辑定时任务,建议手动编辑	crontab -e
-i	删除定时任务,提示用户确认删除,避免出错	crontab -i
-r	删除定时任务,移除/var/spool/cron/username文件	crontab -r
-u user	指定用户执行任务,root 可以管理普通用户计划任务	crontab -u redhat -l执行crontab 命令就是在修改 /var/spool/cron 中的定时任务文件编辑crontab
[root@he ~]# crontab -e* 写入的命令格式:每一行书写一个工作,每个工作共有6个字段
* 代表意义	分钟	小时	日期	月份	星期	            命令
* 数字范围	0-59	0-23	1-31	1-12	0-7(0和7表示周日)	执行的动作*    *    *    *    *   command
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    └─── 一周中的第几天 (0 - 7) (0 或 7 表示周日)
│    │    │    └─────── 月份 (1 - 12)
│    │    └──────────── 日期 (1 - 31)
│    └───────────────── 小时 (0 - 23)
└────────────────────── 分钟 (0 - 59)

② 编写

[root@he ~]# crontab -e# 点 i 键进入编辑模式
输入以下代码*/1 * * * * /root/hi.sh # 按 esc 键退出编辑模式
# 再输入 :wq 保存并退出
# 这个创建计划任务就OK了# 需要注意的是,在用crontab方式创建计划任务是不用加用户名的,而直接修改crontab文件是需要加用户名的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词