《云计算学习日记Day15》—— 从零开始的云计算之旅
今天是系统学习云计算的第十五天,记录了关于我的云计算学习,后续将每日更新我的笔记。欢迎大家一起来学习,如果内容有遗漏和错误,还请大家多多指正和包涵,谢谢大家

因为前一节我们已经掌握了远程控制ssh的使用,所以之后我选择用windows的WindTerm来远程管理这些虚拟机,更加方便一些

关于远程管理,还可以补充一些内容:

1.tmux防止远程管理中断

简单描述一下,当我们在进行远程管理的时候,可能会因为突发情况(服务器停摆等)与远程主机断开连接,这样会导致我们正在进行的任务中断,进而造成任务失败、内存损失等。但是我们使用tmux可以保证我们意外断开连接时,当前任务继续完成

首先安装amux:yum -y install tmux

然后直接运行:

命令:tmux #进入tmux会话

2.tmux多窗口(多会话)

命令:tmux list-sessions #列出已有会话

命令:tmux kill-server #杀死所有会话

日志管理

日志概述

日志的功能

  • 系统和程序的日记本
    • 记录系统、程序运行中发生的各种事件
    • 通过查看日志,了解及排除故障
    • 信息安全控制的“依据”

内核及系统日志

  • 由系统服务rsyslog统一记录/管理
    • 日志消息采用文本格式
    • 主要记录时间发生的时间、主机、进程、内容
  • 常见的日志文件
日志文件主要用途
/var/log/messages记录内核消息、各种服务的公共消息
/var/log/cron记录与cron计划任务相关的消息
/var/log/maillog记录邮件收发相关的消息
/var/log/secure记录与访问限制相关的安全消息

用户日志

  • 由登录程序负责记录/管理
    • 日志消息采用二进制格式
    • 记录登录用户的时间来源、执行的命令等信息
日志文件主要用途
/var/log/lastlog记录最近的用户登录事件
/var/log/wtmp记录成功的用户登录/注销事件
/var/log/btmp记录失败的用户登录事件

日志分析

查看文本日志消息

  • 通用分析工具
    • tail、tailf、less、grep等文本浏览/检索命令
    • awk、sed等格式化过滤工具
  • 专用工具分析
    • ELK日志分析平台
    • Elasticesearch、k'iba'na等日志统计套件

用户登录分析

  • users、who、w命令
    • 查看已登录的用户信息,详细度不同
  • last、lastb命令
    • 查看最近登录成功/失败的用户信息

日志消息的优先级

  • Linux内核定义的事件紧急程度

    • 分为0~7,共八个优先级别
    • 其数值越小,表示对应事件越紧急、越重要

EMERG告急会导致主机系统不可用的情况
ALERT警告必须马上采取措施解决问题
CRIT严重比较严重的情况
ERR错误运行出现错误
WARNING提醒可能会影响系统功能的事件
NOTICE注意不会影响系统,但是值得注意
INFO信息一般信息
DEBUG调试程序或系统调试信息等

使用journalctl工具

  • 提取由systemd-journal服务搜索的日志
    • 主要包括内核/系统日志、服务日志
  • 常见用法:
    • journalctl | grep 关键词
    • journalctl -u 服务名 [-p 优先级]
    • journalctl -n 消息条数

SELinux

SELinux安全机制

SELInux概述

  • Security-Enhanced Linux
    • 美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
    • 集成到Linux内核(2.6及以上)中运行
    • SELinux体系对用户、进程、目录和文件提供了预设的保护策略,以及管理工具

SELinux运行模式的切换

  • SELinux的运行模式
    • enforcing:强制模式
    • permissive:宽松模式
    • disabled:彻底禁用
  • 切换运行模式:
    • 临时切换:setenforce 1 | 0
    • 查看当前模式:getenforce
    • 固定配置:/etc/selinux/config文件

#查看现在的selinux运行模式
[root@test1 ~]# getenforce 
Enforcing
[root@test1 ~]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]#进行临时修改
[root@test1 ~]# setenforce 0
[root@test1 ~]# getenforce 
Permissive

那么有人会问:配置文件里面怎么改?

#首先查找配置文件里面的SELINUX
#找到的下面的第四条SELINUX=ecforcing就是配置信息
#要是想要改为宽松模式,只需要把enforcing改为permissive,然后重启即可
#要是想要改为彻底禁用,只需要把enforcing改为disabled,然后重启即可
[root@test1 ~]# grep SELINUX /etc/selinux/config 
# SELINUX= can take one of these three values:
# NOTE: Up to RHEL 8 release included, 
SELINUX=disabled would also
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
SELINUXTYPE=targeted

系统故障修复

故障排除

忘记root密码

解决思路

  • 第一步:重启系统,进入救援模式
    • 开机的时候按e键,进入页面后,将linux开头的那一行中的ro修改为rw(read only→read wirte)
    • 还是在这一行,在最末尾的地方,添加rd.break
    • 按快捷键ctrl + x启动,会看到switch_root:/#
  • 第二步:切换到此环境
    • switch_root:/# chroot /sysroot
  • 第三步:将管理员root的密码进行重设
  • 第四步:重设SELinux安全标签
    • touch /.autorelabel #让SELinux失忆,或者修改SELinux模式,但是只能采取一种方式
  • 第五步:前后执行reboot完成修复
    • reboot -f #强制重新启动

系统文件损坏故障

主要问题:开机自动挂载配置文件书写错误

解决思路:引导进入修复模式,然后进行修复

构建FTP服务

FTP介绍

基本信息

  • FTP服务器:数据传输
  • FTP协议:文件传输协议
  • 实现FTP服务的软件:vsftpd
  • FTP默认共享数据的主目录:/var/ftp

安装软件vsftpd

[root@test1 ~]# yum install vsftpd

实现FTP服务

检查软件安装情况

[root@test1 ~]# rpm -q vsftpd 
vsftpd-3.0.5-6.el9.x86_64

修改配置文件

修改vsftpd的配置文件,修改设置为开启无需验证访问功能

[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
[root@test1 ~]# vim /etc/vsftpd/vsftpd.conf 
[root@test1 ~]# grep anonymous_enable= /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
[root@test1 ~]# 

访问FTP服务

我们使用另一台虚拟机test2来访问test1的FTP服务

但是这里访问失败了,这是为什么呢?这里是因为防火墙firewalld存在的缘故,我们把它卸载掉就可以,当然也可以修改firewalld配置来实现。看下一小节我们就能明白为什么

防火墙策略管理

firewalld服务基础

Linux的防火墙体系

  • 系统服务:firewalld
  • 管理工具(指令):firewalld-cmd、firewalld-config
  • 作用:严格过滤

预设安全区域

  • 根据所在的网络场所区分,预设保护规则集
    • public:仅允许访问本机的sshd、dhcp(自动获取ip)、ping等少数几个服务
    • trusted:允许任何访问
    • block:阻塞任何来访请求
    • drop:丢弃任何来访的数据包
  • 配置规则的位置
    • 运行时:runtime
    • 永久:permanent

防火墙判定原则

1.查看客户端请求中源IP地址,查看自己所有区域中的规则,哪个区域中有该源IP地址规则,则进入该区域

2.进入默认区域(默认情况下为public)

查看防火墙规则列表

列表查看规则

  • firewalld-cmd - -list-all [- -zone=区域名]
  • firewalld-cmd - -list-all-zones
  • firewalld-cmd - -get-zones
  • firewalld-cmd - -get-services
  • firewalld-cmd - -get-dedault-zone

配置防火墙

指定默认的安全区域

  • 使用命令:firewalld-cmd - -set-defaults-zone=区域名
    • 默认为public,限制比较严格
    • 对于开放式环境,建议将默认区域修改为trusted
    • 针对“运行时/永久配置”均有效
[root@test1 ~]# firewall-cmd --get-default-zone 
public
[root@test1 ~]# firewall-cmd --set-default-zone=trusted 
success
[root@test1 ~]# firewall-cmd --get-default-zone 
trusted

书接上文,我们修改了默认安全区域,这下应该可以实现FTP服务了,用test2连接一下test1试一下

[root@test2 ~]# curl <ftp://192.168.99.10>
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

成功连接上了,这里可以看到一个pub,这就是test1共享的内容,上面我们也讲过了,提供FTP服务的默认文件路径是/var/ftp/,我们在test1中修改,再用test2访问查看是否会更新

在test1中:

[root@test1 ~]# ls /var/ftp/
pub
[root@test1 ~]# echo 'Hello World!!' > /var/ftp/hello.txt
[root@test1 ~]# cat /var/ftp/hello.txt
Hello World!!

在test2中:

[root@test2 ~]# curl <ftp://192.168.99.10>
-rw-r--r--    1 0        0              14 Sep 03 11:49 hello.txt
drwxr-xr-x    2 0        0               6 Nov 06  2024 pub

我们在test1中创建的hello.txt可以通过FTP服务提供给test2,说明成功

封网段、开服务

  • 若针对“永久配置”,需要添加- -permanent
    • 使用:- -add-source=网段名
    • 使用:- -add-service=服务名

举例

服务管理

systemd介绍

init程序的作用

  • Linux系统和服务管理器
    • 是内核引导之后加载的第一个初始化进程(PID=1)
    • 负责掌控整个Linux的运行/服务资源组合
  • 传统的init程序风格
    • system v:顺序加载,RHEL5系列采用
    • upstart:事件触发,RHEL6系列采用

systemd

  • 一个更高效的系统&服务管理器
    • 开机服务并启动,各系统服务间的精确依赖
    • 服务目录:/lib/systemd/system/
    • 主要管理工具:systemctl
  • 用户→systemctl→systemd→服务启动配置文件→服务程序
  • 服务启动配置文件目录:/lib/systemd/system/

管理系统服务

列出服务

  • 列出活动的系统服务
    • systemctl -t service
  • 列出所有的系统服务(包括不活动的)
    • systemctl -t service - -all

启动/停止/重启/看状态

  • systemctl restart 服务名:重启服务
  • systemctl start 服务名:开启服务
  • systemctl stop 服务名:停止服务
  • systemctl status 服务名:查看服务当前状态
  • systemctl enable 服务名:设置服务开机自启动
  • systemctl disable 服务名:设置服务禁止开机自启动
  • systemctl is-enabled 服务名:查看服务是否开机自启动

管理运行级别

切换级别

1.单用户模式(基本功能的实现,破解Linux密码)····50个服务

2.多用户字符界面(不支持网络)····80个服务

3.多用户字符界面(支持网络)服务器默认运行级别····100个服务

4.未定义····0个服务

5.图形界面····300个服务

6.重启····0个服务····相当于reboot

#当前直接切换到字符模式
systemctl isolate multi-user.target     #相当于init  3#当前直接切换到图形模式
systemctl isolate graphical.target      #相当于init  5

设置默认级别

查看每次开机默认进入的模式

[root@test1 ~]# systemctl get-default 
graphical.target

设置永久策略,每次开机自动进入字符模式

[root@test1 ~]# systemctl set-default multi-user.target 
Removed "/etc/systemd/system/default.target".
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
[root@test1 ~]# systemctl get-default 
multi-user.target

这样就设置成功了,之后我们将一直使用字符模式,一方面为了提高专业能力,一方面减小系统负担

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

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

相关文章

3Ds Max Gamma值完全指南:问题识别与正确设置解析

当渲染图像与本地图片相比亮度偏黑或偏白时&#xff0c;很可能是因为Gamma输入输出设置不一致。需要注意的是&#xff0c;Gamma问题通常表现为整体亮度偏差&#xff0c;而非大面积曝光或全黑状况。Gamma设置教程问题一&#xff1a;Gamma校正未开启如果使用VR帧缓冲窗口渲染但未…

用 Rust + Actix-Web 打造“Hello, WebSocket!”——从握手到回声,只需 50 行代码

用 Rust Actix-Web 打造“Hello, WebSocket!”——从握手到回声&#xff0c;只需 50 行代码 一、为什么选择 Rust 写 WebSocket&#xff1f; 零成本抽象&#xff1a;编译期确定生命周期&#xff0c;无 GC 抖动&#xff0c;延迟低至微秒级actix-web&#xff1a;Tokio 生态最成熟…

基于Cursor的 STM32工程搭建 (编译、下载、仿真)

嵌入式学习交流Q群 679912988 简介 本工程使用GCC编译器、MinGW、CMake构建工具和OpenOCD调试工具。实现了替代KEIL, IAR等在某些情况下不方便使用的情况。实现了编译、调试、下载、烧录一体。搭配Cursor的Tab补全功能&#xff0c;编码效率大大提升。 工具下载及安装 Cursor…

数据量太大处理不了?Hadoop+Spark轻松解决海洋气象大数据分析难题

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

Day34 UDP套接字编程 可靠文件传输与实时双向聊天系统

day34 UDP套接字编程 可靠文件传输与实时双向聊天系统 UDP文件传输 实现客户端向服务器传输文件&#xff08;如图片&#xff09;的功能&#xff0c;确保传输后文件内容完全一致且可正常打开。传输过程采用简单的确认机制防止数据包丢失&#xff0c;传输完成后双方程序自动退出。…

策略模式-不同的鸭子的案例

介绍了策略模式在C#中的应用&#xff0c;以一个鸭子的例子来说明。首先定义了鸭子类以及鸭子的行为&#xff08;方法&#xff09;&#xff0c;然后通过继承和实现接口的方式来定义不同种类的鸭子的特性。介绍了策略模式的概念&#xff0c;将相同的算法封装在不同的类中&#xf…

C++语言编程规范-初始化和类型转换

01 C语言编程规范-常量 02 初始化和类型转换 声明、定义与初始化 03 禁止用 memcpy、memset 初始化非 POD 对象 说明&#xff1a;POD 全称是“Plain Old Data”&#xff0c;是 C 98 标准(ISO/IEC 14882, first edition, 1998-09-01)中引入的一个概念&#xff0c; PO…

从零构建一款开源在线客服系统:我的Go语言实战之旅

了解更多&#xff0c;搜索 "程序员老狼"用代码连接世界&#xff0c;让沟通无界限缘起&#xff1a;为什么选择开发客服系统&#xff1f;在数字化浪潮席卷全球的今天&#xff0c;企业与客户之间的沟通方式正在发生深刻变革。传统的电话和邮件支持已无法满足即时互动的需…

unsloth笔记:基本介绍

更快的速度、更省的内存训练、运行、评估大模型 1 支持的模型 All Our Models | Unsloth Documentation 1.1 Dynamic GGUF/instruct 4-bit llama.cpp使用的新模型格式&#xff0c;专为高效、本地推理设计注&#xff1a;GGUF无法微调 只保留推理所需的内容&#xff0c;如量化…

博众测控 | 一文看懂菊水电源产品在半导体测试中的应用

01 半导体在各行业上的应用半导体作为现代工业体系的“核心神经”&#xff0c;其性能参数与应用场景深度绑定&#xff0c;不同行业因核心设备的功能需求差异&#xff0c;对半导体的电流、电压承载能力及类型选择有着明确且严格的要求&#xff0c;具体应用细节如下&#xff1a;1…

【STM32】贪吃蛇 [阶段 8] 嵌入式游戏引擎通用框架设计

这篇博客是 承接&#xff1a;【项目思维】贪吃蛇&#xff08;嵌入式进阶方向&#xff09;中 嵌入式游戏引擎雏形&#xff08;终极进阶&#xff09;&#xff0c; 是我们此前从 “写一个小游戏”提升到“构建可复用游戏框架” 的飞跃阶段。我们以“贪吃蛇游戏”为例&#xff0c;抽…

Vue图标按钮好用的样式

图标按钮示例一 <template><div class"icon-button-group"><button class"icon-btn icon-btn--default"><i class"el-icon-moon"></i></button><button class"icon-btn icon-btn--primary"&g…

Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装

文章目录前言一、Web 概念1.1 Web 的基本概念1.1.1 Web的特点1.2 B/S 架构模型1.3 Web 请求与响应过程&#xff08;重点&#xff09;1.4 静态资源与动态资源1.5 Web 的发展阶段1.6 案例&#xff1a;搭建最小 Web 服务1.6.1 目标1.6.2 搭建步骤1.7 小结二、HTTP 与 HTTPS 协议2.…

一种用geoserver发布复杂样式矢量服务的方法

最近因为系统需要在国产系统中部署&#xff0c;遇见了国产系统不支持ArcGIS的尴尬局面&#xff0c;好在geoserver还是可以支持的&#xff0c;遂用geoserver解决服务问题。 在发布过程中&#xff0c;遇到比较难受的点就是矢量数据的样式配图&#xff0c;在我用QGIS配好导出sld后…

为什么神经网络网络算法比机器学习模型算法更加强大?

神经网络&#xff08;尤其是深度神经网络&#xff09;相比传统机器学习模型&#xff08;如线性回归、决策树、支持向量机等&#xff09;的“强大”主要体现在其更强的表达能力、自适应特征学习能力以及对复杂模式的建模能力。但这种“强大”并非绝对&#xff0c;而是有特定条件…

中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖

中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖 开启ADB教程&#xff1a; 可查看&#xff1a;浪潮CD1000-移动云电脑-RK3528芯片-232G-安卓9-开启ADB ROOT破解教程 可轻松打开了wifi adb和USB调试。 往期详细内容-文章&#xff1a;浪潮CD1000-移动云电脑…

C++两个字符串的结合

这段代码实现字符串拼接功能。用户输入两个字符串a和b后&#xff0c;使用append()方法将b追加到a后面&#xff0c;然后输出拼接后的结果。代码简洁但存在改进空间&#xff1a;1. 缺少输入验证 2. 直接修改原字符串a可能不符合某些场景需求 3. 可考虑更高效的拼接方式。适合基础…

UE4 Rider调试时添加自定义命令行参数

1、打开 Rider 右上角&#xff0c;针对你的项目&#xff08;例如叫做“Mini”&#xff09;打开 Edit 2、输入自定义的参数&#xff0c;如下图的例子是输入 -dx12 -norhithread &#xff0c;然后Apply并OK。3、开始调试&#xff08;虫子按钮&#xff09;

混合架构大型语言模型(Jamba)

Jamba是由AI21 Labs开发的混合架构大型语言模型&#xff08;LLM&#xff09;&#xff0c;结合了Transformer的语义理解能力和Mamba结构化状态空间模型&#xff08;SSM&#xff09;的高效性&#xff0c;旨在解决长文本处理中的计算瓶颈。 一、技术特点 1.混合架构设计 Jamba采用…

2025 年高教社杯全国大学生数学建模竞赛C 题 NIPT 的时点选择与胎儿的异常判定详解(一)

基于胎儿Y染色体浓度的孕周与BMI建模分析摘要本文利用某竞赛提供的胎儿Y染色体浓度数据&#xff0c;建立了以孕周和孕妇BMI为自变量的多项式回归模型&#xff0c;探讨了其对Y染色体浓度的影响。通过数据清洗与筛选&#xff0c;共获得1082条有效男胎样本。结果显示&#xff1a;Y…