一、日志
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 start2. 创建日志文件
在 /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 { compress delaycompress su www-data root size 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”之前的文件。