技术职场教练
拥有k8s、阿里云领域的多项证书,从事央企项目,擅长以幽默易懂的方式讲授知识,精通Linux系统、云计算、k8s、docker、等主流技术,熟练编程语言shell、懂Python、Java、网络设备:思科、华为、H3C,尤擅案例分析、问题解决,方案创作。
展开
-
【简单实用】python常用脚本之批量删除指定后缀文件
用学到的python代码知识,提高工作效率。批量删除视频或音频文件。需要考虑到如果文件删除错误是否需要恢复,以及虽然符合音视频文件的种类,但是,某几个文件我想保留如何操作?原创 2025-02-22 12:16:08 · 88 阅读 · 0 评论 -
【图文详解】lnmp架构搭建Discuz论坛
0基础快速搭建Discuz_X3.4论坛服务原创 2025-01-24 20:06:18 · 481 阅读 · 0 评论 -
【宝典】OpenStack集群、k8s集群与docker等集群综合巡检shell脚本
高质量脚本应该至少满足两点:1、学会根据架构,设计出符合要求又便于理解的shell脚本2、优秀的shell脚本,具备伸缩性,既适用当前平台状态,又可以保证后期增加或下线哪个服务,脚本里增加代码不用改整体代码逻辑的方便,只要增删部分即可。原创 2023-01-07 10:26:44 · 932 阅读 · 0 评论 -
【高效的秘密】让k8s运维更高效-日志搜索脚本
k8s管理的日志系统出现问题,导致日志无法从前端页面查询下载。通过两种途径来解决:(1)手工进入目录:使用vi一个个截取规定服务的指定时间段日志;工作量大,效率低,而且容易漏掉需要的日志内容(2)编写自动化脚本,实现,秒级实现需求。原创 2022-09-18 11:02:45 · 541 阅读 · 0 评论 -
【精品】openstack部署排错一点通
采用级联方式,其他节点以主机名为openstack的节点来同步,openstack以阿里云同步。卸载或关闭firewalld:yum -y remove firewalld。与ntp服务器时间不一致会导致验证失败,yum命令执行部分操作好使,部分报错。2)关闭firewalld,selinux及NetworkManager。编辑配置文件/etc/chrony.conf。编辑配置文件/etc/chrony.conf。缺少一个证书,这个报错可以忽略。以http://ip/dashboard登录。原创 2022-08-20 16:39:46 · 504 阅读 · 0 评论 -
【精品】轻松部署ceph分布式存储集群
解决:手动安装,打开网址https://mirrors.aliyun.com/centos/7/storage/x86_64/ceph-jewel/找到ceph-deploy-1.5.39-0.noarch.rpm 下载本地,上传到主机名称为deploy的主机,再执行上述命令。上述报错,开始定位问题,停留在yum源网络状态不佳,后来又查看系统版本,发现问题节点系统版本低是7.3,换了系统版本一致的虚机,任未解决问题。3)在部署节点执行,所有节点安装ceph软件(也可在节点,自行执行yum安装)......原创 2022-08-14 11:58:26 · 379 阅读 · 0 评论 -
【运维、实施精品】月薪10k+的技术岗位面试技巧
使你逻辑清晰的超预期的表达出面试官想知道的内容,避免答非所问,或者表达的没有特色,吸引力,无法脱颖而出!原创 2022-07-25 10:48:51 · 297 阅读 · 0 评论 -
重点:运维工程师关于MySQL的高频率面试题
从数据库的SQL线程,从relaylog里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db,这样从服务器通过主服务器的二进制日志自动执行更新。读写分离就是主服务器上进行事务性操作,从服务器上进行select查询,主服务器上的操作会同步到从服务器,实现备份的同时也实现了数据库读写性能的优化,提升了数据库的安全。基于行的复制主数据库把变化的信息作为事件,写入binlog,从数据库再把它写入,完成复制。MySQL支持的复制类型。...原创 2022-07-18 21:10:45 · 1228 阅读 · 0 评论 -
【必懂的Java应用】Tomcat添加系统服务及安全配置搭建jpress
1、Tomcat可以搭建一个Java环境,供用户开发、测试,手机的应用大部分是Java开发的,它的重要性越来越突出。2、天下有免费的午餐,Tomcat做到了,免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统。3、具有处理HTML页面的功能,另外它还是一个Server和JSP容器,独立的Server容器是Tomcat的默认模式,解析动态页面,不需要像Nginx、Apache需要安装php等,他本身可以解析。...原创 2021-10-09 17:00:47 · 399 阅读 · 3 评论 -
【运维、实施必读】ansible使用playbook批量部署nginx等服务及常见错误排查
第二、ansible本身问题,它的service模块用终端命令方式执行可以,但是写到剧本,书写无误也会报错,改用shell模块可以达到相同效果不会报错。验证执行脚本,无需人工参与;远程ssh执行命令不用输入用户名及密码,证明脚本免密成功。简化知识,将晦涩复杂的知识简单化输出,并告诉举一反三的方法,使其可以深入浅出的理解。脚本自动实现免密(此方法,适合多台免密,一百台方法也一样,增加其他主机信息即可)访问验证乱码是不支持中文,实验结果是成功的。修改nginx配置变成,定义为变量。...原创 2022-07-16 15:06:45 · 733 阅读 · 0 评论 -
你是自己的主角,ansible剧本,报错急速处理
重点命令单词syntax语法check检查,示例对剧本语法检查ansible-playbook--syntax-checktasks任务,示例列出任务ansible-playbook--list-taskstags标签,示例列出标签。原创 2021-09-19 15:47:28 · 267 阅读 · 1 评论 -
不要上瘾!运维必懂的ansible批量部署web、nfs、rsync服务
为什么选它?常用的运维工具:ssh/puppet(ruby)/ansible(无客户端,中小规模1000台以下服务器);saltstack(master-minion)、python大规模ansible比其他自动运维工具简单,无客户端软件,通过ssh远程管理安装后不需要启动服务依赖大量的Python模块扩展功能配置文件:/etc/ansible/ansible.cfg是什么?ansible是一个配置管理系统(configuration management system),当下最流行的批原创 2021-09-16 22:31:23 · 657 阅读 · 1 评论 -
【高效、深入】linux系统实战总结
本篇没有废话,由浅入深,还会讲解一些技巧的使用,不仅让您学会,还让您比别人更高效的完成任务,解决难题。提示:命令是基础,也是重点,掌握了,你就会了,掌握的多了,你可以比别人用更少的时间解决他人解决不了的难题。1 技巧:一次性执行多条命令,让您更快得出想要的效果获取安装程序的服务器主机名和进程ID号分析:安装程序进程ID号,ps -ef与ps aux然后过滤均可实现,选择您最喜欢的,效率更快;以ssh为例,一般我们会获取tomcat、nginx等逻辑一样1)ps -ef命令获取的第二列值就是我们要的结果原创 2022-07-07 19:47:28 · 497 阅读 · 0 评论 -
【linux金钟罩】系统安全防护之指定格式保存历史命令记录
linux系统默认历史记录不显示执行命令的用户及时间,为了出现问题知道哪些用户在系统那个时间执行过哪些命令,如何实现?提示:在全局变量文件中添加代码,即可实现,所有用户的操作均以固定格式记录并保留日志。...原创 2022-07-03 21:50:30 · 961 阅读 · 0 评论 -
【shell宝典】linux系统程序监控、安全、日志整理实战
linux CentOS 6系列两台服务器,2个物理CPU,每个8核,内存62G;安装的应用程序weblogic12c、tomcat。保障服务器安全稳定运行,如何做?有多种可选方案,但最快速、成本最低的方式,是三种:2、3不是本章重点安全方面:1、编写shell脚本 将异常IP加入ssh服务黑名单;或加入防火墙黑名单2、修改默认目录及用户名,端口等3、密码策略 定期修改密码,设置复杂度高的密码,不要有规律(可以在规律的基础上随机添加,这样及好记又不易被破解)性能监控:1、每天对服务及系统资源的状况原创 2022-07-02 22:44:33 · 1088 阅读 · 0 评论 -
【shell秘籍】Linux系统服务、硬件监控邮件告警四式
心法:编写shell脚本前,需对需求进行分析,脑子里有摸板,看它适合用第一范式还是第几范式,做出框架,后期在不断修正即可。以四个脚本的编写说明此法的使用。可以使用系统目录来存放脚本执行后产生的数据,也可以创建目录,本例使用系统自带的。并给它添加时间,可以区分,不同时间产生的信息。可以放到计划任务,也可以脚本里写上间隔1分钟执行一次(此方法会占用一个终端tty)执行如图:服务异常,如图:2.磁盘io指定选项参数超过设定值,邮件告警执行如图:3.软硬件整体信息收集执行如图:执行如图:.原创 2022-06-16 20:59:35 · 595 阅读 · 0 评论 -
【精品必读】Linux系统Oracle数据库趣解子查询
使用子查询,可以用SQL语句解决复杂问题。子查询是指嵌入在其他SQL语句里的select语句中,也叫嵌套查询。分类:查询 2012 年 1 月用水量大于平均值的记录分析:第一步,查出2012年1月用水量平均值(将这个看成整体,用括号区分起来);第二步,综合起来,查出2012年1月用水量大于第一步的值1)查询2012年1月用水量大于某个值的格式2)把第一步的查询结果看成整体,用括号区分起来(1)查询地址编号为 1 、3、4 的业主记录(2)查询地址含有“花园”的业主的信息分析:第一步,查出原创 2022-06-11 17:54:36 · 197 阅读 · 1 评论 -
Linux系统ORACLE 19C OEM监控管理
是采用图像化界面来控制和管理ORACLE数据库的工具集。查看端口:修改默认端口:exec DBMS_XDB_CONFIG.SETHTTPSPORT(5501)登录地址格式为: https://hostname:5500/em (19c默认端口是5500)。Resources资源显示主机cpu使用率 活跃会话 内存 数据存储SQL Monitor,sql语句监测Incidents,事件...原创 2022-06-10 15:51:51 · 1133 阅读 · 2 评论 -
linux系统笑着玩Oracle数据库多表查询-连接查询
内连接查询:返回满足条件的记录外连接查询:不仅返回满足条件的记录,而且返回不满足条件的记录;根据以那张表不满足条件的记录为准,分为左外连接:也要返回连接操作符左边有记录,右边无记录行右外连接:也要返回连接操作符右边有记录,左边无记录行内连接查询要求:查员工姓名,职务名称。分析:公司里不可能告诉您,要那张表的哪些记录。要根据要求,分析所涉及的表及命令。员工姓名在a表,职务名称在b表,所以需要多表查询,员工姓名,职务名称在左右表都有,属于内连接。查询语句:第一步,写出基本框架(万年不变)第原创 2022-06-10 13:41:14 · 470 阅读 · 0 评论 -
【笑着学mysql】数据库的DDL语言及数据类型-create、drop、alter、select
本节讲述两类内容,带领比我还帅的你走进DDL语言的奥秘库的基本操作显示系统所有库:show databases进入操作的库:use 库名显示当前所在库:select database()删除库:drop database 库名表的基本操作通过本节学习,您能初步掌握数据库的基本操作,学会编写常用的SQL语句,以后执行类似操作,复制-粘贴轻松搞定,剩下时间把妹去。库的基本操作创建create database [ if not exists ] 库名 [ default chars.原创 2022-05-17 14:16:36 · 473 阅读 · 0 评论 -
【精华】三步快速编写任意shell脚本-批量部署服务示例
我们接到的任务可能只是一个描述,比如:把数据库备份一下。但要做好,我们需要考虑到众多因素,也有好多种方法可以实现,能更快、更全面的完成才是一个优秀的运维人员。第一步:了解要求反馈 您真的了解吗?任务不是已经说了吗?比如,给某服务器安装一个mysql数据库。可是,是以二进制安装还是什么方式安装,这个关键点,你不问,别人不会说的,她还以为你知道,尤其是萌新。预估可能遇到的问题 80%的问题是可以避免的,无论通过什么途径,询问别人,网站搜索,做总结等等,需要别人怎么做配合你,在任务初期有个了解,做起来会原创 2022-05-15 20:06:17 · 574 阅读 · 0 评论 -
实用的六个shell脚本批量创建用户,监控及expect免交互
剑客一:令狐冲提示:精通技术-独孤九剑编写监控脚本,监控系统资源占用情况脚本存放位置:/shell脚本名称:checksys.sh监控内容:监控服务器CPU、内存使用率情况,并显示系统当前时间及运行时间显示要求:要求中文显示,每秒更新一次监控数据1)分析:分解需求,先显示四项内容,再满足每秒刷新一次,就用到sleep,让其休眠1秒再显示监控数据。2)编写脚本:#!/bin/bashwhile truedoDATE=$(uptime | awk '{print $1}')UPTIM原创 2021-08-30 10:12:28 · 504 阅读 · 0 评论 -
【轻松记,熟练用】Linux系统运维实施常用命令集索引表1
Bbash:命令解释器,系统默认安装,它是钢琴的键盘,给它指示,就会返回所需要的结果。使用场景:编写shell脚本,第一行通常会声明使用它来执行命令,/usr/bin/bash通过调用系统函数可以查看bash的版本echo $BASH_VERSIONCchown:文件的属组默认为文件创建者所处的组,一个文件可以位于多个组内,同一组内的用户对文件具有共享的权限。语法:chown [选项] 参数示例1:改变名为desc.txt的文件属主为user1示例2:改变名为order目录及其内文原创 2022-05-14 13:33:28 · 224 阅读 · 0 评论 -
【笑着学mysql】查询数据由基础到进阶-面试常问
面试一般会问几个需要复杂的查询语句的案例,可以先把问题拆解开,找出容易的,再综合即可!数据查询不只是简单查询存储的数据,还应该根据需要对数据筛选,以及确定数据以什么样的格式显示。基本查询语法SELECT {* | <字段列表>} [ FROM <表名> [ where <表达式> ] [ group by ] [ having ] [ order by<…> ] [ limit <…> ]释义:{*|<字段列表>}包含星号通原创 2022-05-12 22:56:41 · 274 阅读 · 1 评论 -
Linux系统邮件报警核心:多条件判断备份系统文件
1)应用场景:公司的网站数据每天都会有新内容,为了防止公司网站出现问题,需要将公司的网站数据进行备份,在进行全量备份的基础上,每天进行增量备份即可,如备份没有完成则发邮件进行报警,及时处理故障,确保公司数据安全,注意备份文件名附上日期。2)实现思路与流程分析:设置变量以指定要备份的网站数据目录与备份文件放置的目录;判断备份目录是否存在,设置邮件相关内容,如主题、邮件账号;执行增量备份,如失败发邮件设置crond服务,定期周期执行脚本a.创建脚本文件存放目录b.创建脚本文件web_backup.原创 2022-05-11 21:13:39 · 367 阅读 · 0 评论 -
Linux系统shell脚本编写规范与常用技巧
注释要易于阅读有些初学者,往往编写的注释,只有自己能看懂,这忽略了要点,注释目的是为了给同事看的,至少包含下面信息,中文、英文注释规范不一,需要区分。程序员名字、程序目的、程序最后修改日期、最后修改者名字#Programmer: Zhao#Purpose: Test#Last Changed: 2022/5/9#changed by: Zhao常见三只“臭虫”1) 错词 错误的字词2) 正确字词用在错误的位置 例如:特别注意,有些命令在命令行终端可以执行,但是在shell中不可以这.原创 2022-05-09 12:45:33 · 322 阅读 · 0 评论 -
【精品】Linux系统硬件、网络、系统及安全巡检邮箱告警脚本shell脚本
需求:对公司的Linux服务器进行巡检,确保安全稳定运行。分析:通过需求,制定流程,先编写shell脚本,再放到计划任务里,确保能周期性执行;注意,为了脚本的灵活性,把监控项定义成函数,用哪个调用其函数即可!巡检脚本如下1、#!/bin/bash#运维部-Friends of the windfunction system(){echo "#########################系统信息#########################"OS_TYPE=`uname`OS_VER原创 2022-05-05 15:09:30 · 851 阅读 · 0 评论 -
Ubuntu入门教程及常见错误排查
目标:系统基本配置1、设置静态IP(注意,不要与现有的ip一样)sudo vim /etc/network/interfaces重启网络服务:service networking restart常见报错:在新安装ubuntu16.04后发现网卡驱动加载了,但是连接不上网,原因之一可能是DNS服务器地址没有配置。解决办法:执行 sudo vim /etc/network/interfaces ,向文件中添加dns-nameserver 114.114.114.114执行sudo vim /et原创 2022-02-22 14:09:48 · 670 阅读 · 0 评论 -
对不起!我们只出精品-磁盘技术raid详解
学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客 3 篇原创 2021-07-25 13:21:54 · 252 阅读 · 7 评论 -
VMware虚拟机无法连接互联网,教会你系统常见网络故障处理
问题:在VMware workstation虚拟机上,刚安装的系统,无法连接互联网,桌面网络连接没有VMnet8图标?分析温馨提示:以Linux系统为例,先定位焦点,造成这种问题只能出在哪些方面,排除没可能的方面,更高效,这基础上就好排查拉。1、 桌面网络连接没有VMnet8图标?那么,宿主机可以联网吗?如果,宿主机都无法联网,先解决,以这个为基础,才能解决虚拟机的Linux系统无法联网。2、 宿主机可联网情况,我们先分析,虚拟机联网必备条件:一、网卡类型,必须是桥接(只能有线连接才能使用桥接原创 2021-07-14 09:59:19 · 5354 阅读 · 1 评论 -
Linux玩局域网自建yum源及网络yum
学习目标:提示:这里可以添加学习目标lsof -i 80 查看端口状态Nginx并发连接数5万/s ,epoll 多重网络io复用学习内容:提示:这里可以添加要学的内容1、 用来查询系统内是否安装过某个软件rpm -qa | grep httpd2、 查看yum 仓库有多少文件yum repolist3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日原创 2021-07-08 20:38:40 · 471 阅读 · 2 评论 -
特别的爱给你-Linux系统权限精华篇
基本权限提示:默认文件权限644、目录是755修改文件的权限和属性chgrp :改变文件所属组以root用户创建文件test.txt,默认属组是root,以命令改变属组或解释:1 第二栏表示有多少文件名链接到此节点(比如,一个目录,下面有多少文件就是几)chown :改变文件拥有者,即属主也改为niulang同样可以用chown同时改变拥有者和所属组-R:递归;目录下的子目录,文件都继承设置的权限练习:1)、创建一个用户userA,然后切换至该用户,在/tmp目录下,创建一个原创 2021-07-07 08:10:22 · 228 阅读 · 5 评论 -
玩转Linux系统-不一样的压缩命令
常用压缩命令1)zip 例如:zip filename.zip file1 file2压缩后源文件存在例如:生成800M的文件file1[root@localhost ~]# dd if=/dev/zero of=file1 bs=100M count=8验证:源文件800M,压缩后变成796kunzip 解压缩:-d指定解压路径,不加解压在当前目录2)gzip 例如:gzip messages直接用源文件压缩,压缩后源文件不存在,默认后缀名:.gz不解压查看压缩文件内容解压也原创 2021-07-05 18:05:04 · 170 阅读 · 7 评论 -
一招打败你的低效率-Linux实用精华操作技巧
文本编辑:提示:这里可以添加学习目标批量首行缩进esc从编辑模式退到命令模式,将光标移到需要缩进的行的行首,然后按shift+v,可以看到该行已被选中,且左下角提示为“可视”按键盘上的上下方向键,如这里按向下的箭头,选中所有需要批量缩进的行按shift+>,是向前缩进一个tab值,按shift+<,则是缩回一个tab值学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学原创 2021-06-10 10:36:46 · 252 阅读 · 3 评论 -
搭建zabbix监控Windows、Linux系统、网络设备报错解决方案
为何要了解监控架构例如:我们八人组成团队叫“鬼八仙”;要和人家打群架,人家十三人组成团队叫“十三太保”,由名字得知,我们是干不过人家的,即便干过人家,我们的损失绝对大过人家。因此,根据不同的网络环境、监控规模等综合因素,选择适合的监控架构。直接连接架构又叫server-client架构,适用于网络环境简单、监控规模少的场合,打个比方,好比“绝代双骄”,只有两个人。proxy架构,适用于中型网络的监控。Node架构,翻译中文节点,每个node有自己的配置文件和数据库,当主服务器发生故障,节点仍可.原创 2021-06-04 17:26:53 · 1219 阅读 · 4 评论 -
玩转Linux之Haproxy搭建群集
目标:了解Haproxy的特点轻松使用Haproxy搭建群集内容:一、 HAProxy的特点是:支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作支持url检测后端的服务器出问题的检测会有很好的帮助。更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Par原创 2021-05-26 11:18:26 · 185 阅读 · 13 评论 -
玩转Linux之搭建高可用、负载均衡群集综合案例
要求通过keepalived确保lvs、nginx、dns以及网关的高可用通过lvs的dr模式实现httpd负载均衡通过nginx实现tomcat负载均衡通过nfs提供共享存储通过www.benet.com访问httpd网站;www.accp.com访问tomcat网站推荐步骤温馨提示:实验环境,关闭防火墙与selinux一、 部署FTP,通过其安装软件。服务器1安装ftp服务,并在/var/ftp下创建目录centos,并将系统盘下所有内容复制到其下。挂载光盘(省略),创建FT.原创 2021-05-23 14:36:59 · 1187 阅读 · 15 评论 -
玩转Linux之LVS与keepalived组合搭建负载均衡+高可用群集
为什么用它?企业生产系统、业务运营既要保障高效率,也要最大化降低故障出现造成的影响,keepalived的两大功能:故障切换、健康检查,为企业提供了可靠的解决方案。例如,一旦检测到主调度器处于异常状态,则自动切换到从调度器,并将故障机隔离,在未恢复正常之前不会将请求发送给它,从而保障业务不会中断。它是什么?keepalived的热备方式是:VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)关键要素:一主 + 多备,共用同一个IP地址。一台主服务.原创 2021-05-21 15:34:56 · 289 阅读 · 8 评论 -
硬核推荐:Linux系统搭建基于DR模式的LVS负载均衡群集
理论温馨提示:上期讲解的是基于NAT模式的LVS负载均衡群集,本期讲解DR模式,其他相关知识,可看上期内容LVS负载均衡群集理论详解DR工作模式三大特点 1、服务器与调度器在同一个子网 2、需要每个服务器有公有地址 服务器直接向客户端响应 3、不走隧道进行通信重点温馨提示:涉及相关知识,我们进行简答回顾。 1、ARP 地址解析协议(Address Resolution Protocol) 其基本功能为已知目标设备的IP地址,以广播方式查询目标设备的MAC地址,以保证通信原创 2021-05-19 14:28:38 · 230 阅读 · 3 评论 -
玩转Linux系统之轻松安装企业版mysql数据库及遗忘密码处理
我是谁?温馨提示:了解理论,才能轻松安装和使用数据库(DataBase,DB)是⼀个⻓期存储在计算机内的、有组织的、有共享的、统⼀管理的数据集合。它是⼀个按数据结构来存储和管理数据的计算机软件系统。数据库包含两层含义:保管数据的“仓库”,以及数据管理的⽅法和技术。我的优势温馨提示:不仅仅是帅,我还有好多亮点噢!MySQL的主要优势如下:速度:运⾏速度快。价格:MySQL对多数个⼈⽤来说是免费的。容易使⽤:与其他⼤型数据库的设置和管理相⽐,其复杂程度较低,易于学习。T. 可移植性:.原创 2021-05-18 11:18:25 · 230 阅读 · 1 评论