Linux友人帐之日志与备份

一、日志

1.1概述

  • 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
  • 日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因或者受到攻击时攻击者留下的痕迹。
  • 可以这样理解日志是用来记录重大事件的工具

 1.2var/log目录

/var/log 目录是Linux系统中存储日志文件的默认目录。这个目录包含了系统在运行过程中产生的各种日志信息,例如系统日志、应用程序日志、安全日志等。

/var/log 目录下的文件一般都以日志类型命名,如:

1. /var/log/messages: 包含了系统启动过程中的日志信息、内核日志和一些重要的系统信息。

2. /var/log/auth.log: 包含了系统认证和授权相关的信息,如登录、sudo等操作。

3. /var/log/syslog:包含了系统信息与内核消息

4. /var/log/secure:包含了系统安全相关的信息,如ssh登录、防火墙日志等。

5. /var/log/dmesg:包含了系统启动时的硬件信息、内核信息和驱动信息。

需要注意的是,这些日志文件只用于记录管理员和系统的相关操作,其他普通用户获取日志的权限是非常有限的。

1.3日志管理服务rsyslogd


 

1.4 /etc/rsyslog.conf文件

在Linux系统中,/etc/rsyslog.conf是一个配置文件,它是rsyslogd的主要配置文件。rsyslogd是一种系统日志守护进程,负责接收、处理和转发系统日志消息。

/etc/rsyslog.conf文件包含了rsyslogd的配置信息,通过修改该文件可以控制系统日志守护进程的行为。该文件通常包含以下内容:

1. Global Directives:全局指令,用于配置rsyslogd的全局行为,例如日志文件存储位置、日志记录级别、日志格式、时间戳格式等。

2. Module Directives:模块指令,用于指定rsyslogd要使用的模块及其参数,例如syslog模块、imuxsock模块、imklog模块等。

3. Rule Directives:规则指令,用于指定rsyslogd要执行的规则,例如过滤日志、转发日志、记录日志等。

修改/etc/rsyslog.conf文件可以使rsyslogd满足特定的需求,进而实现更高效的系统日志管理。

文件查看方式 

 1.5自定义日志管理服务

要创建自定义日志管理服务,可以按照以下步骤进行操作:

1. 安装并配置 rsyslog

Rsyslog 是 Linux 上常用的日志服务,它可以帮助你将不同来源的日志消息发送到不同的输出目标。你可以使用以下命令安装并启动 rsyslog:

sudo apt-get install rsyslog
sudo service rsyslog start

2. 创建日志文件

在 /var/log 目录下创建你需要的日志文件,例如:

sudo touch /var/log/mylog.log

3. 配置 rsyslog

在 /etc/rsyslog.d 目录下创建一个新的配置文件,例如 mylog.conf:

sudo nano /etc/rsyslog.d/mylog.conf

在此配置文件中,添加以下内容:

$ModLoad imfile
$InputFileName /var/log/mylog.log
$InputFileTag mylog:
$InputFileStateFile mylog-state
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
local7.*    /var/log/mylog_parsed.log

这些配置设置了:

- 加载 imfile 模块,用于监视文件。
- 设置要监视的日志文件路径及名称。
- 指定了一个标签,用于将日志消息与此服务区分开来。
- 指定了状态文件的名称,以跟踪读取的文件的位置。
- 指定了日志消息的严重性和设施级别。
- 指定了要将消息发送到的输出文件。

在此示例中,我们将来自此服务的日志消息发送到 /var/log/mylog_parsed.log 文件。

4. 重启 rsyslog

重新启动 rsyslog 服务,使之生效:

sudo service rsyslog restart

现在,你的自定义日志管理服务已准备好使用。你可以将日志消息写入 /var/log/mylog.log 文件,然后在 /var/log/mylog_parsed.log 文件中看到相应的解析结果。

 1.6日志轮替

/etc/logrotate.conf是一个用于配置日志文件轮换工具logrotate的主配置文件。

该文件包含全局选项和默认设置,这些选项和设置在轮换指令中未被指定时会应用到所有的日志文件。

该文件通常包含以下选项:

- daily/weekly/monthly/yearly:指定轮换的时间间隔。
- rotate:指定保留的轮换文件数。
- create:指定当轮换文件被创建时的权限和所有权。
- compress:指定是否压缩归档文件。
- delaycompress:指定是否在下一次轮换时压缩旧的归档文件,而不是立即压缩。
- su/sudo:指定在轮换过程中使用的用户和组。

/etc/logrotate.conf文件也可以包含指向其他配置文件的include语句,在这些配置文件中,可以为特定的日志文件或日志文件组指定轮换选项和设置。

例如,以下是一个简单的/etc/logrotate.conf文件:

# 全局选项
weekly
rotate 4
create# 日志文件组
/var/log/apache2/*.log {compressdelaycompresssu www-data rootsize 50M
}

该文件指定了轮换时间为一周,保留4个轮换文件,并使用默认的权限和所有权来创建新文件。然后,它指定了一个日志文件组,其中包含了所有以.log为后缀的Apache访问日志文件,将它们压缩并使用www-data用户和root组进行轮换,当日志文件大小超过50MB时进行轮换。

值得注意的是,该文件只是logrotate的主配置文件之一,实际上的轮换配置可能散布在多个配置文件中,这些文件可以在/etc/logrotate.d/目录中找到。

 /etc/logrotate.d/目录

/etc/logrotate.d/目录中包含了系统日志文件的配置文件。logrotate是一个实用工具,用于管理Linux系统中的日志文件,可以对各个日志文件进行分割、压缩和删除等操作,以避免日志文件过大影响系统性能。

在/etc/logrotate.d/目录中,每个文件都对应一个日志文件的配置。例如,文件名为syslog的配置文件对应的是系统日志文件/var/log/syslog的处理方式。配置文件中包含了对该文件的处理方式、保留时间、压缩方式、删除时间等等的参数设置。

在Linux系统中,日志文件的处理是一个非常重要的工作,通过logrotate工具的使用,可以更好地保障系统的稳定性和安全性。

 自定义日志轮替

 日志轮替机制原理

 1.7内存日志

 

`journalctl` 是 Linux 系统上的一个命令,用于查看和管理系统日志。它可以查看系统日志,包括 boot 过程中的日志和运行期间的日志。

常用的 `journalctl` 命令选项包括:

- `-u`:指定服务单元名称,只显示特定服务的日志信息;
- `-b`:显示指定启动引导的日志信息;
- `-p`:指定日志级别,只显示指定级别的日志信息;
- `-r`:按照相反顺序输出日志信息;
- `-f`:相当于 `tail -f`,实时查看日志信息。

例如,可以使用以下命令查看系统日志:

journalctl

使用以下命令查看指定服务的日志:

journalctl -u service-name

使用以下命令查看指定启动引导的日志:

journalctl -b

使用以下命令查看只显示错误级别的日志信息:

journalctl -p err

使用以下命令实时查看日志信息:

journalctl -f

 二、备份与数据恢复

2.1概述

2.2dump命令 

dump命令是一种文件系统备份工具,它可以备份和还原文件系统中的数据。它使用Unix文件系统,通过备份一个文件系统来创建一个可重建的副本。dump命令可以用于备份整个文件系统或者备份某个特定的目录。 

以下是dump命令的一些常用选项和用法:

1. 基本语法

dump [options] device

2. 常用选项

- -0:创建完整备份
- -u:更新备份
- -f:指定备份文件名
- -s:指定备份级别
- -n:不备份文件系统中的某些目录
- -L:指定备份文件的大小
- -z:压缩备份文件

3. 示例

- 创建完整备份

dump -0uf /mnt/backup/home.dmp /home

- 更新备份

dump -uf /mnt/backup/home.dmp /home

- 恢复备份

restore -if /mnt/backup/home.dmp

- 不备份文件系统中的某些目录

dump -0us /mnt/backup/home.dmp /home -n /home/user1,/home/user2

- 压缩备份文件

dump -0uzf /mnt/backup/home.dmp.gz /home

2.3restore命令

 Linux中的“restore”命令是一个备份和还原文件的工具。它的功能与“tar”命令类似,但还提供了增量备份和还原,以及指定备份时间等更高级的选项。下面是一些常用的“restore”命令选项:

1. -C:指定还原的目录。

2. -t:列出备份的文件列表。

3. -i:交互模式,每次还原时都要求确认。

4. -x:从备份中解压文件。

5. -f:指定备份文件名。

6. -R:恢复到指定时间的备份。

例如,恢复一个名为“backup.tar”的备份文件到“/home/user/restore”目录可以使用以下命令:

restore -xvf backup.tar -C /home/user/restore

如果想要恢复到备份文件的某个特定时间,可以使用以下命令:

restore -R -f backup.tar -C /home/user/restore -t "2021-01-01 00:00:00"

此命令将还原备份文件“backup.tar”中在“2021-01-01 00:00:00”之前的文件。

 

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

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

相关文章

openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

文章目录 openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户108.1 创建、修改和删除用户108.2 私有用户108.3 永久用户108.4 用户认证优先规则 openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户 使用CREATE USER和ALTER USER可以创建和管理数据…

期中考核复现

web 1z_php ?0o0[]1A&OoO[]2023a include "flag.php":尝试包含名为 "flag.php" 的文件。这意味着它会尝试引入一个名为 "flag.php" 的脚本文件,其中可能包含一些敏感信息或标志。 error_reporting(0):…

MYSQL(事务+锁+MVCC+SQL执行流程)理解

一)事务的特性: 一致性:主要是在数据层面来说,不能说执行扣减库存的操作的时候用户订单数据却没有生成 原子性:主要是在操作层面来说,要么操作完成,要么操作全部回滚; 隔离性:是自己的事务操作自己的数据,不会受到到其…

【TES641】基于VU13P FPGA的4路FMC接口基带信号处理平台

板卡概述 TES641是一款基于Virtex UltraScale系列FPGA的高性能4路FMC接口基带信号处理平台,该平台采用1片Xilinx的Virtex UltraScale系列FPGA XCVU13P作为信号实时处理单元,该板卡具有4个FMC子卡接口(其中有2个为FMC接口)&#x…

机器学习中常见的特征工程处理

一、特征工程 特征工程(Feature Engineering)对特征进行进一步分析,并对数据进行处理。 常见的特征工程包括:异常值处理、缺失值处理、数据分桶、特征处理、特征构造、特征筛选及降维等。 1、异常值处理 具体实现 from scipy.s…

软件测试面试1000问(含文档)

前前后后面试了有20多家的公司吧,最近抽空把当时的录音整理了下,然后给大家分享下 开头都是差不多,就让做一个自我介绍,这个不用再给大家普及了吧 同时,我也准备了一份软件测试视频教程(含接口、自动化、…

kvm webvirtcloud 如何添加直通物理机的 USB 启动U盘

第一步:查看USB设备ID 在物理机上输入 lsusb 命令 rootubuntu:/media/usb1# lsusb Bus 002 Device 002: ID 0781:5581 SanDisk Corp. Ultra Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0424:2514 Microchip Technolo…

进阶课3——神经网络

1.定义与分类 神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。它由大量的节点(或神经元)相互关联而成,每个节点代表一种特定的输出函数(或称为运算),称为激励…

音乐制作软件 Studio One 6 mac中文版软件特点

Studio One mac是一款专业的音乐制作软件,该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…

On Moving Object Segmentation from Monocular Video with Transformers 论文阅读

论文信息 标题:On Moving Object Segmentation from Monocular Video with Transformers 作者: 来源:ICCV 时间:2023 代码地址:暂无 Abstract 通过单个移动摄像机进行移动对象检测和分割是一项具有挑战性的任务&am…

计算机算法分析与设计(20)---回溯法(0-1背包问题)

文章目录 1. 题目描述2. 算法思路3. 例题分析4. 代码编写 1. 题目描述 对于给定的 n n n 个物品,第 i i i 个物品的重量为 W i W_i Wi​,价值为 V i V_i Vi​,对于一个最多能装重量 c c c 的背包,应该如何选择放入包中的物品…

论文-分布式-并发控制-Lamport逻辑时钟

目录 前言 逻辑时钟讲解 算法类比为面包店内取号 Lamport算法的时间戳原理 Lamport算法的5个原则 举例说明 算法实现 参考文献 前言 在并发系统中,同步与互斥是实现资源共享的关键Lamport面包店算法作为一种经典的解决并发问题的算法,它的实现原…

opencalib中lidar2camera安装记录

目录 一、opencalib安装 二、lidar2camera的安装 三、测试运行 四、出现过的问题 一、opencalib安装 代码地址:https://github.com/PJLab-ADG/SensorsCalibration/blob/master/README.md # pull docker image sudo docker pull scllovewkf/opencalib:v1 # Aft…

出海路上离不开的Email营销,教你这样来优化!

随着互联网的不断发展,Email已经成为人们工作和生活中不可或缺的一部分。尤其是对于我们这些跨境企业而言,发送Email是一个促进销售和维护客户关系的良好渠道。而且邮件的价格也是比较低廉的,很适合用于日常推广营销,所以人手几个…

【Linux】nginx基础篇 -- 介绍及yum安装nginx

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

光影之梦2:动画渲染前后对比,揭示视觉艺术的惊人转变!

动画渲染是影视艺术中不可或缺的一环,它赋予了角色和场景鲜活的生命。渲染过程中的光影、色彩、材质等元素,像是画家的调色板,将平淡无奇的线条和形状转化为充满韵味与情感的画面。动画角色仿佛拥有了自己的灵魂,无论是一颦一笑&a…

Unity Inspector编辑器扩展,枚举显示中文,枚举值自定义显示内容

记录!Unity Inspector面板编辑器扩展,枚举显示中文,枚举值自定义显示内容,显示部分选项。效果如下: 枚举类代码: using System.Collections; using System.Collections.Generic; using UnityEngine;public…

9 线程池

目录 1 线程池各参数 1.1 corePoolSize 1.2 maximunPoolSize 1.3 keepAliveTime 1.4 workQueue 1.5 RejectedExecutionHandler 2 线程池工作机制 2.1 流程 2.2 提交任务 3 相关问题 3.1 线程池核心线程数、最大线程数设置 3.2 ApiPost压测 3.3 为什么要用阻塞队列…

初识Java篇

1.介绍Java语言 1.1Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境&am…

小知识(5) el-table行样式失效问题

一、实现效果 子级呈现不同颜色去区分 二、最初代码 tips: 我这里使用的vue3 elementplus <el-table :row-class-name"tableRowClassName" >... </el-table>function tableRowClassName({ row, rowIndex }) {if (row.children.length 0) {return …