Centos目录下文件夹的疑惑?

       第一次接触linux是在阿里云购买的centos7云服务器,当时已经学习到部署网站那步骤,然后在centos里面可以访问到网站,使用外网ip一直访问不到,各种找资料各种猛操作后,咨询阿里云工程师,说是国外centos服务器在国内是无法访问到的!尴尬了,折腾那么久,原来是这样!

1)页面控制台里是支持直接登录的

一般云服务商都有这一登录方式,不管是windows还是linux服务器都可以使用这一登录方式。

当然,一般我们还可以使用其他工具进行登录

默认是没有密码的,可以进行密码重置

登录成功后,你就可以开始搭建网站了

某天前端在调接口的时候,发现登录页面得验证码接口居然没有响应数据,显示的是500响应码。于是我一路排查,首先排查验证码接口所属的微服务是否正常,通过lsof -i:服务端口进行排查,发现该微服务进程存在,同时我在服务注册中心的服务管理列表也发现该服务正常注册。结合之前遇到的问题,验证码接口报500,没有及时响应数据,与Redis有关,验证码的数据会存放Redis,我再次排查Redis,发现Redis也正常,最后我看错误日志。我排查该问题的步骤:

    • 第一排查提供验证码的微服务是否正常;
    • 第二排查服务注册中心是否有该服务;
    • 第三排查Redis是否正常运行;
    • 最后我从错误日志中看到了设备上没有空间这样的错误信息。当时我还没有意识到,可能是Linux磁盘空间不足的原因,下意识使用程序员的万能绝招”重启”,但”重启”并没有从根本上解决这个问题,这里提到的”重启”是指重启Java应用而不是重启Linux服务器。最后发现重启也不能解决这个问题,于是我又下意识的觉得是内存的原因,于是便直接关闭其它无需和前端对接口的微服务,突然发现问题一下解决了。于是就没有深究了。
      而后过了一个小时左右,前端又再次反馈其它接口有问题了,不能及时响应正确的数据,全部报500,这时我开始慌了,隐隐约约觉得问题并未从根本上解决,根本不是内存的原因,这时我才想起用free -m命令查看一下内存的使用,发现还有2个多G的内存,排除了内存不足的原因,通常运行Java应用,内存不足会报如下异常:

这时我冷静下来,看日志信息,再次发现了这句话”设备上没有空间”。于是通过关键字搜索,找到了问题所在,如图所示:

结合Windows,形象地概括,就是我的系统盘C盘满了。

我仔细想了下,发现我将很多软件和服务以及日志全部放在/usr下的某个目录里,于是我一路排查后,发现有这么几类文件占用很大的空间:

  • 日志文件(Nacos日志以及各项微服务日志、MySQL日志、系统日志等足足10G以上,这时我终于明白了,为什么日志要实时备份传输以及删除了);
  • 遗留的软件包和压缩包(10G以上);
  • 静态文件(离线地图,足足占了20G以上)和其它图片文件;
  • 项目源代码以及打包成功后的jar(3个多G);

三、问题已经定位到了,那么我是如何解决这个问题的?

问题的根源在于不合理的占用系统盘空间,将这些不合理的从系统盘空间转移出去即可,转移到磁盘空间充足的,也就是/dev/mapper/centos-home下。

  • 备份日志,下载到本地(目前备份服务器还没有申请下来,同时关于哪些需要保留的,需要内部协商探讨),原有的日志进行删除(这个工作可以脚本化);
  • 遗留软件包和压缩包直接删除;
  • 静态文件迁移至/home下的某个用户目录,通过配置进行映射(确保迁移后仍不影响正常的访问);
  • 项目源代码迁移到/home下的某个用户目录;
  • 修改Maven配置文件,仓库地址指向/home下的某个用户目录。

最终解决了这个问题,释放了50%的空间,其中还有15%暂时不能动。

四、问题列表和具体解决措施



4.Nginx为何占用这么多磁盘空间?

之所以占用这么多,前面我提到过是因为离线地图,离线地图包括街道地图和卫星地图,两个加在一起足足二十多G,为此我将其迁移到/home下的某个目录,然后修改Nginx的核心配置nginx.conf文件进行映射,这样一来系统盘的空间再次得到释放,同时用户盘的空间得到了充分利用。

Project主要放源代码和打包成功产生的jar,我还是用老办法将其迁移(迁移到/home下的某个目录)。

五、问题的根本原因是什么?为什么我需要排查这么长时间才定位到这个原因呢?

问题的根本原因在于不规范性。正常来说,不应该将用户磁盘空间做的事情放在系统磁盘空间(与Windows同理)。从这一刻起,我也深深意识到规范性的重要,不规范性导致的bug何止千千万万,仔细想来我的开发经历,造成bug的绝大多数原因均是因为不规范,因为不规范,暴露出各种奇奇怪怪的bug。
另外从我排查问题来看也是很有问题的,问题在于没有用正确的态度对待日志,其实一开始仔细排查日志,定位到这个关键信息,然后将这样的关键信息复制搜索引擎来寻找解决办法,这样一来就不必浪费了近一个多小时来捣鼓这样的事情。

六、如何避免这样的问题再现?以及通过这样的问题总结出什么样的原则?

首先这样的问题属于运维范畴,而我作为公司的兼职运维,面对这样的问题,首先从规范入手,制定可行的规范,从根本上杜绝这样的问题再现,对于这样的问题,我总结的原则如下:

  • (1)不同的用户做不同的事情,保持Linux用户的功能专一性(后面会提到一个重大bug,是因为违反这样的原则导致的);
  • (2)遇到问题,分为两个方面来解决,见过和没有见过,见过表示过去我遇到过这样的问题,可以借鉴以往经验来快速解决这个问题;没有见过的问题,严格遵守的流程:复现问题->仔细查看日志->定位问题->解决问题->总结并存入知识库(如有必要进行定期复盘)。总而言之,最关键的在于定位问题(如何定位问题,可通过重复复现问题->仔细查看日志这样的步骤来定位;
  • (3)针对常见运维需求,编写脚本(如监控系统磁盘使用情况以及用户磁盘使用情况,超出阈值,自动告警和人工干预),推进脚本自动化;
  • (4)制定适合当下情况的运维规范(如安装软件安在哪个目录、大文件放在哪个目录、日志存放多久并备份后自动清除、每个用户只做自己的事情等,根据实际情况不断增加和修订,定期写入文档进行维护)。

一、是不是很疑惑什么是Linux的自有服务?

自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(Linux系统内置的服务)。

二、Linux的运行模式

运行模式也可以称为运行级别。

三、用户与用户组管理(重点)

#BOOTPROTO表示ip地址分配方式,DHCP表示动态主机分配协议

在目录中网卡的配置文件命名格式为ifcfg-网卡名称,为了操作方便可以将文件放到家目录中(用ln 命令进行操作)

3、重启单个网卡(在实际工作中不要随意禁止网卡)

  • 停止某个网卡:ifdown 网卡名
  • 开启某个网卡:ifup 网卡名

比如停止或者重启ent0网卡即用上面的命令即可操作。

五、SSH服务文件传输

1、可视化文件传输工具:filezilla【使用filezilla上传下载文件】

(1)临时设置主机名,需要切换用户使它生效

(2)永久设置主机名,需要重启才可以生效

2、不设置FQDN(全限定域名)的后果是什么?

最重要的是很多开源的服务器软件会报错和出问题。

相当于windows下“安全卫士”、“电脑管家”之类的安全辅助工具提供“开机启动项”的一个管理服务。(在linux下并不是所有软件安装好是默认启动的,有的需要进行添加)

(3)添加开机启动服务(并不是安装的所有软件是有服务的)【chkconfig --add 服务名,必须保证服务正常运行,才可以添加】

(4)设置服务在某个级别下开机启动/不启动【重点】

1、作用:主要是对计算机的时间同步管理操作

比如在虚拟机中刚安装的linux时间是不准确的。

2、同步服务器时间方式有两种:一次性同步(手动同步)、通过服务自动同步

(1)一次性同步时间(简单)

ntpdate 时间服务器的ip地址或者是域名【时间ip地址可以查看

(2)设置时间同步服务(直接启动即可)

1、防火墙:主要是防范网络攻击(防火墙选择性的让请求通过,从而保证电脑网络安全性)。有软件防火墙和硬件防火墙之分。

十、rpm软件管理【重要】

1、作用:操作系统不可能24小时都有人在操作,有时候想在指定的时间点去执行任务(列如:每天夜里两点去重新启动Apache),此时不可能真的有人每天夜里2点去执行命令,此时就可以交付给计划任务程序去执行操作。

  • -l:列出指定用户的计划任务列表
  • -e:编辑指定用户的计划任务列表
  • -u:指定的用户名,不指定即当前用户
  • -r:删除指定用户的计划任务列表

(1)编译计划任务(重点)

计划任务的规则话音未落格式,以行为单位i、,一行则为一个计划:分 时 日 月 周 需要执行的命令

周:0——7 0和7表示星期天

*:表示取值范围中的每一个数字

-:表示做连续区间表达式的,想要表示1-7,可以写成:1-7

/:表示每多少个;例:想每十分钟一次,则可以在分的位置写:*/10

,:表示取多个值(不连续的取值),比如想在1点,2点,6点执行,则可以在时的位置写:1,2,6

3、crontab权限问题:本身是任何用户都可以创建自己的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务(黑名单)。

还有一个文件是允许配置的(白名单):

注意:白名单级别高于黑名单,两者都没有默认允许的。

我要回帖

更多关于 批量提取子目录下的文件夹 的文章

 

随机推荐