linux-系统服务管理
2022-10-07 08:17:38 0 举报
AI智能生成
Linux-服务管理与资源管理 ntp systemctl 进程 线程 top 硬件资源管理
作者其他创作
大纲/内容
系统服务管理
是默认去 /etc/init.d/目录下寻找(服务管理脚本文件)
service start/stop network (/etc/init.d/network)
注意,是需要可以执行的脚本,带x权限
这个命令,linux的命令,大多数都是去机器上找到某个文件,然后读取文件配置,加载功能
然后会去读取 /etc/init.d目录下的脚本
自己写nginx启停脚本,然后放到/etc/init.d/nginx
然后就可以调用 serivce nginx start
很多自己安装的软件需要自己写启停脚本
使用的格式:service 服务名 启停指令
server命令
start
启动
stop
停止
restart
重启
reload
重新加载
enable
开就自启(持久化)
disable
禁止开机自启
is-enabled
查询是否持久化(是否开机自启)
使用对服务进行启停管理
systemctl管理服务脚本目录,/usr/lib/systemd/system
核心还是在于软件本身提供的二进制命令,如/usr/sbin/nginx
直接执行该文件程序也可以运行
systemctl 参数 服务名
如果你使用的是systemctl start nginx 这种形式开启的,及通过systemd这个服务帮你管理nginx
如果直接使用/usr/sbin/nginx去启动的nginx,你是无法使用systemctl去stop程序的
注意
我们无论是去使用systemctl 还是 server 都是去调用这个脚本
systemctl统一管理脚本目录在 /usr/lib/systemd/system/
如:nginx.service
完整的是 xxx.service
并且注意,我们敲的服务名都是一个缩写
systemctl命令
就好比你去ssh登录其他人的机器
安全的,远程传输,基于ssh协议认证的传输
注意,如果你是去获取源文件就相当于在别人的电脑上
语法: scp [参数] 源文件 目标地址
概念
参数:-r 递归的复制整个文件夹
# 把自己的 /var/log/整个目录,全发过去到 /tmp/scp -r /var/log/ root@192.168.0.158:/tmp/
scp 源数据的机器 远程机器
向其他用户发送资料
# 递归的远程 拿别人的文件夹数据scp -r root@192.168.0.158:/var/log /opt/
scp 你想要的数据机器 放到那
向其他用户索取资料
scp命令
#查看电脑是有那些时区文件 [root@localhost ~]# ls /usr/share/zoneinfo
将其/etc/locatime 中覆盖写入即可
在系统中发现这两个为同一个文件: [root@localhost ~]# cat /usr/share/zoneinfo/Asia/Shanghai [root@localhost ~]# cat /etc/localtime
#修改硬件时间、hwclock命令[root@localhost ~]# hwclock
查看电脑上的时区文件
通过修改电脑上的时区来对文件修改
参数修改: status Show current time settings 查看当前状态 set-time TIME Set system time 设置当前的时间 set-timezone ZONE Set system time zone 设置当前的时区 list-timezones Show known time zones 查看系统支持哪些时区
设置系统时间(格式:HH:MM:SS)timedatectl set-time \"07:25:46\"
设置系统日期(格式:YYYY-MM-DD)timedatectl set-time \"2021-12-12\"
设置ntp服务开启(得先安装ntp时间同步服务)timedatectl set-ntp on/off (true/false) ##该步骤是去ntp自带的文件去同步,文件路径为 /etc
注意事项:1.只修改时区,并不能修改时间,时间不会变化
修改Linux的日期和时间
timedatectl 命令
1.安全问题:ntpdate的设置依赖于ntp服务器的安全性
2.太过于暴力:ntpdate是急变,是立即修改系统时间,非常依赖于时序的程序可能会出错
不太推荐,存在两个问题
1.找到时间服务器地址,强制更新即可[root@yuanlai-0224 ~]# ntpdate -u ntp.aliyun.com
强制更新 ntpdate命令
ntpdate
Linux时间相关命令
它是用来同步网络中各个计算机的时间的协议。
多台服务器,需要部署联调,由于时间不正确,可能导致通信异常。
需要时间的应用。- 定时任务的执行- 数据同步,时间不一致等。
ntp的作用
NTP授时网站:<http://www.ntp.org.cn/pool>
在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内
cn.ntp.org.cn
或者使用域名
ntp同步的网址
ntp时间服务
先安装ntp软件[root@localhost ~]# yum install -y ntp
查看ntp软件信息[root@yuanlai-0224 ~]# ls /usr/lib/systemd/system/ |grep ntp
找到ntp软件的配置文件[root@yuanlai-0224 ~]# rpm -ql ntp |grep conf
添加新的互联网中ntp服务器# prefer表示为优先,表示本机优先同步该服务器时间server ntp.aliyun.com iburst preferserver cn.pool.ntp.org iburst
#添加新的ntp服务器地址,参数解释 iburst,当某一个ntp挂掉时,向它发送一些数据包,检测是否挂掉。#如果挂掉,就去下一个的地址进行同步
# 添加ntp的运行日志logfile /var/log/my_ntp.log# 记录程序的运行进程号的,可以用于写脚本,读取这个文件,就找到了程序的进程idpidfile /var/run/ntpd.pid
.修改ntp的配置文件vim /etc/ntp.conf
[root@localhost ~]# ntpstat
如果有[*] 代表目前正在使用当中的上层NTP服务器。
[root@yuchao-linux01 ~]# ntpq -p-p 显示时间服务器列表
查看时间同步信息
ntp服务器搭建
子主题
Main Topic
一些时间其余
程序是数据和指令的集合。未运行
人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。
当程序跑起来了,占用了一定的资源就称之为进程
什么是程序
0号进程会创建一堆内核级进程,提供操作系统运行
且用ps -ef 查看下为[]括号扩起内容
操作系统的0号进程
创建子进程shhd服务
ssh客户端连接进程
用户bash进程 /bin/bash
用户使用bash执行的其他进程
用户级别的1号进程
什么是进程
系统运行时,就产生了0号进程,然后其他进程都是0号进程创建的子进程
注意儿子进程可以当成父进程,再去创建儿子进程
父子进程的关系
.当父亲进程挂了,导致儿子进程成了孤儿
孤儿进程会被系统的1号进程收养,并且有1号进程来回收
孤儿进程
可以由1号进程来释放孤儿进程,会释放其占用的pid和资源
.父亲进程创建出子进程后,如果子进程先挂了
而父进程不知道儿子进程挂了,资源一直被占用
僵尸进程
可以通过杀死父进程来解决
zombie,由于父进程不知道,所以占用资源无法被释放,是有害的
进程进阶难点
查看当前用户终端的进程
ps
ps -ef | grep 进程名或id号
ps -ef
结合管道符,找出自己需要的程序应用
由于每一次grep都会产生一个临时进程
ps -ef | grep nginx | grep -v 'grep'
-v 参数:结果取反,显示不包含的行
去掉grep显示
ps aux
指定字段格式化显示结果
unix操作系统下,查看进程,用如下不带短横线的参数a # 显示所有终端、所有用户执行的进程u # 以用户显示出进程详细信息x # 显示操作系统所有进程信息f # 显示进程树形结构o # 格式化显示进程信息,指定如pidk # 对进程属性排序,如k %mem ,正序排序 ,k -%mem 逆序--sort,再进行排序,如 --sort %mem 根据内存使用率显示
主要是查看服务器的进程信息
可能需要安装 [root@localhost ~]# yum install -y psmisc
pstree -p
-p 显示pid-u 显示用户切换
常用的参数
作用、以树状图,显示父进程和子进程的关系
pstree
[root@localhost ~]# pidof nginx64351 64350 6434
指定进程名,显示出其pid
pidof
进程查看
z::打开,关闭颜色M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;m(小写):切换内存memmory的显示格式。P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列;1 :当服务器拥有多个cpu 的时候可以使用“1”快捷键来切换是否展示显示各个cpu 的详细信息;q:退出
top
yum install htop -y
需要安装
有很多的交互,使用方便直观,但是快捷键可能有冲突。
htop就是比top更好用的工具,支持鼠标点击,选择进程。
htop
同样是一个资源查看器,使用python开发的,也比较好用
Windows
mac
Linux
适应于多种系统
安装
yum install -y glances
除了上面的还包含了ip 网络的io 磁盘的读写
由于使用python开发,可以自己修改调整
glances还提供了web可视化界面
功能更加的齐全
glances
系统整体资源的查看
# 直接输入lsof,显示当前用户打开的所有文件,过滤出你需要查找的文件,对应的进程[root@yuchao-linux01 ~]# lsof |grep access.log
# 查看占用文件的进程 lsof 文件[root@yuchao-linux01 log]# lsof /var/log/nginx/access.log
lsof -p id | grep log #查看对应id打开的文件
# 查看指定pid号(父进程)打开了什么文件[root@yuchao-linux01 log]# lsof -p $(cat /var/run/nginx.pid)
# 查看指定程序名,打开的文件[root@yuchao-linux01 log]# lsof -c nginx
当我们不小心删掉了日志文件,但是进程没有断开,此时文件信息还能写入到日志,保存在了内存之中
在一个特殊的目录下 /proc 有一个与进程同名的文件夹
[root@localhost ~]# ls -l /proc/64887/fd/*
使用ll 查看详细信息
再在下面有一个fd文件夹
l-wx------ 1 root root 64 8月 25 22:13 /proc/64887/fd/4 -> /opt/tngx233/logs/access.log
此时可以看见这个
此时只需要将该信息重新写入到你对应的文件中即可完成数据的恢复
可以利用lsof 找到那个文件,进行修复
只要你的程序的进程没有退出,这个数据就还在,可以基于lsof这样的办法找到数据,并且修复
常用参数-c # 指定进程名,打开了哪些系统文件,如lsof -c nginx-i # 显示符合条件的进程,如ipv[46][protocol][@host|addr][:service|port]-p # 显示指定pid打开的文件-u # 显示指定用户uid打开的文件,以及具体进程信息+d # 显示文件夹下被打开的文件有哪些,如 lsof +d /var/log/nginx/+D # 递归列出目录下哪些文件被进程打开-n # 不显示主机名,直接显示ip-P # 不显示端口名,直接显示端口号-s # 列出文件大小
lsof [list open file] :是一个列出当前系统打开文件的工具
进程文件资源管理
[root@yuchao-tx-server ~]# kill -l显示详细的命令信息
命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作
优雅的杀死
kill 默认的信号,告诉程序你可以结束了
15) SIGTERM
15
强制终止,危险的信号,可能会导致程序出现不可预期的错误
遇见杀不死的进程,只能通过这个信号来杀死
9) SIGKILL
9
无须关闭进程,重新加载其配置文件,如reload操作
1) SIGHUP
1
常用的3个信号
使用jobs命令可以查看后台有那些程序暂停了
2 中断,通常是ctrl+c发出此信号 SIGINT3 退出,通常是ctrl + \\ 发出信号 SIGQUIT20 暂停进程,通常是ctrl + z 发出信号 SIGTSTP
了解的
kill 命令
作用:通过程序的==进程名==来杀死==一类==进程
killall
pkill更省事了,直接根据进程名字干掉进程
pkill
批量根据进程名来进行杀死进程,很容易出现误杀,导致其他程序运行出错
杀死进程
会占用你的终端,无法继续使用
如大文件解压
如果终端异常关闭,会导致程序自动退出
前台运行
如 ping baidu.com > /dev/null &
命令的结尾加上该符号即可
注意,如果你的命令,会输出很多信息,一般都是定向到文件中,结合后台命令
注意:只是帮助进程,在当前的ssh会话中,在后台运行
当ssh会话断开,进程依然会丢失
& 符号
后台运行
[root@liuxinghan ~]# jobs[1]+ Running ping baidu.com > /etc/null &
可以看到当前会话的后台任务列表
jobs 命令
把前台的任务中断,暂停运行,放入后台
ctrl + z
在后台运行
把后台的程序,继续运行起来,和&用法一样
bg
在前台运行,占用窗口
jobs 编号
将已经在后台的程序,放入前台继续执行
fg
命令集合command & # 未启动的command放入后台去运行jobs # 查看后台进程列表ctrl + z # 暂停进程bg # 程序放入后台运行,和 & 一样fg # 将后台任务放入前台执行
真的让进程在后台执行,即使会话断开,进程也不丢失,它也是结合&符号使用,实现命令后台执行
nohup ping baidu.com > /tmp/nohup_ping.log 2>&1 &
简单的使用nohup 你需要执行的命令 &##后面会结合重定向写入
nohup命令
程序的后台运行
如cat 等待终端的键盘输入
一般是键盘输入数据
标准输入、0
stdin
如 ls 目录
程序执行结果,输出到终端
标准输出、1
stdout
当有错误的输出时,对脚本的运行有很大的干扰,很致命的,可能会导致运行出错
stderr
数据流
比如 cat查看文件内容
#常常用在数据库的数据导入mysql < /opt/back.sql
输入重定向是指把命令(或可执行程序)的标准输入,重定向到指定的文件中。
输入重定向
把命令的执行结果,覆盖输出到文件中,多次执行,多次覆盖
使用 “ > ”符号,将标准输出重定向到文件中。形式为:命令>文件名
将命令的正确结果追加写入到一个文件中,原文件内容保留
使用“ >> ”符号,将标准输出结果追加到指定文件后面。形式为:命令>>文件名
使用“ 2> ”符号,将标准错误输出重定向到文件中。形式为:命令 2> 文件名
可以将程序的正确日志和错误日志都输入到同一个文件中,防止程序出错时的日志,打印在终端上
简写未 &> ,可以写在中间,但是不建议使用,容易出错
使用“ 2>&1 ”符号或“ &> ”符号,将把标准错误输出stderr重定向到标准输出stdout
空设备文件,黑洞文件,不输出结果
使用“ >/dev/null ”符号,将命令执行结果重定向到空设备中,也就是不显示任何信息。
输出重定向(重要)
数据重定向
进程资源管理
-m 表示以mb为单位查看
#会自动的按合适的单位显示
-h 以可读形式显示容量
free 命令
Cache,==缓存==,Cached是给==读取数据==时加速的
cache解决的时间问题,提高数据读取速度
把读取磁盘而来,的数据保存在内存中,再次读取
cache
缓存区
buffer
缓冲区
内存资源管理
安装 yum install stress -y
使用例: stress --cpu 1 --timeout 60
作用:进行cpu的压力测试
stress 命令
top 命令查看资源的动态
uptime 命令 查看当前时间点的cpu资源
直接查看cpu的使用情况
lscpu
/proc/cpuinfo 该文件
以上的命令都是去读取
查看cpu的使用
CPU压力负载
df -h
查看磁盘的空间(disk free)
df 命令
磁盘空间的查看
一个用来监视磁盘I/O使用状况的top类工具。
iotop命令
io 监控
磁盘资源管理
安装yum install -y iftop
作用:网络流量监控
用起来和iotop一模一样,动态的查看服务器的流量情况
iftop命令
了解端口的概念
作用:查看网络连接状态
普遍用法 [root@localhost ~]# netstat -tunlp
netstat
但是功能更加的强大
作用和使用同上
并且性能远比netstat强悍,适合用于高并发服务器查看
ss
ps -ef | grep pid/程序名
进程,进程号信息
nststat -tnulp | grep 程序名/端口
看程序的端口是否允许
Linux从服务端查看
浏览器访问该网站的域名即可
从客户端验证是否启动
其实就是去看看进程是否运行某端口
浏览器/服务器模式
如nginx 网站程序 Browser/server
查看Linux机器的端口
ifconfig
ip addr show
IP地址的查看
网络资源管理
Linux资源管理
0 条评论
回复 删除
下一页