网站查看空间商,网站开发建设培训,台州 wordpress,肇庆网站快速排名优化一、日志管理
#xff08;1#xff09;基本介绍
日志文件是重要的系统信息文件#xff0c;记录了如用户登录、系统启动、系统安全、邮件及各种服务等相关重要系统事件在安全方面#xff0c;日志也至关重要#xff0c;它能记录系统日常发生的各类事情#xff0c;可用于检…一、日志管理
1基本介绍
日志文件是重要的系统信息文件记录了如用户登录、系统启动、系统安全、邮件及各种服务等相关重要系统事件在安全方面日志也至关重要它能记录系统日常发生的各类事情可用于检查错误原因以及追踪攻击者留下的痕迹总体而言日志是用于记录重大事件的工具
2系统常用的日志
/var/log/目录就是系统日志文件的保存位置看张图系统常用日志 日志文件名功能查看命令boot.log记录系统启动时程序、服务加载及错误等信息cat /var/log/boot.logcron记录定时任务执行情况如是否按时完成、有无报错cat /var/log/croncups记录打印任务提交和打印机状态如卡纸等问题cat /var/log/cupsdmesg记录内核启动及运行中的硬件检测等关键信息dmesg 或 cat /var/log/dmesgbtmp记录失败的登录尝试可发现恶意登录行为lastblastlog记录每个用户最近一次的登录时间lastlogmaillog记录邮件发送、接收等邮件系统活动信息cat /var/log/maillogmessages记录系统启动及运行的一般事件、警告和错误cat /var/log/messagessecure记录用户登录认证、sudo 使用等安全相关事件cat /var/log/securewtmp记录用户登录注销和系统启动关闭等事件lastutmp记录当前登录用户和进程信息who 或 w 或 users
3日志管理服务
CentOS7.6日志服务是rsyslogdCentOS6.x日志服务是syslogd。rsyslogd功能更强大。 rsyslogd的使用、日志文件的格式和syslogd服务兼容的原理示意图 查看Linux中的rsyslogd服务是否启动 ps -aux|grep rsyslog|grep -v grep 查询rsyslogd服务的自启动状态rsyslogd服务的配置文件/etc/rsyslog.conf 编辑文件时的格式为*.* 存放日志文件其中第一个*代表日志类型第二个*代表日志级别 日志类型分为日志级别分为注意从上到下级别从低到高记录信息越来越少由日志服务 rsyslogd 记录的日志文件日志文件的格式包含以下4列 事件产生的时间产生事件的服务器的主机名产生事件的服务名或程序名事件的具体信息 日志管理服务应用实例在/etc/rsyslog.conf中添加一个日志文件 /var/log/hsp.log当有事件发送时比如sshd服务相关事件该文件会接收到信息并保存演示 重启登录 的情况看看是否有日志保存
4日志轮替
1.4.1基本介绍
日志轮替就是把旧的日志文件移动并改名同时建立新的空日志文件当旧日志文件超出保存的范围之后就会进行删除
1.4.2日志轮替文件命名
centos7 使用 logrotate 进行日志轮替管理要想改变日志轮替文件名字通过 /etc/logrotate.conf 配置文件中 dateext 参数如果配置文件中有“dateext”参数那么日志会用 日期 来作为日志文件的后缀例如“secure-20201010”。这样日志文件名不会重叠也就不需要日志文件的改名只需要指定保存日志个数删除多余的日志文件即可如果配置文件中没有 “dateext” 参数日志文件就需要进行改名了。当第一次进行日志轮替时当前的 “secure” 日志会自动改名为 “secure.1” 然后新建 “secure” 日志用来保存新的日志。当第二次进行日志轮替时“secure.1” 会自动改名为 “secure.2” 当前的”secure“日志会自动改名为 “secure.1” 然后也会新建 “secure” 日志用来保存新的日志以此类推注意 /etc/logrotate.conf 里既可以配置全局的日志轮替策略/规则也可以单独给某个日志文件指定策略也可以把某个日志文件的轮替规则写到 /etc/logrotate.d 目录
1.4.3logrotate配置文件
/etc/logrotate.conf 为 logrotate 的全局配置文件参数说明
1.4.4把自己的日志加入日志轮替
第一种方法是直接在 /etc/logrotate.conf 配置文件中写入该日志的轮替策略第二种方法是在 /etc/logrotate.d/ 目录中新建立该日志的轮替文件在该轮替文件中写入正确的轮替策略因为该目录中的文件都会被 “include” 到主配置文件中所以也可以把日志加入轮替推荐使用第二种方法因为系统中需要轮替的日志非常多如果全都直接写入 /etc/logrotate.conf 配置文件那么这个文件的可管理性就会非常差不利于此文件的维护在 /etc/logrotate.d/ 配置轮替文件一览
1.4.5应用实例
在 /etc/logrotate.conf 进行配置或者直接在 /etc/logrotate.d/ 下创建 hsplog 编写如下内容具体轮替的效果可以参考 /var/log 下的 boot.log 情况
5日志轮替机制原理 6查看内存日志 常用指令 journalctl #查看系统全部日志
journalctl -n 3 #查看最新的 3 条日志
journalctl --since 19:00 --until 19:10:10 #查看 19:00 到 19:10:10 时间段的日志可加日期限定
journalctl -p err #查看报错级别的日志
journalctl -o verbose #查看日志详细内容
journalctl _PID1245 _COMMsshd #查看进程 ID 为 1245 且进程名为 sshd 的日志需详细日志模式
journalctl | grep sshd #从日志里查找包含 sshd 的内容 注意journalctl 查看得是内存日志重启会清空
二、定制自己的Linux系统
1基本介绍
通过裁剪现有Linux系统CentOS7.6创建属于自己的min Linux小系统可以加深我们对linux的理解
2基本原理
BIOS 自检与引导设备选择计算机开机后BIOS基本输入输出系统首先进行自检检查硬件设备是否正常工作。若存在多个可启动设备需在 BIOS 中设置优先启动的设备MBR 引导BIOS 找到可启动设备后读取该设备的主引导记录MBR启动其中的 bootloader 引导程序常见如 GRUB内核加载bootloader 负责加载 Linux 内核文件vmlinuz和初始 RAM 磁盘initrd到内存。内核被加载后开始初始化检测和配置硬件设备init 进程启动内核初始化完成后启动第一个用户空间进程在现代 Linux 系统中通常是 systemd它是所有进程的父进程。systemd 会根据配置文件启动系统服务和进程登录界面显示系统服务和进程启动完成后显示登录界面等待用户输入用户名和密码进行登录
3制作mini Linux思路分析
硬盘分区与格式化在现有的 CentOS 7.6 系统中添加一块新硬盘 /dev/sdb。对 /dev/sdb 进行分区操作划分出两个分区分别用于挂载 /boot 和 / 目录之后对这两个分区进行格式化处理文件拷贝把现有系统中的所有必要文件复制到 /dev/sdb 的对应分区使这块硬盘具备完整的 Linux 系统文件结构内核与 initramfs 文件复制为保证新系统能够独立运行将内核文件和 initramfs 文件复制到 /dev/sdb 上验证启动完成上述操作后将 /dev/sdb 从当前系统中拔出。创建一个新的 Linux 虚拟机并将虚拟机的硬盘指向这块 /dev/sdb在新环境下它会被识别为 /dev/sda启动虚拟机来验证自制的 Linux 系统是否能正常运行示意图
4制作步骤
首先我们在现有的linux添加一块大小为20G的硬盘右键虚拟机→设置→硬件→硬盘→添加→硬盘→下一步→SCSI→创建新虚拟磁盘→填写自己需要的磁盘大小这里我填的20→将虚拟磁盘存储为单个文件→下一步→自己给这个磁盘文件取名→完成添加完成后点击确定然后启动现有的linux(centos7.6)。 通过fdisk来给我们的/dev/sdb进行分区接下来我们对/dev/sdb的分区进行格式化 mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2 创建目录并挂载新的磁盘 mkdir -p /mnt/boot /mnt/sysroot
mount /dev/sdb1 /mnt/boot
mount /dev/sdb2 /mnt/sysroot/ 安装grub, 内核文件拷贝至目标磁盘 grub2-install --root-directory/mnt /dev/sdb#我们可以来看一下二进制确认我们是否安装成功
hexdump -C -n 512 /dev/sdb
cp -rf /boot/* /mnt/boot/#如果输入上面的cp命令后反复提示覆盖就可以Ctrlc退出执行下面这条指令然后再执行上面的cp
rm -rf /mnt/boot/* 修改 grub2/grub.cfg 文件, 标红的部分 是需要使用 指令来查看的总结一下上面修改配置文件的步骤一共有6处需要修改42还有两处是新增创建目标主机根文件系统 mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root} 拷贝需要的bash(也可以拷贝你需要的指令)和库文件给新的系统使用 cp /lib64/*.* /mnt/sysroot/lib64/
cp /bin/bash /mnt/sysroot/bin/ 现在我们就可以创建一个新的虚拟机然后将默认分配的硬盘 移除掉指向我们刚刚创建的磁盘即可这时很多指令都不能使用比如 ls , reboot 等可以将需要的指令拷贝到对应的目录即可如果要拷贝指令重新进入到原来的 linux系统拷贝相应的指令即可比较将 /bin/ls 拷贝到 /mnt/sysroot/bin 将/sbin/reboot 拷贝到 /mnt/sysroot/sbin mount /dev/sdb2 /mnt/sysroot/
cp /bin/ls /mnt/sysroot/bin/
cp /bin/systemctl /mnt/sysroot/bin/
cp /sbin/reboot /mnt/sysroot/sbin/ 再重新启动新的min linux系统就可以使用 ls , reboot 指令了
三、备份与恢复
1基本介绍
实体机快照局限与风险实体机无法做快照系统异常或数据损坏时需重做系统会导致数据丢失应对策略可采用备份和恢复技术应对上述问题Linux 备份恢复方式 用 TAR 打包所需文件或分区恢复时解压覆盖使用 dump 命令备份restore 命令恢复
2安装dump和restore
如果linux上没有dump和restore指令需要先安装
yum -y install dump
yum -y install restore 如果出现上面的问题解决方案如下
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3使用dump完成备份
3.3.1基本介绍
dump支持分卷和增量备份所谓增量备份是指备份上次备份后 修改/增加过的文件也称差异备份
3.3.2dump语法说明
3.3.3dump应用案例1
将/boot分区所有内容备份到/opt/boot.bak.bz2文件中备份层级为’0’
dump -0uj -f /opt/boot.bak0.bz2 /boot
3.3.4dump应用案例2
在/boot目录下增加新文件备份层级为1只备份上次使用层级”0“备份后发生过改变的数据注意比较看看这次生成的boot1.bak有多大
dump -1uj -f /opt/boot.bak1.bz2 /boot 注意通过dump命令在配合cronbtab可以实现无人值守备份也就是自动备份
3.3.5dump -W
显示出需要进行备份的文件系统同时还会给出这些文件系统最后一次备份的层级、时间和日期
3.3.6查看备份时间文件
cat /etc/dumpdates 3.3.7dump备份文件或目录
前面我们在备份分区时是可以支持增量备份的如果备份文件或者目录不再支持增量备份即只能只用0级别备份
案例使用dump备份/etc整个目录 dump -0j -f /opt/etc0.bak.bz2 /etc/ 注意重要的备份文件比如数据区建议将文件上传到其他服务器保存不要将鸡蛋放在同一个篮子
4使用restore完成恢复
3.4.1基本介绍
restore命令用来恢复已备份的文件可以从dump生成的备份文件中恢复原文件
3.4.2restore基本语法 3.4.3应用案例1
restore命令比较模式比较备份文件和原文件的区别
mv /boot/hello.java /boot/hello100.java
restore -C -f boot.bak1.bz2 mv /boot/hello100.java /boot/hello.java
restore -C -f boot.bak1.bz2 3.4.4应用案例2
restore命令查看模式看备份文件中有哪些数据/文件
restore -t -f boot.bak1.bz2 3.4.5应用案例3
restore命令还原模式注意细节如果你有增量备份需要把增量备份文件也进行恢复有几个增量备份文件就要恢复几个按顺序来恢复即可
mkdir /opt/boottmp
cd /opt/boottmp
restore -r -f /opt/boot.bak0.bz2 //恢复到第一次完全备份状态
restore -r -f /opt/boot.bak1.bz2 //恢复到第二次增量备份状态