第一次接触linux是在阿里云购买的centos7云服务器,当时已经学习到部署网站那步骤,然后在centos里面可以访问到网站,使用外网ip一直访问不到,各种找资料各种猛操作后,咨询阿里云工程师,说是国外centos服务器在国内是无法访问到的!尴尬了,折腾那么久,原来是这样!
1)页面控制台里是支持直接登录的
一般云服务商都有这一登录方式,不管是windows还是linux服务器都可以使用这一登录方式。
当然,一般我们还可以使用其他工具进行登录
默认是没有密码的,可以进行密码重置
登录成功后,你就可以开始搭建网站了
某天前端在调接口的时候,发现登录页面得验证码接口居然没有响应数据,显示的是500响应码。于是我一路排查,首先排查验证码接口所属的微服务是否正常,通过lsof -i:服务端口进行排查,发现该微服务进程存在,同时我在服务注册中心的服务管理列表也发现该服务正常注册。结合之前遇到的问题,验证码接口报500,没有及时响应数据,与Redis有关,验证码的数据会存放Redis,我再次排查Redis,发现Redis也正常,最后我看错误日志。我排查该问题的步骤:
这时我冷静下来,看日志信息,再次发现了这句话”设备上没有空间”。于是通过关键字搜索,找到了问题所在,如图所示:
结合Windows,形象地概括,就是我的系统盘C盘满了。
我仔细想了下,发现我将很多软件和服务以及日志全部放在/usr下的某个目录里,于是我一路排查后,发现有这么几类文件占用很大的空间:
问题的根源在于不合理的占用系统盘空间,将这些不合理的从系统盘空间转移出去即可,转移到磁盘空间充足的,也就是/dev/mapper/centos-home下。
最终解决了这个问题,释放了50%的空间,其中还有15%暂时不能动。
之所以占用这么多,前面我提到过是因为离线地图,离线地图包括街道地图和卫星地图,两个加在一起足足二十多G,为此我将其迁移到/home下的某个目录,然后修改Nginx的核心配置nginx.conf文件进行映射,这样一来系统盘的空间再次得到释放,同时用户盘的空间得到了充分利用。
Project主要放源代码和打包成功产生的jar,我还是用老办法将其迁移(迁移到/home下的某个目录)。
问题的根本原因在于不规范性。正常来说,不应该将用户磁盘空间做的事情放在系统磁盘空间(与Windows同理)。从这一刻起,我也深深意识到规范性的重要,不规范性导致的bug何止千千万万,仔细想来我的开发经历,造成bug的绝大多数原因均是因为不规范,因为不规范,暴露出各种奇奇怪怪的bug。
另外从我排查问题来看也是很有问题的,问题在于没有用正确的态度对待日志,其实一开始仔细排查日志,定位到这个关键信息,然后将这样的关键信息复制搜索引擎来寻找解决办法,这样一来就不必浪费了近一个多小时来捣鼓这样的事情。
首先这样的问题属于运维范畴,而我作为公司的兼职运维,面对这样的问题,首先从规范入手,制定可行的规范,从根本上杜绝这样的问题再现,对于这样的问题,我总结的原则如下:
自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(Linux系统内置的服务)。
运行模式也可以称为运行级别。
在目录中网卡的配置文件命名格式为ifcfg-网卡名称,为了操作方便可以将文件放到家目录中(用ln 命令进行操作)
3、重启单个网卡(在实际工作中不要随意禁止网卡)
比如停止或者重启ent0网卡即用上面的命令即可操作。
1、可视化文件传输工具:filezilla【使用filezilla上传下载文件】
(1)临时设置主机名,需要切换用户使它生效
(2)永久设置主机名,需要重启才可以生效
2、不设置FQDN(全限定域名)的后果是什么?
最重要的是很多开源的服务器软件会报错和出问题。
相当于windows下“安全卫士”、“电脑管家”之类的安全辅助工具提供“开机启动项”的一个管理服务。(在linux下并不是所有软件安装好是默认启动的,有的需要进行添加)
(3)添加开机启动服务(并不是安装的所有软件是有服务的)【chkconfig --add 服务名,必须保证服务正常运行,才可以添加】
(4)设置服务在某个级别下开机启动/不启动【重点】
1、作用:主要是对计算机的时间同步管理操作。
比如在虚拟机中刚安装的linux时间是不准确的。
2、同步服务器时间方式有两种:一次性同步(手动同步)、通过服务自动同步。
(1)一次性同步时间(简单)
ntpdate 时间服务器的ip地址或者是域名【时间ip地址可以查看】
(2)设置时间同步服务(直接启动即可)
1、防火墙:主要是防范网络攻击(防火墙选择性的让请求通过,从而保证电脑网络安全性)。有软件防火墙和硬件防火墙之分。
1、作用:操作系统不可能24小时都有人在操作,有时候想在指定的时间点去执行任务(列如:每天夜里两点去重新启动Apache),此时不可能真的有人每天夜里2点去执行命令,此时就可以交付给计划任务程序去执行操作。
(1)编译计划任务(重点)
计划任务的规则话音未落格式,以行为单位i、,一行则为一个计划:分 时 日 月 周 需要执行的命令
周:0——7 0和7表示星期天
*:表示取值范围中的每一个数字
-:表示做连续区间表达式的,想要表示1-7,可以写成:1-7
/:表示每多少个;例:想每十分钟一次,则可以在分的位置写:*/10
,:表示取多个值(不连续的取值),比如想在1点,2点,6点执行,则可以在时的位置写:1,2,6
3、crontab权限问题:本身是任何用户都可以创建自己的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务(黑名单)。
还有一个文件是允许配置的(白名单):
注意:白名单级别高于黑名单,两者都没有默认允许的。