生产环境部署与协同开发 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


相关文章
|
5月前
|
NoSQL 关系型数据库 Linux
ERPNext 搭建教程:Linux 一键部署与维护
ERPNext 是一款开源免费的企业资源计划系统,适用于中小企业信息化管理。基于 Python 和 Frappe 框架开发,支持财务、销售、人力、库存等模块,具备高度可定制性。本文介绍如何通过 Websoft9 在 Linux 下快速部署 ERPNext,并提供环境配置、系统维护等实用建议,适合开发者和企业用户快速上手。
744 7
ERPNext 搭建教程:Linux 一键部署与维护
|
7月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2254 57
|
5月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
538 13
|
5月前
|
关系型数据库 Linux Nacos
Rocky Linux 部署 Docker 和 NACOS 实例
本文介绍在阿里云环境下基于 Rocky Linux 搭建 Docker 并部署 Nacos 的完整流程。涵盖 Docker 安装、镜像加速配置、网络设置及 MySQL 与 Nacos 容器的创建,适用于开发与生产环境。
735 0
|
7月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
511 17
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
160 18
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
301 137
|
3月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
692 57