一、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
创建脚本:etc_bakcup.sh
[root@centos6 data]# vim etc_backup.sh
#!/bin/bash
[ -d /backup ] || mkdir /backup
rpm -q xz >/dev/null
[ $? -eq 0 ] || yum -y install xz >/dev/null
DATEFORMAT=<code>date -d yesterday "+%Y-%m-%d-%H-%M"</code>
tar -cf /backup/etcbak-$DATEFORMAT.tar /etc > /dev/null && xz -z /backup/etcbak-$DATEFORMAT.tar
[root@centos6 data]# chmod +x etc_backup.sh
[root@centos6 data]#crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
30 1 0 /data/etc_backup.sh &>/dev/null
如图:是为了更快看见效果,调整为每分钟执行一次的结果图:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsAjMfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SO3gjN2QzNwIjN3AjNyYTMvwlMxcDMxIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
如何还原:
xz -d -k etcbak-2021-07-11-14.tar.xz
tar xf etcbak-2021-07-11-14.tar
二、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就发送邮件报警
[17:00:35 root@centos8[ script]#cat checkdisk.sh
WARNING=80
SPACE_USED=<code>df |grep '^/dev/sd'|grep -oE '[0-9]+%'|tr -d %|sort -nr|head -1</code>
INODE_USED=<code>df -i |grep '^/dev/sd'|grep -oE '[0-9]+%'|tr -d %|sort -nr|head -1</code>
[ "$SPACE_USED" -gt $WARNING -o "$INODE_USED" -gt $WARNING ] && echo "disk used is $SPACE_USED,INODE_USED:$INODE_USED,will be full" | mail -s diskwarning [email protected]
三、简述linux操作系统启动流程
Centos 6启动流程
1.加载BIOS的硬件信息,获得第一个启动设备
2.读取第一个启动设备MBR的引导程序(grub)的启动信息
grub启动过程
1st stage(1阶段):MBR的前446个字节
1.5 stage(1.5阶段): MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区 上的文件系统
2nd stage(2阶段),解析分区文件/boot/grub/解析/boot/grub/grub.conf(指明内核和驱动程序)
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4.核心执行init程序,并获得默认的运行信息
5.init程序执行/etc/rc.d/rc.sysinit文件,重新关注根文件系统
6.启动核心的外挂模块
7.init执行运行的各个批处理文件(scripts)
8.init执行/etc/rc.d/rc.local
9.执行/bin/login程序,等待用户登录
10.登录后开始以shell控制主机
CentOS 7之后版本启动流程
UEFi或BIOS初始化,运行POST开机自检
选择启动设备
引导装载程序, centos7是grub2,加载装载程序的配置文件:
/etc/grub.d/
/etc/default/grub
/boot/grub2/grub.cfg
加载initramfs驱动模块
加载内核选项
内核初始化,centos7使用systemd代替init
执行initrd.target所有单元,包括挂载/etc/fstab
从initramfs根文件系统切换到磁盘根目录
systemd执行默认target配置,配置文件/etc/systemd/system/default.target
systemd执行sysinit.target初始化系统及basic.target准备操作系统
systemd启动multi-user.target下的本机与服务器服务
systemd执行multi-user.target下的/etc/rc.d/rc.local
Systemd执行multi-user.target下的getty.target及登录服务
systemd执行graphical需要的服务
四、制作一个只运行shell的linux系统
1.分区并创建文件系统
#分两个必要的分区,/dev/sdb1对应/boot /dev/sdb2对应根 /
[root@centos6 ~]#echo -e 'n\np\n1\n\n+1G\nw\n' | fdisk /dev/sdb
[root@centos6 ~]#echo -e 'n\np\n2\n\n\n\nw\n' | fdisk /dev/sdb
[root@centos6 ~]#mkfs.ext4 /dev/sdb1
[root@centos6 ~]#mkfs.ext4 /dev/sdb2
2.挂载boot
#子目录必须为boot
[root@centos6 ~]#mkdir /mnt/boot
[root@centos6 ~]#mount /dev/sdb1 /mnt/boot
3.安装grub
[root@centos6 ~]#grub-install --root-directory=/mnt/ /dev/sdb
4.准备内核和initramfs文件
[root@centos6 ~]#cp /boot/vmlinuz-2.6.32-754.el6.x86_64 /mnt/boot/vmlinuz
[root@centos6 ~]#cp /boot/initramfs-2.6.32-754.el6.x86_64.img /mnt/boot/initramfs.img
5.创建grub.conf
[root@centos6 ~]# cat /mnt/boot/grub/grub.conf
default=0
timeout=6
title tiger linux
root (hd0,0)
kernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs.img
6.准备根下面相关程序和库
#准备根目录下目录
[root@centos6 ~]#mkdir /mnt/sysroot
[root@centos6 ~]#mount /dev/sdb2 /mnt/sysroot
[root@centos6 ~]#mkdir –pv /mnt/sysroot/{boot,dev,sys,proc,etc,lib,lib64,bin,sbin,tmp,var,usr,opt,home,root,mnt,media}
#复制相关程序及相关库文件
[root@centos6 ~]# which bash
/bin/bash
[root@centos6 ~]# cp -a /bin/bash /mnt/sysroot/bin/
[root@centos6 ~]# ldd /bin/bash |sed -nr 's#.(\/./.) .#\1#p'
/lib64/libtinfo.so.5
/lib64/libdl.so.2
/lib64/libc.so.6
/lib64/ld-linux-x86-64.so.2
[root@centos6 ~]# cp -ar <code>ldd /bin/bash |sed -nr 's#.*(\/.*/.*) .*#\1#p'</code> /mnt/sysroot/lib64/
#准备网卡驱动
[root@centos6 ~]#ethtool -i eth0
[root@centos6 ~]#modinfo -n e1000
/lib/modules/2.6.32-754.el6.x86_64/kernel/drivers/net/e1000/e1000.ko
[root@centos6 ~]#cp /lib/modules/2.6.32-754.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/
[root@centos6 ~]#chroot /mnt/sysroot
五、总结systemctl管理命令及system unit文件格式
管理系统服务service unit
格式:
systemctl COMMAND name.service
常用COMMAND:
start:启动服务
restart:重启
stop:停止
status:查看状态
enable:设置开启启动
disable:开机不启动
mask:禁止自动和手动启动服务,将服务mask后start命令就不起作用
unmask:取消mask
is-active:查看服务是否激活状态
is-enabled:查看服务是否开机启动
list-units:查看所有了units
list-dependencies:查看服务依赖关系
system unit文件格式
service unit file文件通常由三部分组成:
[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等
[Service]:与特定类型相关的专用选项;此处为Service类型
[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
六、破解centos7 密码
方法一:
1.启动时任意键暂停启动
2.按e键进入编辑模式
3.将光标移动linux 开始的行,添加内核参数rd.break
4.按ctrl-x启动
5.切根并修改密码
mount –o remount,rw /sysroot
chroot /sysroot
passwd root
#如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行
touch /.autorelabel
exit
reboot
方法二:
3.将光标移动linux 开始的行,改为rw init=/sysroot/bin/sh
5.切根,并修改root密码,