Linux——服务器管理建议

1、学习Linux的注意事项

1.1、Linux严格区分大小写

Linux是严格区分大小写的,这一点和Windows不一样,所以操作时要注意区分大小写的不同,包括文件名和目录名、命令、命令选项、配置文件设置选项等。

1.2、Linux中所有内容以文件形式保存

Linux中所有内容都是以文件的形式保存和管理的,硬件设备也是文件,这和Windows完全不同,Windows是通过设备管理器来管理硬件的。Linux的设备文件保存在/dev/目录中,硬盘文件是/dev/sd[a-p],光盘文件是/dev/hdc等。

1.3、Linux不靠扩展名区分文件类型

Windows是依赖扩展名区分文件类型的,比如,“.txt”是文本文件、“.exe”是执行文件、“.ini”是配置文件、“.mp4”是小电影等。但Linux不是靠扩展名区分文件类型的,而是靠权限位标识来确定文件类型的,而且文件类型的种类也不像Windows下那么多,常见的文件类型只有普通文件、目录、链接文件、块设备文件、字符设备文件等几种。Linux的可执行文件不过就是普通文件被赋予了可执行权限而已。

但Linux中的一些特殊文件还是要求写“扩展名”的,但是大家小心,并不是Linux一定要靠扩展名来识别文件类型,写这些扩展名是为了帮助管理员来区分不同的文件类型。这样的文件扩展名主要有以下几种:

  • 压缩包:Linux下常见的压缩文件名有*.gz、.bz2、.zip、.tar.gz、.tar.bz2、*.tgz等。为什么压缩包一定要写扩展名呢?其实很好理解,如果不写清楚扩展名,那么管理员不容易判断压缩包的格式,虽然有命令可以帮助判断,但是直观一点更加方便。另外,就算没写扩展名,在Linux中一样可以解压缩,不影响使用。
  • 二进制软件包:CentOS中所使用的二进制安装包是RPM包,所有的RPM包都用“.rpm”扩展名结尾,目的同样是让管理员一目了然。
  • 程序文件:Shell脚本一般用“.sh”扩展名结尾,其他还有用“.c”扩展名结尾的C语言文件等。
  • 网页文件:网页文件一般使用“.html”“.php”等结尾,不过这是网页服务器的要求,而不是Linux的要求。

在此不一一列举了,还有如日常使用较多的图片文件、视频文件、Office文件等,也是如此。

1.4、Linux中所有的存储设备都必须在挂载之后才能使用

Linux中所有的存储设备都有自己的设备文件名,这些设备文件必须在挂载之后才能使用,包括硬盘、U盘和光盘。挂载其实就是给这些存储设备分配盘符,只不过Windows中的盘符用英文字母表示,而Linux中的盘符则是一个已经建立的空目录。我们把这些空目录叫作挂载点(可以理解为Windows的盘符),把设备文件(如/dev/sdb)和挂载点(已经建立的空目录)连接的过程叫作挂载。这个过程是通过挂载命令实现的。

1.5、Windows下的程序不能直接在Linux中使用

Linux和Windows是不同的操作系统,可以安装和使用的软件也是不同的,所以能够在Windows中安装的软件是不能在Linux中安装的。有好处吗?当然有,那就是能够感染Windows的病毒和木马都对Linux无效。有坏处吗?也有,那就是所有的软件要想在Linux中安装,必须单独开发针对Linux的版本,或者依赖模拟器软件运行。

很多软件也会同时推出针对Windows和Linux的版本,如大家熟悉的即时通信软件QQ。

2、Linux服务器的管理和维护建议

2.1、了解Linux目录结构

Linux是一个非常严谨的操作系统,每个目录存放何种文件都有明确的要求。作为管理员,首先要了解这些目录的作用,然后严格按照目录要求进行操作。

Linux中的目录有很多,在此列出根目录下主要的一级目录和几个常见的二级目录的作用,如下表所示:

目录名目录的作用
/bin/存放系统命令的目录,普通用户和root都可以执行。不过放在/bin下的命令在单用户模式下也可以执行
/sbin/保存与系统环境设置相关的命令,只有root可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看
/usr/bin/存放系统命令的目录,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin存放根文件系统不必要的系统管理命令,如多数服务程序,只有root可以使用。大家可能已经注意到Linux系统的命名规律,所有“sbin”目录中保存的命令只有root可以使用,“bin”目录中保存的命令所有用户都可以使用
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的宿主目录。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的宿主目录,所有普通用户的宿主目录是在/home/下建立一个和用户名相同的目录。如用户liming的宿主目录就是/home/liming
/lib/系统调用的函数库保存位置
/lost+found/当系统意外崩溃或意外关机时,产生的一些碎片会存放在这里。在系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found就是根分区的备份恢复目录,/boot/lost+found就是/boot分区备份恢复目录
/media挂载目录。系统建议是用来挂载媒体设备的,如软盘和光盘
/mnt/挂载目录。早期Linux中只有这一个挂载目录,并没有细分。现在系统建议这个目录来挂载额外的设备,如U盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载NFS服务的共享目录。虽然系统准备了三个默认挂载目录/media/、/mnt/、/misc/,但是到底在那个目录中挂载什么设备可以由管理员自己决定。

在这里插入图片描述
我们已经了解了Linux根目录下主要的一级目录和几个常见的二级目录的作用,建议大家遵守目录规范来管理和使用Linux服务器。比如我要做一些实验和练习,需要创建一些临时文件,应该保存在哪里呢?答案是用户的宿主目录或/tmp/临时目录。但是要小心有些目录中不能直接修改和保存数据,比如/proc/和/sys/目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;/boot/目录也不能保存额外数据,因为/boot/目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。

总之,Linux要在合理的目录下进行操作和修改,这是Linux中所需遵守的第一个操作规范。

2.2、远程服务器关机及重启时的注意事项

为什么远程服务器不能关机呢?很简单,远程服务器没有放置在本地,关机后,谁可以帮你按开机电源键启动服务器?虽然计算机技术日新月异,但是像插入电源和开机这样的工作还是需要手工进行的。如果服务器在远程,一旦关机,就只能求助托管机房的管理人员帮你开机了。

远程服务器重启时需要注意两点:

2.2.1、远程服务器在重启前,要中止正在执行的服务

计算机的硬盘最怕在高速存储时断电或重启,非常容易造成硬盘损坏。所以,在重启前先中止你的服务,甚至可以考虑暂时断开对外提供服务的网络。可能你会觉得服务器有这么娇贵吗?我的笔记本电脑经常强行关机,也没有发现硬盘损坏啊?这是因为你的个人计算机没有很多人访问,强制断电时硬盘并没有进行数据交换。小心驶得万年船!

2.2.2、重启命令的选用

Linux可以识别的重启命令有很多条,但是建议大家使用“shutdown -r now”命令重启。这条命令在重启时会正常保存和中止服务器中正在运行的程序,是安全重启命令。而且最好在重启前执行几次“sync”命令,这条命令是数据同步命令,可以让暂时保存在内存中的数据同步到硬盘上。

总之,重启和关机也是服务器需要注意的操作规范,因为不正确的重启和关机造成服务器故障的不在少数。

2.3、不要在服务器访问高峰运行高负载命令

这一点大家很好理解,在服务器访问高峰,如果使用一些对服务器压力较大的命令,则有可能会造成服务器响应缓慢甚至死机。

哪些命令是高负载命令呢?其实,如果大家使用过Windows操作系统,则也会留意到一些操作会给计算机带来较大的运算压力,道理都是一样的,如复制大量的数据、压缩或者解压缩大文件、大范围的硬盘搜索等。

什么时间算作访问高峰期呢?我们一般认为17:00—24:00算作访问高峰期。当然,每台服务器具体提供的服务不同,访问高峰期有时也会有所出入。比如,服务器主要是供美国人民访问的,那就要考虑时差的问题;或者服务器提供的服务很特殊,访问高峰期可能也不同。

一般我们建议在凌晨4:00—5:00执行这些命令。那是不是说我们需要在凌晨上班?当然不是,这谁受得了啊?我们可以使用系统的计划任务,让操作自动在指定的时间段执行。

2.4、远程配置防火墙时不要把自己踢出服务器

先要说明一下防火墙是什么、有什么具体的作用。防火墙是指将内网和外网分开,并依照数据包的IP地址、端口号和数据包中的数据来判断是否允许数据包通过的网络设备。防火墙可以是硬件防火墙设备,也可以是服务器上安装的防火墙软件。

简单来讲,防火墙就是根据数据包自身的参数来判断是否允许数据包通过的网络设备。我们的服务器要想在公网中安全地使用,就需要使用防火墙过滤有害的数据包。但是在配置防火墙时,如果管理员对防火墙不是很熟悉,则有可能把自己的正常访问数据包和有害数据包全部过滤掉,导致自己也无法正常登录服务器,如防火墙关闭了远程连接的SSH服务的端口。

防火墙配置完全是靠手工命令完成的,配置规则和配置命令相对也比较复杂,万一设置的时候心不在焉,悲剧就发生了。

如何避免这种尴尬的情况发生呢?最好的方法当然是在服务器本地配置防火墙,这样就算不小心把自己的远程登录给过滤了,还可以通过本机登录来进行恢复。如果服务器已经在远程登录了,要配置防火墙,那么最好在本地测试完善后再进行上传,这样会把发生故障的概率降到最低。虽然在本地测试好了,但是传到远程服务器上时仍有可能发生问题。于是我想到一个笨办法:如果需要远程配置防火墙,那么先写一个系统定时任务,让它每5分钟清空一下防火墙规则,就算写错了也还有反悔的机会,等测试没有问题了再删除这个系统定时任务。总之,大家可以使用各种方法,只要留意不要在配置防火墙时如何避免这种尴尬的情况发生呢?最好的方法当然是在服务器本地配置防火墙,这样就算不小心把自己的远程登录给过滤了,还可以通过本机登录来进行恢复。如果服务器已经在远程登录了,要配置防火墙,那么最好在本地测试完善后再进行上传,这样会把发生故障的概率降到最低。虽然在本地测试好了,但是传到远程服务器上时仍有可能发生问题。于是超哥想到一个笨办法:如果需要远程配置防火墙,那么先写一个系统定时任务,让它每5分钟清空一下防火墙规则,就算写错了也还有反悔的机会,等测试没有问题了再删除这个系统定时任务。总之,大家可以使用各种方法,只要留意不要在配置防火墙时如何避免这种尴尬的情况发生呢?最好的方法当然是在服务器本地配置防火墙,这样就算不小心把自己的远程登录给过滤了,还可以通过本机登录来进行恢复。如果服务器已经在远程登录了,要配置防火墙,那么最好在本地测试完善后再进行上传,这样会把发生故障的概率降到最低。虽然在本地测试好了,但是传到远程服务器上时仍有可能发生问题。于是超哥想到一个笨办法:如果需要远程配置防火墙,那么先写一个系统定时任务,让它每5分钟清空一下防火墙规则,就算写错了也还有反悔的机会,等测试没有问题了再删除这个系统定时任务。总之,大家可以使用各种方法,只要留意不要在配置防火墙时把自己踢出服务器就好了。

2.5、指定合理的密码规范并定期更新

日常使用的密码,我们最简单的原则是不要写下来。但是我们的服务器可能有很多,不可能所有的服务器都使用同样的密码,最好每台服务器的密码都不尽相同,但是在实际的工作中也不现实。一般的做法是给服务器分类,每类服务器的密码一致,这样可以有效地减少密码的数量。但是在有大量服务器的情况下,密码的数量还是很可怕的。

那么,该如何保存这些密码呢?只能通过文档来保存了,当然这些文档不能是明文保存的,而是要加密的。总之,合理的密码还要有合适的保存方式,这些在构建服务器架构的时候都是必须考虑的内容。

2.6、合理分配权限

服务器管理有一个最简单的原则:给予用户最小的权限。

初次接触服务器的人会很迷惑,我们所有同事都使用管理员root账户登录多好,省得还要学习如何添加用户、设置权限。这样操作,如果是对个人计算机来讲问题不大,如日常使用的Windows桌面系统,但如果是服务器,就会出现重大的安全隐患。在实际的工作中,因为给内部员工分配的权限不合理而导致数据泄密甚至触犯法律的情况屡见不鲜。所以,在服务器上,合理的权限规划必不可少!而且就算只有你是这台服务器的root,我们也建议在管理服务器时,能使用普通用户完成的操作都使用普通用户,确实完成不了的操作要么进行授权,要么再切换到root执行。因为Linux上的root用户权限实在过大,一旦误操作,后果是严重的,下场是惨淡的。

在实际的工作中,越是重要的服务器,对权限的管理越严格。原则上,在能够完成工作的前提下,分配的权限越小越安全。当然,权限越小,你需要做的规划和权限分配任务就越多,但是服务器也越可靠。

2.7、定期备份重要数据和日志

没有备份的服务器,就是在作死!没有备份的服务器,就是在作死!没有备份的服务器,就是在作死!重要的事说三遍!

有的年轻人,手机坏了或丟了,通讯录就没了;自己电脑的硬盘坏了,上面的资料就再也找不到了,一点备份的意识也没有。个人的损失往往可以承受,但是公司服务器的损失可能会非常惊人。

有的人知道备份重要,但是因为懒惰或忘记,结果后悔莫及。很多事情都是知易行难的,备份来不得半点侥幸心理。如果公司的主要盈利项目是在互联网上的业务,那么数据的丢失就有可能造成公司的直接利益损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/348087.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt6入门教程 11:父子对象关系

在上一篇中的纯手写部分,不管是创建菜单、工具栏还是状态栏,我们new完之后都未显式的调用delete进行销毁,这样难道不会有内存泄漏么? QMenuBar *menuBar new QMenuBar(this); QToolBar *toolBar new QToolBar(this); QStatusBa…

OpenHarmony从TypeScript到ArkTS的适配规则

本文通过提供简洁的约束,将标准的TypeScript代码重构为ArkTS代码。 尽管ArkTS是基于TypeScript设计的,但出于性能考虑,一些TypeScript的特性被限制了。因此,在ArkTS中,所有的TypeScript特性被分成三类。 完全支持的特…

Linux sudo与/etc/sudoers

sudo介绍 sudo命令可以让普通用户在执行需要超级用户权限的命令时,临时提升为超级用户。例如,普通用户可以使用sudo执行系统管理任务,如安装软件、修改系统配置等。访问控制:sudo命令通过sudoers文件中的配置,可以对用…

什么是Spring

文章目录 什么是Spring什么是 IoC Spring的IoCDI的概念 什么是Spring Spring 是一个包含了众多工具方法的 IoC容器。 什么是 IoC Inversion of Control — 控制反转 在传统的开发中,假设A类依赖于B类,那么创建A对象实例就需要先new一个B类对象&#x…

【操作系统】实验八 proc文件系统

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

网络原理-初识(2)

协议分层 对于网络协议来说,往往分成几个层次进行定义. 网络通信的过程中,需要涉及到的细节,其实非常多.如果要有一个协议来完成网络通信,就需要约定好方方面面的内容,导致非常复杂. 而如果拆分的话,就十分复杂,庞大,因此需要分层. 什么是协议分层 即只有相邻的层次可以沟通,…

并查集与图

并查集与图 一、并查集概念实现原理代码实现查找根节点合并两颗树判断是否是同一棵树树的数量 二、图的基本概念定义分类完全图顶点的度连通图 三、图的存储结构分类邻接表邻接表的结构代码实现 邻接矩阵代码实现 四、图的遍历方式广度优先深度优先 五、最小生成树概念Kruskal算…

图中点的层次——树与图的广度优先遍历

问题描述 代码实现 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 1e5 10;int n, m; int h[N], ne[N * 2], e[N * 2], idx; int d[N]; // 从节点1到当前节点的距离 int q[N * 2]; // 数组模拟队列void ad…

BabylonJS 6.0文档 Deep Dive 摄像机(五):多视角(二)

1. 摄像机激活 一般来说&#xff0c;一个场景&#xff08;Scece&#xff09;只有一个激活相机&#xff0c;可以使用的activeCamera属性来指定它。但您也可以使用以下代码定义多个active相机来达成多视角的效果&#xff1a; scene.activeCameras.push(camera); scene.activeCa…

TensorRT英伟达官方示例解析(三)

系列文章目录 TensorRT英伟达官方示例解析&#xff08;一&#xff09; TensorRT英伟达官方示例解析&#xff08;二&#xff09; TensorRT英伟达官方示例解析&#xff08;三&#xff09; 文章目录 系列文章目录前言一、04-BuildEngineByONNXParser----pyTorch-ONNX-TensorRT生成…

探索设计模式的魅力:深入理解面向对象设计的深层原则与思维

如何同时提高一个软件系统的可维护性 和 可复用性是面向对象对象要解决的核心问题。 通过学习和应用设计模式&#xff0c;可以更加深入地理解面向对象的设计理念&#xff0c;从而帮助设计师改善自己的系统设计。但是&#xff0c;设计模式并不能够提供具有普遍性的设计指导原则。…

SAP ERP 物料主数据同步外围系统

物料主数据集成在很多项目是比较常见的需求&#xff0c;在做系统实现之前我们需要明确涉及的业务流程和需求范围&#xff0c;并且对每个系统的业务边界进行明确&#xff1a; 如果是从SAP ERP 向其他系统推送数据&#xff0c;并且实时性要求高的情况下&#xff0c;我一般倾向于在…

开关电源空载电流测试方法大全

空载电流测试原理 开关电源空载电流是指电源在没有负载的情况下所消耗的电流。空载电流的大小会影响到电源的工作效率和稳定性&#xff0c;因此测量开关电源的空载电流是非常必要的。 开关电源空载电流测试是在不接任何负载的条件下&#xff0c;用万用表、电流表或者其它专用测…

[MRCTF2020]Ez_bypass1

代码审计&#xff0c;要求gg和id的MD5值相等而gg和id的值不等或类型不等 相同MD5值的不同字符串_md5相同的不同字符串-CSDN博客 不过这道题好像只能用数组 下一步是passwd不能是纯数字&#xff0c;但是下一个判断又要passwd等于1234567 这里通过passwd1234567a实现绕过 原…

【操作系统】实验六 分析源代码

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

【grafana】使用教程

【grafana】使用教程 一、简介二、下载及安装及配置三、基本概念3.1 数据源&#xff08;Data Source&#xff09;3.2 仪表盘&#xff08;Dashboard&#xff09;3.3 Panel&#xff08;面板&#xff09;3.4 ROW&#xff08;行&#xff09;3.5 共享及自定义 四、常用可视化示例4.1…

【mongoDB】图形化界面工具(mongoDB Compass)

官网地址&#xff1a;https://www.mongodb.com/try/download/compass 下载完之后直接安装 桌面上会产生一个快捷方式 双击就会进入mongoDB图形化界面工具

IP组播地址

目录 1.硬件组播 2.因特网范围内的组播 IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址 组播地址范围为224.0.0.0~239.255.255.255(D类地址)&#xff0c;一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址…

Vue+OpenLayers7入门到实战:鹰眼控件简单介绍,并使用OpenLayers7在地图上添加鹰眼控件

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章介绍OpenLayers7添加鹰眼控件到地图上的功能。 在OpenLayers中,想要实现鹰眼控件,必须要新建一个数据源,且不能跟其他图层混用,相当于鹰眼是一个单独图层。 补充知识,鹰眼控件是什么? 鹰眼控件是一种在地…

AI教我学编程之SQL Server常见指令以及数据类型

前言 今天在工作的过程中&#xff0c;遇到了许多常见的属性&#xff0c;在此做下记录&#xff0c;方便以后查询 目录 SQL Server 常见指令 对话AI 光有概念怎么行 阶段总结 SQL Server关键字 边学边练 数据类型 看图说话 对话AI 数据类型我知道 括号里的神秘数字 疑问 边练…
最新文章