- 后端
- 电商
- 认证鉴权
- 搜索引擎
【免费下载链接】mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
本篇技术指南以 mall 电商项目(基于 Spring Boot + MyBatis,Docker 容器化部署)的 Linux 部署运维场景为主线,系统梳理 Linux 系统服务管理、文件管理、压缩解压、磁盘网络、软件安装与网络安全六大类常用命令。读完本文,你将掌握在 Linux 服务器上管理 mall-admin(8080 端口)、mall-search(8081 端口)、mall-portal(8085 端口)等应用进程与依赖服务(MySQL、Redis、Elasticsearch、RabbitMQ、MongoDB)所需的全部核心命令,并能够结合 document/sh/ 目录下的部署脚本与 document/docker/ 目录下的 Docker Compose 文件,完成从环境搭建到日常运维的完整闭环。
系统服务管理:systemctl 与 mall 项目的服务运维
mall 项目在 Linux 服务器上以 Docker 容器方式部署,依赖 MySQL、Redis、Elasticsearch、RabbitMQ、MongoDB 等基础服务。这些服务无论是直接安装为系统服务,还是以容器形式运行,其启停、状态查看与开机自启管理都离不开 systemctl。
systemctl 常用操作一览
systemctl 是 CentOS 7 / RHEL 7 及主流 systemd 发行版的核心服务管理工具,其常用子命令如下:
| 操作 | 命令 | 说明 |
|---|---|---|
| 启动服务 | systemctl start httpd.service | 立即启动,不阻塞等待结果 |
| 关闭服务 | systemctl stop httpd.service | 立即停止 |
| 重启服务 | systemctl restart httpd.service | 不管是否在运行都重新启动 |
| 重载配置 | systemctl reload httpd.service | 重新载入配置,不中断服务(服务须支持 SIGHUP 重载) |
| 查看状态 | systemctl status httpd.service | 显示运行状态、进程号、日志片段 |
| 设置开机启动 | systemctl enable httpd.service | 创建符号链接加入开机自启 |
| 禁止开机启动 | systemctl disable httpd.service | 移除开机自启 |
| 列出系统服务 | systemctl list-units --type=service | 查看所有已加载的 service 单元 |
说明:systemd 单元文件(
.service)可以不写完整后缀,systemctl start httpd与systemctl start httpd.service等价。
在 mall 部署场景中的应用
document/sh/run.sh 展示了 mall 项目的典型容器发布流程:停止并删除旧容器、删除旧镜像、重新构建镜像并启动新容器。对应到 Linux 层面,如果要管理 MySQL、Redis 这类以系统服务形式安装的依赖(而非容器),可使用systemctl status mysql、systemctl restart redis等命令。如果依赖以 Docker 容器运行(参见 document/docker/docker-compose-env.yml),则管理命令变为docker start/stop/restart <容器名>,两者结合即可覆盖 mall 项目在 Linux 上的全部服务运维场景。
判断服务是否健康,建议使用systemctl status结合ps -ef | grep java(见下文 ps 一节)双保险确认——前者反映 systemd 视角的服务状态,后者确认 Java 进程真实存活。
文件管理:从目录查看到权限密码的日常操作
Linux 下的一切皆文件,mall 项目的日志(/mydata/app/mall-admin/logs)、Docker 数据卷(/mydata/mysql/data等)都是运维中频繁打交道的目录。
目录与文件操作命令
- ls:列出目录内容
ls -l /home:以长格式列出 /home 下的子目录(含权限、属主、大小、修改时间)ls -lht:以长格式按修改时间倒序(-t)列出当前目录文件及大小(-h人性化显示)- 排查磁盘占用时,可配合
du -sh /mydata/*定位大目录
- pwd:显示当前工作目录
- cd:切换目录,如
cd /usr/local - mkdir:创建目录,如
mkdir -p /mydata/app/mall-admin/logs(-p递归创建)
时间、密码与身份切换
- date:以指定格式显示日期,
date '+date:%x time:%X'输出形如date:09/29/26 time:00:43:33的本地化日期时间 - passwd:修改密码,
passwd root修改 root 用户密码 - su:切换用户,
su -从普通用户切换到超级用户(-表示加载目标用户的完整登录环境,环境变量会重置) - clear:清除屏幕信息
- man:查看命令帮助手册,如
man ls,是学习命令参数的权威途径
系统状态查看:who / free / ps / top
- who:
who -r:查看当前运行级别(runlevel)who -buT:显示用户登录详情(-b显示上次启动时间,-u显示登录用户,-T显示终端状态)
- free:以 MB 显示内存使用状态,
free -m。mall 的 Elasticsearch 容器默认分配-Xms512m -Xmx1024m(见 document/docker/docker-compose-env.yml),可用free -m确认服务器内存是否充足 - ps:查看进程
ps -ef:查看系统所有进程(-e显示所有进程,-f全格式输出)ps -ef | grep java:过滤出 java 进程,是确认 mall 各应用是否运行的经典用法- 结合 mall-admin.sh、mall-portal.sh、mall-search.sh 中定义的端口(8080 / 8085 / 8081),可用
ps -ef | grep 8080反向定位占用端口的进程
- top:动态查看系统当前活跃进程,按
M按内存排序、按P按 CPU 排序,top -p <PID>查看指定进程
查看与编辑文件:more / cat
- more:分页查看文件,
more -c -10表示每 10 行显示一屏(-c显示前清屏) - cat:查看文件内容,
cat -Ab config中-A显示所有不可见字符(等价于-vET),-b给非空行加行号。mall 项目中查看 application.yml 等配置即可使用cat -n带行号查看
文件操作:rm / touch / cp / mv
- rm:删除文件
rm a.txt;递归强制删除文件夹rm -rf a/。注意该命令不可逆,删除 Docker 数据卷目录前务必三思(部署脚本中docker rmi删除的是镜像,与rm -rf删除宿主机文件不同) - touch:创建空文件,
touch a.txt - cp:复制,
cp -r /home/a /home/b递归复制目录 a 到目录 b - mv:移动或重命名,
mv a.txt b.txt将 a.txt 重命名为 b.txt
压缩与解压:tar 打包与发布包分发
mall 项目的日志备份、源码归档、以及从服务器间迁移数据卷时,tar 是最常用的工具。tar 命令的格式为tar <参数> <目标文件> <源路径>,核心参数:c创建、x解压、v显示过程、f指定文件、z使用 gzip、j使用 bzip2、t查看内容。
| 场景 | 命令 |
|---|---|
| 打包文件夹(不压缩) | tar -cvf /opt/etc.tar /etc |
| 打包并 gzip 压缩 | tar -zcvf /opt/etc.tar.gz /etc |
| 打包并 bzip2 压缩 | tar -jcvf /opt/etc.tar.bz2 /etc |
| 查看压缩包内容(不解压) | tar -ztvf /opt/etc.tar.gz |
| 解压 gzip 包到当前目录 | tar -zxvf /opt/etc.tar.gz |
提示:
tar -ztvf /opt/etc.tar.gz末尾的/etc参数在此仅为示意,实际查看内容时只需tar -ztvf /opt/etc.tar.gz;解压时若不指定-C目标目录,默认解压到当前目录,建议配合-C /mydata/backup将内容解压到指定位置。
磁盘与网络管理:df / ifconfig / netstat / wget
mall 项目运行会持续产生日志与数据,磁盘与网络状态监控是日常巡检的必修课。
df 磁盘占用查看
df -hT:-h人性化显示大小(G/M),-T显示文件系统类型。当 docker-compose-env.yml 中的数据卷(/mydata/mysql/data、/mydata/elasticsearch/data等)不断增长时,可用df -h /mydata确认挂载分区剩余空间。
ifconfig 与 netstat 网络查看
ifconfig:查看当前网络接口状态(IP、掩码、收发字节数)。部分新版系统需yum install net-tools安装netstat:网络连接与端口监听查看netstat -rn:查看路由信息(-r路由表,-n不解析域名)netstat -an:查看所有有效 TCP 连接netstat -tulnp:查看系统中启动的监听服务(-tTCP、-uUDP、-l监听、-n数字显示、-p显示进程)——排查 8080/8081/8085 端口是否被监听的首选netstat -atunp:查看处于连接状态的系统资源信息
mall 端口速查:mall-admin 监听 8080,mall-search 监听 8081,mall-portal 监听 8085(对应 application.yml 中
server.port: 8081等配置)。用netstat -tulnp | grep 8081即可确认 mall-search 是否就绪。
wget 下载
wget从网络上下载软件或文件,例如下载 JDK、Maven 安装包到服务器,或下载 Dockerfile 中需要用到的依赖包。常用变体:wget -c断点续传、wget -O指定输出文件名。
软件的安装与管理:rpm 与 yum
Linux 环境准备(安装 JDK、MySQL 客户端、Elasticsearch 等)依赖软件包管理。mall 项目在 Linux 上部署的依赖栈可参考 docker-compose-env.yml:mysql:5.7、redis:7、elasticsearch:7.17.3、rabbitmq:3.9.11-management、mongo:4 等。
rpm:底层 RPM 包管理
rpm 直接操作.rpm包文件,以 nginx 为例:
| 操作 | 命令 |
|---|---|
| 安装软件包 | rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm |
| 模糊搜索已装包 | rpm -qa \| grep nginx |
| 精确查找已装包 | rpm -qa nginx |
| 查询安装路径 | rpm -ql nginx-1.12.2-2.el7.x86_64 |
| 查看包概要信息 | rpm -qi nginx-1.12.2-2.el7.x86_64 |
| 验证包内容一致性 | rpm -V nginx-1.12.2-2.el7.x86_64 |
| 更新软件包 | rpm -Uvh nginx-1.12.2-2.el7.x86_64 |
| 删除软件包 | rpm -e nginx-1.12.2-2.el7.x86_64 |
参数说明:-i安装、-v显示过程、-h显示进度条、-U升级、-e卸载、-q查询、-a所有、-l列出文件、-V校验。rpm 不会自动解决依赖,实际运维中更常用 yum。
yum:依赖自动解决的软件管理
yum 基于仓库(repository)工作,自动解决依赖,是 CentOS 下安装软件的首选方式:
| 操作 | 命令 |
|---|---|
| 安装软件包 | yum install nginx |
| 检查可更新包 | yum check-update |
| 更新指定包 | yum update nginx |
| 在仓库中查找包信息 | yum info nginx* |
| 列出所有已安装包 | yum info installed |
| 列出指定名称的包 | yum list redis* |
| 模糊搜索软件包 | yum search redis |
在 mall 部署场景中,可用yum install -y net-tools补齐 ifconfig/netstat,用yum install -y lrzsz安装 lrzsz 便于文件上传。注意yum install加-y可跳过交互确认,适合脚本化执行。
网络安全:iptables 防火墙管理
iptables 是 Linux 内核防火墙的经典管理工具(新版系统也提供 firewalld 封装)。mall 服务对外暴露 8080/8081/8085 等端口时,需要确保防火墙放行相应端口。
防火墙服务开关(以 iptables.service 为例)
| 操作 | 命令 |
|---|---|
| 开启防火墙 | systemctl start iptables.service |
| 关闭防火墙 | systemctl stop iptables.service |
| 查看防火墙状态 | systemctl status iptables.service |
| 设置开机启动 | systemctl enable iptables.service |
| 禁用开机启动 | systemctl disable iptables.service |
说明:
iptables.service作为 systemd 单元管理的前提是已安装 iptables-services 包;若使用 firewalld,则对应systemctl start/stop firewalld。
iptables 规则管理
| 操作 | 命令 |
|---|---|
| 查看 filter 表链信息 | iptables -L -n |
| 查看 NAT 表链信息 | iptables -t nat -L -n |
| 清空所有规则 | iptables -F; iptables -X; iptables -Z;(-F清空链规则、-X删除自定义链、-Z计数器归零) |
| 放行 80 端口 | iptables -I INPUT -p tcp --dport 80 -j ACCEPT(-I插入到链首,-p协议,--dport目标端口,-j ACCEPT接受) |
| 查找规则行号 | iptables -L INPUT --line-numbers -n |
| 按行号删除规则 | iptables -D INPUT 1(删除 INPUT 链第 1 行规则) |
在 mall 部署场景中,若采用 Docker 部署(参考 docker-compose-app.yml 的端口映射 8080/8081/8085),需注意 Docker 会向 iptables 注入自定义链,放行规则通常只需作用于宿主机的对外网卡;排查"端口通但连不上"的问题时,先iptables -L -n --line-numbers确认是否被 DROP,再检查netstat -tulnp确认进程监听。
注意:iptables 规则默认不持久化,重启后失效。需要持久化时,CentOS 可用
service iptables save保存规则到/etc/sysconfig/iptables(依赖 iptables-services),确保重启后仍生效。
结合 mall 部署脚本的 Linux 运维实践
上述命令并非孤立存在,mall 项目的实际部署正是这些命令的组合运用。以 run.sh 为例,其执行流程依次对应:
docker stop mall-admin/docker rm mall-admin/docker rmi mall/mall-admin:1.0-SNAPSHOT—— 清理旧容器与旧镜像(对应 Linux 进程与镜像管理);docker build -t mall/mall-admin:1.0-SNAPSHOT .—— 依据 Dockerfile 构建新镜像;docker run -p 8080:8080 --link mysql:db --link redis:redis -e 'spring.profiles.active=prod' -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -v /mydata/app/mall-admin/logs:/var/logs -d mall/mall-admin:1.0-SNAPSHOT—— 启动容器。
其中的-v /etc/localtime:/etc/localtime正是将宿主机时区文件挂载进容器,与本文date、cp /etc/localtime的时区同步思路一脉相承;日志目录/mydata/app/mall-admin/logs的查看则对应本文ls -lht与tail(tail -f跟踪日志输出)的组合使用。
结语
本文以 mall 项目 Linux 部署运维为主线,覆盖了 systemctl 服务管理、文件与进程管理、tar 压缩解压、df/netstat 磁盘网络排查、rpm/yum 软件安装以及 iptables 防火墙配置六类高频命令。掌握这些命令后,再结合 document/sh/ 的部署脚本、document/docker/ 的 Docker Compose 编排文件以及 document/sql/mall.sql 的数据库初始化脚本,即可独立完成 mall 前台商城与后台管理系统在 Linux 服务器上的环境搭建、部署发布与日常巡检运维。若需在 Windows 本机先行联调,可进一步参考 document/reference/deploy-windows.md 的环境搭建指南,与本文的 Linux 方案互为补充。
- 后端
- 电商
- 认证鉴权
- 搜索引擎
【免费下载链接】mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
相关推荐
mall电商系统Linux运维指南:常用命令详解
mall电商系统Linux运维指南:常用命令详解 前言 还在为电商系统的Linux运维而头疼吗?面对复杂的分布式架构、多容器部署、性能监控等问题,你是否感到无从
后端电商认证鉴权搜索引擎mall 项目 Linux 运维实战:常用命令速查手册与部署场景解析
mall 项目 Linux 运维实战:常用命令速查手册与部署场景解析 本篇技术指南以 mall 电商项目在 Linux 环境下的日常运维为主线,系统梳理 doc
后端电商搜索引擎linux-tutorial 仓库完全指南:从 Linux 命令、系统运维到软件部署的体系化学习路线
linux tutorial 仓库完全指南:从 Linux 命令、系统运维到软件部署的体系化学习路线 linux tutorial 是一份系统化的 Linux
文档教程运维
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考