一、每周的工作日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密碼,