高性能服务器配置经验指南1——刚配置好服务器应该做哪些事

文章目录

    • 安装ubuntu
    • 安装必要软件
    • 设置用户
    • 远程连接
    • 安全问题
    • ClamAV安装教程
    • 步骤 1:更新系统软件源
    • 步骤 2:升级系统(可选但推荐)
    • 步骤 3:安装 ClamAV
    • 步骤 4:更新病毒库
    • 步骤 5:验证安装
    • ClamAV 常用命令
      • 1. 基础扫描命令
      • 2. 图形界面(ClamTk)
    • 步骤 6:配置自动更新与扫描(可选)
      • 1. 定期更新病毒库
      • 2. 定期扫描系统
  • 常见问题
    • 1、更新病毒库报错:ERROR: Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!
      • **1. 检查并停止冲突的进程**
        • **步骤 1.1:停止 `freshclam` 服务**
        • **步骤 1.2:终止所有 `freshclam` 进程**
      • **2. 检查日志文件权限**
        • **步骤 2.1:检查日志文件权限**
        • **步骤 2.2:修复权限(如果需要)**
        • **步骤 2.3:确保日志目录存在且权限正确**
      • **3. 删除现有日志文件并重新运行**
        • **步骤 3.1:删除日志文件**
        • **步骤 3.2:手动运行 `freshclam`**

最近在学校内配置了一台服务器,经过多番尝试和重装,踩了不少坑,也积累了不少经验,现记录在此作为参考,也希望能帮助到同样有相同需求的伙伴。
本次配置的服务器是华硕主板,配有2张4090显卡、189GB内存和2T固态外存,安装的系统为ubuntu20.04,在此我想对刚接触服务器配置的小伙伴说: 不要安Windows!不要安Windows!!不要安Windows!!! Windows操作起来固然更加直观方便,但是后续带来的麻烦是无穷无尽的。
好了,进入正题。

安装ubuntu

我安装ubuntu系统的方式全部来自于B站的这位up主的视频:https://www.bilibili.com/video/BV1Cc41127B9?spm_id_from=333.788.videopod.episodes&vd_source=59276a77a9319f21b7dec25b3f709fdb&p=13
大家可以直接跟着他的操作一步步做,基本不会遇到什么问题。
但是作为服务器,我的建议是:双系统的安装是不必要的。如果你和我一样,在这方面有一点强迫症,想要把磁盘中的Windows也删除的话,只要在安装过程中到下图这一步时,选择“清除整个磁盘并安装ubuntu”即可(在此之前,记得备份必要数据)。
在这里插入图片描述

安装必要软件

ubuntu安装完成后,想要作为一台深度学习服务器使用,需要安装一些必要软件包,在上一步中,大家应该已经完成了软件源的更新,在此不作赘述。
ubuntu安装软件一般是在终端进行安装,打开的快捷键是:Ctrl+Alt+T,打开后就像下图一样:
在这里插入图片描述
一般在安装任何新软件包之前,建议先更新软件包列表:

sudo apt update

安装编译程序所需的软件包:

sudo apt install build-essential

然后可以安一些文本编辑器,比较常用的就是vim和nano:

sudo apt install vim
sudo apt install nano

一般情况下,代码的版本管理和团队开发都要依托于云平台,如Github和Gitee等,这就需要安装版本控制工具git:

sudo apt install git

服务器的使用一般情况下是远程使用,也就是通过局域网内的另一台电脑远程连接,所用协议为SSH,安装命令为:

sudo apt install openssh-server

当然前提是要配置网络的:

sudo apt install net-tools

安装好ssh后,需要启动SSH服务,并查看一下服务运行状态:

sudo service ssh start
sudo service ssh status

如果显示下面的内容,说明SSH已经启动,应该已经可以进行远程连接了:
在这里插入图片描述
接下来可以安装一些编译器、编译工具等:

sudo apt install gcc
sudo apt install g++
sudo apt install make
sudo apt install cmake

可以再安装一个用于查看COP、内存等资源使用情况的软件包htop:

sudo apt install htop

运行方式直接在终端输入htop,回车即可,运行界面如下:
在这里插入图片描述
可以看到CPU和内存的使用情况,也可以看到各个终端的终端号和资源使用情况。

设置用户

一般在科研中,一台服务器需要多个人一起使用,为了避免文件系统的冲突,建议给服务器设定多个用户,大家分别在自己的用户下操作,更加方便。
创建新用户的命令为:

sudo adduser newusername

此处newusername为用户名,需要按照自己的要求进行修改,执行上述命令后,系统会提示你为这个用户设定密码,填写用户信息,不想填按回车就行,提示信息类似于:

[sudo] password for 当前用户:
正在添加用户 "新用户名"
正在添加新组 "新用户名" (1001)
正在添加新用户 "新用户名" (1001) 到组 "新用户名"
创建主目录 "/home/新用户名"
正在从 "/etc/skel" 复制文件
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码

在这里,强烈建议把密码设的复杂一点,不然容易被人黑进来挖矿,计算资源被占用是小事,造成数据泄露或者文件系统损坏就很麻烦。
根据需要,也可以为用户添加或删除sudo权限:

# 为用户username添加sudo权限
sudo usermod -a -G sudo username# 去除用户username的sudo权限
sudo usermod -G usergroup username

远程连接

设置好用户后,用户们就可以尝试一下能不能远程连接服务器了,以Windows为例,首先按win+R打开运行界面:
在这里插入图片描述
在框中输入cmd,回车后打开终端:
在这里插入图片描述

输入以下内容:

# xx.xxx.xxx.xxx是服务器的ip地址
ping xx.xxx.xxx.xxx

如果出现下图中的信息,证明自己的电脑和服务器都正常连接在局域网内。
在这里插入图片描述
那么xx.xxx.xxx.xxx怎么查看呢,打开服务器的终端,输入:

ifconfig

输入如下,一般情况下ip地址就是下图红框内的数字:
在这里插入图片描述
然后,测试下SSH能不能用,依然是在Windows的终端里,输入:

ssh username@xx.xxx.xxx.xxx

第一次连接时,可能会有如下警告信息:

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

确认下ip地址和用户名信息,确认无误后输入yes,输入对应用户的密码后,一般出现类似以下提示信息,说明SSH连接成功了,接下来就可以利用服务器的算力搞科研了:
在这里插入图片描述
当然,也有可能连接失败,此时要考虑是不是防火墙把ssh的端口拦截了,那么需要在服务器上输入命令将ssh的端口权限打开,命令为:

sudo ufw allow 22

其中22是ssh服务的默认端口。

安全问题

截止到本文落成,服务器已经被不明ip黑了两次了,结合关税战形式,我。。。(我超牢美怎么这么坏啊.jpg)。
开个玩笑,不管是什么原因,我们在配置服务器时都要有安全意识,因为数据无价,所以有以下几点要注意:
(1)服务器中所有用户的密码要尽可能复杂,包括符号、大小写字母、随机数字等。
(2)SSH的端口号尽量不要用默认的22,可以改成其他的,方法是修改SSH的配置文件:

sudo vi /etc/ssh/sshd_config

打开后,在下图中红框内修改:
在这里插入图片描述
修改端口号可以自拟,不要超过65535就行。
接着重启SSH就可以了:

systemctl restart sshd.service

下一次登陆的时候,需要在命令后加上新的端口号(假设为xxxx):

ssh username@xx.xxx.xxx.xxx -p xxxx

(3)可以考虑安装杀毒软件,如ClamAV。

ClamAV安装教程

本文使用 apt 在 Ubuntu/Debian 系统上安装 ClamAV。

步骤 1:更新系统软件源

安装前先更新系统软件包列表,确保依赖项可用:

sudo apt update

步骤 2:升级系统(可选但推荐)

建议先升级系统已安装的软件包,避免依赖冲突:

sudo apt upgrade -y

步骤 3:安装 ClamAV

使用 apt 安装 ClamAV 及其相关组件:

sudo apt install clamav clamav-daemon clamtk -y
  • clamav:核心病毒扫描工具。
  • clamav-daemon:后台守护进程(用于实时监控或服务模式)。
  • clamtk:图形化界面(可选,适合不熟悉命令行的用户)。

步骤 4:更新病毒库

安装完成后,必须更新病毒数据库才能生效:

sudo freshclam

freshclam 会从 ClamAV 官方服务器下载最新的病毒定义(.cvd 文件)。
如果遇到超时或连接问题,可能是网络或软件源问题,可参考下方常见问题。

步骤 5:验证安装

确认 ClamAV 安装成功:

clamscan --version

预期输出示例:

ClamAV 0.103.2/25705/Sat Apr 19 03:00:00 2025

ClamAV 常用命令

1. 基础扫描命令

  • 全盘扫描(谨慎使用,耗时较长)
sudo clamscan -r /
  • 指定目录扫描
clamscan -r /path/to/directory
  • 仅显示感染文件:
clamscan -i -r /path/to/directory
  • 删除检测到的恶意文件:
sudo clamscan --remove -r /path/to/directory

2. 图形界面(ClamTk)

启动图形化界面:

clamtk

步骤 6:配置自动更新与扫描(可选)

1. 定期更新病毒库

编辑 cron 任务,每天自动更新病毒库:

sudo crontab -e

添加以下行:

0 2 * * * /usr/bin/freshclam

2. 定期扫描系统

设置每天凌晨 1 点扫描主目录并记录日志:

0 1 * * * /usr/bin/clamscan -r /home >> /var/log/clamav/scan.log

常见问题

1、更新病毒库报错:ERROR: Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!

您遇到的错误 Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable 是由于 日志文件被其他进程占用或锁定 导致的。以下是详细的解决步骤:


1. 检查并停止冲突的进程

ClamAV 的 freshclam 服务和手动运行的 freshclam 命令可能会同时尝试访问日志文件,导致冲突。请按以下步骤操作:

步骤 1.1:停止 freshclam 服务
sudo systemctl stop clamav-freshclam
步骤 1.2:终止所有 freshclam 进程
sudo pkill -f freshclam

2. 检查日志文件权限

确保日志文件和目录的权限正确,允许 clamav 用户写入:

步骤 2.1:检查日志文件权限
ls -l /var/log/clamav/freshclam.log

预期输出应类似:

-rw-r----- 1 clamav clamav ... /var/log/clamav/freshclam.log
步骤 2.2:修复权限(如果需要)
sudo chown clamav:clamav /var/log/clamav/freshclam.log
sudo chmod 640 /var/log/clamav/freshclam.log
步骤 2.3:确保日志目录存在且权限正确
sudo mkdir -p /var/log/clamav
sudo chown clamav:clamav /var/log/clamav
sudo chmod 750 /var/log/clamav

3. 删除现有日志文件并重新运行

如果日志文件损坏或被锁定,可以删除后重新生成:

步骤 3.1:删除日志文件
sudo rm -f /var/log/clamav/freshclam.log
步骤 3.2:手动运行 freshclam
sudo freshclam

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直流绝缘监测解决方案:保障工业与新能源系统的安全运行

一、引言 随着工业自动化和新能源技术的快速发展,直流供电系统在光伏发电、储能电站、电动汽车充电桩等领域的应用日益广泛。然而,直流系统的正负极不接地(IT系统)特性,使得绝缘故障可能导致漏电、短路甚至设备损毁等…

VSCode 用于JAVA开发的环境配置,JDK为1.8版本时的配置

插件安装 JAVA开发在VSCode中,需要安装JAVA的必要开发。当前安装只需要安装 “Language Support for Java(TM) by Red Hat”插件即可 安装此插件后,会自动安装包含如下插件,不再需要单独安装 Project Manager for Java Test Runner for J…

C++入门语法

C入门 首先第一点,C中可以混用C语言中的语法。但是C语言是不兼容C的。C主要是为了改进C语言而创建的一门语言,就是有人用C语言用不爽了,改出来个C。 命名空间 c语言中会有如下这样的问题: 那么C为了解决这个问题就整出了一个命名…

输入框仅支持英文、特殊符号、全角自动转半角 vue3

需求&#xff1a;封装一个输入框组件 1.只能输入英文。 2.输入的小写英文自动转大写。 3.输入的全角特殊符号自动转半角特殊字符 效果图 代码 <script setup> import { defineEmits, defineModel, defineProps } from "vue"; import { debounce } from "…

Uniapp:创建项目

目录 一、前提准备二、创建项目三、项目结构四、运行测试 一、前提准备 首先要创建uniapp项目&#xff0c;需要先下载HBuilderX&#xff0c;HBuilderX是一款开箱即用的工具&#xff0c;下载完毕之后&#xff0c;解压到指定的目录即可使用&#xff0c;需要注意的是最好路径里面…

ESM 内功心法:化解 require 中的夺命一击!

前言 传闻在JavaScript与TypeScript武林中,曾有两大绝世心法:CommonJS与ESM。两派高手比肩而立,各自称霸一方,江湖一度风平浪静。 岂料,时局突变。ESM逐步修成阳春白雪之姿,登堂入室,成为主流正统。CommonJS则渐入下风,功力不济,逐渐退出主舞台。 话说某日,一位前…

【STL】unordered_set

在 C C C 11 11 11 中&#xff0c; S T L STL STL 标准库引入了一个新的标准关联式容器&#xff1a; u n o r d e r e d _ s e t unordered\_set unordered_set&#xff08;无序集合&#xff09;。功能和 s e t set set 类似&#xff0c;都用于存储唯一元素。但是其底层数据结…

go语言八股文

1.go语言的接口是怎么实现 接口&#xff08;interface&#xff09;是一种类型&#xff0c;它定义了一组方法的集合。任何类型只要实现了接口中定义的所有方法&#xff0c;就被认为实现了该接口。 代码的实现 package mainimport "fmt"// 定义接口 type Shape inte…

kafka auto.offset.reset详解

在 Kafka 中&#xff0c;auto.offset.reset latest 的含义及行为如下&#xff1a; 1. ​​核心定义​​ 当消费者组​​首次启动​​或​​无法找到有效的 offset​​&#xff08;例如 offset 过期、被删除或从未提交&#xff09;时&#xff0c;消费者会从分区的​​最新位置…

深度学习-损失函数

目录 1. 线性回归损失函数 1.1 MAE损失 1.2 MSE损失 2. CrossEntropyLoss 2.1 信息量 2.2 信息熵 2.3 KL散度 2.4 交叉熵 3. BCELoss 4. 总结 1. 线性回归损失函数 1.1 MAE损失 MAE&#xff08;Mean Absolute Error&#xff0c;平均绝对误差&#xff09;通常也被称…

第六篇:linux之解压缩、软件管理

第六篇&#xff1a;linux之解压缩、软件管理 文章目录 第六篇&#xff1a;linux之解压缩、软件管理一、解压和压缩1、window压缩包与linux压缩包能否互通&#xff1f;2、linux下压缩包的类型3、打包与压缩 二、软件管理1、rpm1、什么是rpm&#xff1f;2、rpm包名组成部分3、如何…

Redis 键管理

Redis 键管理 以下从键重命名、随机返回键、键过期机制和键迁移四个维度展开详细说明&#xff0c;结合 Redis 核心命令与底层逻辑进行深入分析&#xff1a; 一、键重命名 1. ​RENAME​​ 与 ​RENAMENX​​ **RENAME key newkey​**&#xff1a; 功能&#xff1a;强制重命名…

OpenCV 模板匹配方法详解

文章目录 1. 什么是模板匹配&#xff1f;2. 模板匹配的原理2.1数学表达 3. OpenCV 实现模板匹配3.1基本步骤 4. 模板匹配的局限性5. 总结 1. 什么是模板匹配&#xff1f; 模板匹配&#xff08;Template Matching&#xff09;是计算机视觉中的一种基础技术&#xff0c;用于在目…

TextCNN 模型文本分类实战:深度学习在自然语言处理中的应用

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;文本分类是研究最多且应用最广泛的任务之一。从情感分析到主题识别&#xff0c;文本分类技术在众多场景中都发挥着重要作用。最近&#xff0c;我参与了一次基于 TextCNN 模型的文本分类实验&#xff0c;从数据准备到…

Qt-创建模块化.pri文件

文章目录 一、.pri文件的作用与基本结构作用基本结构 二、创建.pri文件如何添加模块代码&#xff1f; 一、.pri文件的作用与基本结构 作用 在Qt开发中&#xff0c;.pri文件&#xff08;Project Include File&#xff09;是一种配置包含文件&#xff0c;用于模块化管理和复用项…

SpringCloud组件——Eureka

一.背景 1.问题提出 我们在一个父项目下写了两个子项目&#xff0c;需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源&#xff0c;具体实现的方法有很多&#xff0c;可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 举个例子&#x…

EAL4+与等保2.0:解读中国网络安全双标准

EAL4与等保2.0&#xff1a;解读中国网络安全双标准 在当今数字化时代&#xff0c;网络安全已成为各个行业不可忽视的重要议题。特别是在金融、政府、医疗等领域&#xff0c;保护信息的安全性和隐私性显得尤为关键。在中国&#xff0c;EAL4和等级保护2.0&#xff08;简称“等保…

FFmpeg+Nginx+VLC打造M3U8直播

一、视频直播的技术原理和架构方案 直播模型一般包括三个模块&#xff1a;主播方、服务器端和播放端 主播放创造视频&#xff0c;加美颜、水印、特效、采集后推送给直播服务器 播放端&#xff1a; 直播服务器端&#xff1a;收集主播端的视频推流&#xff0c;将其放大后推送给…

【Redis】缓存三剑客问题实践(上)

本篇对缓存三剑客问题进行介绍和解决方案说明&#xff0c;下篇将进行实践&#xff0c;有需要的同学可以跳转下篇查看实践篇&#xff1a;&#xff08;待发布&#xff09; 缓存三剑客是什么&#xff1f; 缓存三剑客指的是在分布式系统下使用缓存技术最常见的三类典型问题。它们分…

Flink 2.0 编译

文章目录 Flink 2.0 编译第一个问题 java 版本太低maven 版本太低maven 版本太高开始编译扩展多版本jdk 配置 Flink 2.0 编译 看到Flink2.0 出来了&#xff0c;想去玩玩&#xff0c;看看怎么样&#xff0c;当然第一件事&#xff0c;就是编译代码&#xff0c;但是没想到这么多问…