生产环境部署与协同开发 Linux(六)

简介: 生产环境部署与协同开发 Linux(六)

十、Linux进程管理

10.1 查看系统中所有进程(ps-aux)

ps -aux

参数

  • -a 显示所有进程(包括其他用户的进程)
  • -u 用户以及其他详细信息
  • -x 显示没有控制终端的进程

相关信息:

USER:该进程属于哪个使用者账号。

UID:程序被该 UID 所拥有。

PID:就是这个程序的 ID 。

%CPU:该进程使用掉的CPU资源百分比。

%MEM:该进程所占用的物理内存百分比。

STAT:

  • R:正在运行
  • S:正在睡眠
  • T:停止了
  • Z:已经终止了。

TIME:该进程实际使用CPU运行的时间

COMMAND:该进程的实际指令

示例:找出mysql这个服务有关的进程信息。

ps -aux|egrep mysql

温馨提示:

egrep是grep的扩展和grep -e 是一样的...

grep中的匹配字符,全部当作字符串来处理,但是不支持正则表达式的特殊元字符....

egrep可以支持元字符...

'^':指匹配的字符串在行首, '$':指匹配的字符串在行尾,

10.2 查看系统健康状态(top)

查看系统健康状态 ,windows 加强版 任务管理器

top [-d] | top [-bnp]

top是一个不错的进程观察工具,但不同于ps是静态的结果输出。top这个进程可以持续地监测整个系统的进程的工作状态。

显示详解:

  • 当前时间
  • 系统已运行的时间
  • 当前登录用户的数量
  • 相应最近5、10和15分钟内的平均负载。

可以使用'l'命令切换uptime的显示。

  • 21:45:11 — 当前系统时间
  • 0 days, 4:54 — 系统已经运行了4小时54分钟(在这期间没有重启过)
  • 2 users — 当前有2个用户登录系统
  • load average: 0.24, 0.15, 0.19 — load average 后面的三个数分别是5分钟、10分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

按q退出任务管理器。

10.3 进程查看器(htop)

htop是Linux系统中的一个互动的进程查看器,与Linux传统的top比较的话,htop人性化并且还支持鼠标操作!

htop的安装

#安装epel源
yum install epel-release -y
#安装htop
yum install -y htop
#安装完毕后命令行输入
htop

10.4 终止进程(kill)

终止进程,kill的应用是和ps或者pgrep命名结合在一起使用的。

kill [信号量]  进程ID

示例

终止所有的httpd进程。

[root@zk3 home]# ps auxf|grep httpd
root    15968  0.0  0.0 112808  968 pts/0   S+  11:35  0:00  |    \_ grep --color=auto httpd

看上面输出中的第二列,就是进程PID.

kill 15968
ps -auxf|grep httpd

注意:

killall 正在运行的进程名 killall gami

kill -9 PID 强制终止进程

10.5 网络接口设备状态信息(netstat)

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

netstat  [选项]

列出所有端口

netstat -a # 列出所有端口

netstat -at # 列出所有TCP端口

netstat -au # 列出所有UDP端口

netstat -ax # 列出所有unix端口

netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名

显示每个协议的统计信息

netstat -s # 显示所有端口的统计信息

netstat -st # 显示所有TCP的统计信息

netstat -su # 显示所有UDP的统计信息

显示核心路由信息

netstat -r # 显示所有端口的统计信息

netstat -rn # 显示所有TCP的统计信息

查看端口号

lsof -i:端口号

 

十一、Linux系统服务

11.1 Service命令

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。

service  服务名 [start | stop | restart | reload | status]

注意:

service命令其实是去/etc/init.d目录下,去执行相关程序

示例:查看当前网络的状况。

service network status

11.2 Systemd命令

Linux的启动一直采用init进程。

service命令两个缺点:

一是启动时间长。init进程是串行启动只有前一个进程启动完,才会启动下一个进程。

二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

systemctl命令

systemctl是 Systemd 的主命令,用于管理系统。

假设要启动一个foo程序

System V init命令 systemctl命令 作用
service foo start systemctl start foo.service 启动服务
service foo restart systemctl restart foo.service 重启服务
service foo stop systemctl stop foo.service 停止服务
service foo reload systemctl reload foo.service 重新加载配置文件(不终止服务)
service foo status systemctl status foo.service 查看服务状态

systemd-analyze命令

systemd-analyze命令用于查看启动耗时。

# 查看启动耗时
$ systemd-analyze                    
# 查看每个服务的启动耗时
$ systemd-analyze blame
# 显示瀑布状的启动过程流
$ systemd-analyze critical-chain
# 显示指定服务的启动流
$ systemd-analyze critical-chain atd.service

hostnamectl命令

hostnamectl命令用于查看当前主机的信息。

# 显示当前主机的信息
$ hostnamectl
# 设置主机名。
$ sudo hostnamectl set-hostname rhel7

timedatectl命令

timedatectl命令用于查看当前时区设置。

# 查看当前时区设置
$ timedatectl
# 显示所有可用的时区
$ timedatectl list-timezones                 
# 设置当前时区
$ sudo timedatectl set-timezone America/New_York
$ sudo timedatectl set-time YYYY-MM-DD
$ sudo timedatectl set-time HH:MM:SS

11.3 Chkconfig

chkconfig命令用来更新、查询、改动不同执行级上的系统服务。比方安装了httpd服务,而且把启动的脚本放在了/etc/init.d文件夹下,有时候须要开机自己主动启动它,而有时候则不须要,因此,就能够使chkconfig命令来进行控制。

参数 参数说明
--add 将相应的服务加入chkconfig管理
--del 将相应的服务从chkconfig管理中删除
--level 查看相应服务的运行级别

示例:查看开机启动的程序

# chkconfig --list

示例:

# chkconfig telnet on  //开启Telnet 服务
# chkconfig --list   //列出chkconfig 所知道的所有的服务的情况
# chkconfig telnet off // 关闭 Telnet 服务
# chkconfig --list   // 列出chkconfig所知道的所有的服务的情况

systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

System V init 命令 systemctl 命令 作用
chkconfig foo on systemctl enable foo.service 开机自动启动
chkconfig foo off systemctl disable foo.service 开机不自动启动
chkconfig foo systemctl is-enabled foo.service 查看特定服务是否为 开机自动启动
chkconfig --list systemctl list-unit-files --type=service 查看各个级别下服务 的启动与禁用情况

附录:

经常使用服务介绍

amd:      # 自己主动安装网络文件系统守侯进程

apmd:      # 高级电源管理

Arpwatch:    # 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库

Autofs:     # 自己主动安装管理进程automount。与NFS相关,依赖于NIS

Bootparamd:   # 引导參数server。为LAN上的无盘工作站提供引导所需的相关信息

crond:     # 计划任务

Dhcpd:     # 启动一个动态IP地址分配server

Gated:     # 网关路由守候进程,使用动态的OSPF路由选择协议

Httpd:     # WEBserver

Inetd:     # 支持多种网络服务的核心守候程序

Innd:      # Usenet新闻server

Linuxconf:   # 同意使用本地WEBserver作为用户接口来配置机器

Lpd:      # 打印server

Mars-nwe:    # mars-nwe文件和用于Novell的打印server

Mcserv:     # Midnight命令文件server

named:     # DNSserver

netfs:     # 安装NFS、Samba和NetWare网络文件系统

network:    # 激活已配置网络接口的脚本程序

nfs:      # 打开NFS服务

nscd:      # nscdserver,用于NIS一个支持服务,它快速缓存用户口令和组成成员关系

portmap:    # RPC portmap管理器,与inetd相似,它管理基于RPC服务的连接

postgresql:   # 一种SQL数据库server。

routed:     # 路由守候进程,使用动态RIP路由选择协议

rstatd:     # 一个为LAN上的其他机器收集和提供系统信息的守候程序

ruserd:     # 这是一个基于RPC的服务。它提供关于当前记录到LAN上一个机器日志中的用户信息

rwalld:     # 这是一项基于RPC的服务。同意用户给每一个注冊到LAN机器的其他终端写消息

rwhod:     # 激活rwhod服务进程。它支持LAN的rwho和ruptime服务

sendmail:    # 邮件serversendmail

smb:      # Samba文件共享/打印服务

snmpd:     # 本地简单网络管理候进程

squid:     # 激活代理serversquid

syslog:     # 一个让系统引导时起动syslog和klogd系统日志守候进程的脚本

xfs:      # X Window字型server,为本地和远程Xserver提供字型集

xntpd:     # 网络时间server

ypbind:     # 为NIS(网络信息系统)客户机激活ypbind服务进程

yppasswdd:   # NIS口令server

ypserv:     # NIS主server

gpm:      # 管鼠标的服务

identd:     # AUTH服务。在提供用户信息方面与finger相似

 

十二、Linux定时任务

什么是定时任务

定时任务命令是cond,crond就是计划任务,类似于我们平时生活中的闹钟,定点执行。

为什么要用crond

计划任务主要是做一些周期性的任务,比如凌晨3点定时备份数据、晚上23点开启网站抢购接口、凌晨0点关闭抢占接口等。

计划任务主要分为以下两种使用情况:

  1. 系统级别的定时任务

临时文件清理、系统信息采集、日志文件切割

  1. 用户级别的定时任务

定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据。

crontab配置文件

进入crontab配置文件

vim /etc/crontab

00  02  *  *  * ls     #每天的凌晨2点整执行

00   02  1  *  * ls     #每月的1日的凌晨2点整执行

00 02 14 2 * ls     #每年的2月14日凌晨2点执行

00 02 * * 7 ls     #每周天的凌晨2点整执行

00 02 * 6 5 ls     #每年的6月周五凌晨2点执行

00 02 14 * 7 ls     #每月14日或每周日的凌晨2点都执行

00 02 14 2 7 ls     #每年2月14日或每年2月的周天的凌晨2点执行

*/10 02 * * * ls    #每天凌晨2点,每隔10分钟执行一次

* * * * * ls      #每分钟都执行

00 00 14 2 * ls    #每年2月14日的凌晨执行命令

*/5 * * * * ls     #每隔5分钟执行一次

00 02 * 1,5,8 * ls   #每年的1月5月8月凌晨2点执行

00 02 1-8 * * ls    #每月1号到8号凌晨2点执行

0 21 * * * ls      #每天晚上21:00执行

45 4 1,10,22 * * ls   #每月的1,10,22号的4:45执行

45 4 1-10 * * ls    #每月的1到10号的4:45执行

3,15 8-11 */2 * * ls  #每隔两天上午8点到11点的第3和第15分钟执行

0 23-7/1 * * * ls    #晚上11点到早上7点之间,每隔一个小时执行

15 21 * * 1-5 ls    #周一到周五每天晚上21:15执行

crontab命令选项

crontab   -e            #编辑定时任务

crontab   -l            #查看定时任务

crontab   -r            #删除定时任务

crontab   -u            #指定其他用户

示例

假设在每周一、三、五的凌晨 3 点 25 分,都需要使用 tar 命令把wwwroot文件夹进 行打包处理,使其作为一个备份文件。

25 3 * * 1,3,5 /usr/bin/tar -zcvf backup.tar.gz /opt/wwwroot


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
81 1
Linux系统之部署轻量级Markdown文本编辑器
|
29天前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
75 41
Linux系统之部署homer静态主页
|
20天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
66 3
Linux系统之部署Linux管理面板1Panel
|
18天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
45 2
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
28 3
|
20天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
36 2
|
21天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
175 2
|
9天前
|
缓存 监控 Linux
|
2天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
11 3
|
2天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
9 3