1. 自定义写出10个定时任务的示例:
比如每周三凌晨三点执行data命令
要求尽量的覆盖各种场景

1)每天早上8点对磁盘使用率进行查看,若超出空间的80%,则发邮件报警

[root@centos8 ~]#cat check_disk.sh
#!/bin/bash
warning=80
used=`df |grep -Eo '[0-9]+%'|grep -Eo [0-9]+ |sort -rn|head -1`
[$used -gt $warning ] && echo Disk will be full! |mail -s worning 857376512@qq.com
[root@centos8 ~]#crontab -l
* 8 * * * /root/check_disk.sh

2)每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

30 1 * * 1-5 cp -a /etc  /backup/etcbak-`date -d -1day

3)每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

* */2 * * *  cat/proc/meminfo | grep -e "^S" -e "^M" >> /tmp/meminfo.txt

2. 图文并茂说明Linux进程和内存概念

1)进程

进程:运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度 的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。

进程的组成:进程一般由程序、数据集合和进程控制块三部分组成。

程序用于描述进程要完成的功能,是控制进程执行的指令集; 数据集合是程序在执行时所需要的数据和工作区; 程序控制块(Program Control Block,简称PCB),包含进程的描述信息和控制信息,是进程存在的唯一 标志。

进程具有的特征:

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

并发性:任何进程都可以同其他进程一起并发执行;

独立性:进程是系统进行资源分配和调度的一个独立单位;

结构性:进程由程序、数据和进程控制块三部分组成。

2)内存

内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。

3. 图文并茂说明Linux启动流程

1)硬件启动POST

POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内 存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

主板的ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出 程序,系统信息设置、开机加电自检程序和系统启动自举程序等

主板的RAM:CMOS互补金属氧化物半导体,保存各项参数的设定,按次序查找引导设备,第一个有引 导程序的设备为本次启动设备

2)启动加载器bootloader

bootloader: 引导加载器,引导程序

  Windows: ntloader,仅是启动OS

  Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装 载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

Linux的bootloader

   LILO:LInux LOader,早期的bootloader,功能单一

  GRUB: GRand Unified Bootloader, CentOS 5,6 GRUB 0.97: GRUB Legacy, CentOS 7 以后使 用GRUB 2.02

GRUB 启动阶段

  primary boot loader :

  1st stage:MBR的前446个字节

  1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统

secondary boot loader :2nd stage,分区文件/boot/grub/

3)加载kernel

kernel 自身初始化过程

  1. 探测可识别到的所有硬件设备

  2. 加载硬件驱动程序(借助于ramdisk加载驱动)

  3. 以只读方式挂载根文件系统

  4. 运行用户空间的第一个应用程序:/sbin/init

Linux内核特点:

  支持模块化:.ko(内核对象),如:文件系统,硬件驱动,网络协议等

  支持内核模块的动态装载和卸载

内核组成部分:

核心文件:/boot/vmlinuz-VERSION-release

  ramdisk:辅助的伪根系统,加载相应的硬件驱动,ramdisk --> ramfs 提高速度

  CentOS 5 /boot/initrd-VERSION-release.img

  CentOS 6 以后版本 /boot/initramfs-VERSION-release.img

模块文件:/lib/modules/VERSION-release

4)init初始化

1.运行级别:为系统运行或维护等目的而设定;0-6:7个级别,一般使用3, 5做为默认级别

2.初始化脚本 sysinit

(1) 设置主机名

(2) 设置欢迎信息

(3) 激活udev和selinux

(4) 挂载/etc/fstab文件中定义的文件系统

(5) 检测根文件系统,并以读写方式重新挂载根文件系统

(6) 设置系统时钟

(7) 激活swap设备

(8) 根据/etc/sysctl.conf文件设置内核参数

(9) 激活lvm及software raid设备

(10)加载额外设备的驱动程序

(11)清理操作

3)服务管理

4)开机启动文件 rc.local

5.写Linux内核编译安装博客

1)提前准备安装软件包

[root@centos8 ~]#yum -y install gcc make ncurses-devel flex bison openssl-devel elfutils-libelf-devel perl perl-devel

2)修改配置

[root@centos8 ~]#tar xf linux-5.4.13.tar.xz -C /usr/local/src
[root@centos8 ~]#cd /usr/local/src
[root@centos8 src]# cd linux-5.11.15/
[root@centos8 linux-5.11.15]#cp /boot/config-4.18.0-348.el8.x86_64 .config
[root@centos8 linux-5.11.15]##vim .config
#修改下面三行
# CONFIG_MODULE_SIG=y #注释此行
CONFIG_SYSTEM_TRUSTED_KEYS="" #修改此行
# CONFIG_DEBUG_INFO_BTF=y #linux-5.8.5版本后需要注释此行

3)配置选项

[root@centos8 linux-5.11.15]# make menuconfig

4)开始安装

[root@centos8 linux-5.11.15]#make -j 2
[root@centos8 linux-5.11.15]#make modules_install
[root@centos8 linux-5.11.15]# make install
sh ./arch/x86/boot/install.sh 5.11.15-zmy-linux arch/x86/boot/bzImage \
System.map "/boot"

6. 总结5个自我觉得比较有用的awk的使用场景,比如在什么情况下用awk处理文本效率最高,发散题,至少写1个。"

1)取出分区利用率

[root@centos8 ~]# df | awk '{print $1,$5}'
Filesystem Use%
devtmpfs 0%
tmpfs 0%
tmpfs 1%
tmpfs 0%
/dev/nvme0n1p1 11%
/dev/nvme0n1p2 1%
/dev/nvme0n1p5 16%
tmpfs 0%

2)取出用户和组

[root@centos8 ~]# awk -F: '{print $1,$5}' /etc/passwd
root root
bin bin
daemon daemon
adm adm
lp lp
sync sync
shutdown shutdown
halt halt
mail mail
operator operator
games games
ftp FTP User
nobody Kernel Overflow User
dbus System message bus
systemd-coredump systemd Core Dumper
systemd-resolve systemd Resolver
tss Account used for TPM access
polkitd User for polkitd
unbound Unbound DNS resolver
sssd User for sssd
sshd Privilege-separated SSH
zhang zhang
apache Apache

第四周作业-N67044-张铭扬的更多相关文章

  1. 20169212《Linux内核原理与分析》第四周作业

    Linux第四周作业 1. 堆栈知识 首先回顾了下堆栈相关的知识,堆栈机制是高级语言可以运行的一个基础,这一块需要重点掌握.函数发生调用时,如图 call指令:将eip的按顺序执行的下一条指令(因为在 ...

  2. 2019年春季学期第四周作业Compile Summarize

    这个作业属于哪个课程 C语言程序设计一 这个作业要求在哪里 2019春季学期第四周作业 我的课程目标 重新学习有关数组的问题 这个作业在哪个具体方面帮助我实现目标 对于置换有了新的见解 参考文献 中国 ...

  3. 2018-2019-1 20189221《Linux内核原理与分析》第四周作业

    2018-2019-1 20189221<Linux内核原理与分析>第四周作业 教材学习:<庖丁解牛Linux内核分析> 第 3 章 MenuOS的构造 计算机三大法宝:存储程 ...

  4. 20169211《Linux内核原理与分析》第四周作业

    20169211<Linux内核原理与分析>第四周作业内容列表 1.教材第3.5章节知识学习总结: 2.实验楼配套实验二实验报告: 1.<linux内核设计与实现>教材第3.5 ...

  5. 2019-2020-1 20199329《Linux内核原理与分析》第四周作业

    <Linux内核原理与分析>第四周作业 一.上周问题总结: 虚拟机环境缺少部分库文件 书本知识使用不够熟练 二.本周学习内容: 1.实验楼环境使用gdb跟踪调试内核 1.1 在该环境下输入 ...

  6. 2019-2020-1 20199328《Linux内核原理与分析》第四周作业

    <Linux内核原理与分析>第四周作业 步骤一 首先我们指定一个内核并指定内存根文件系统,这里的bzImage是vmLinux经过gzip压缩的内核,"b"表示&quo ...

  7. 2003031121-浦娟-python数据分析第四周作业-第二次作业

    项目 内容 课程班级博客链接 20级数据班(本) 作业链接 Python第四周作业第二次作业 博客名称 2003031121-浦娟-python数据分析第四周作业-matolotlib的应用 要求 每 ...

  8. 1903021121—刘明伟—Java第四周作业—java分支语句学习

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第四周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果). 扩展阅 ...

  9. C语言--第四周作业评分和总结(5班)

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1129 一.评分要求 要求1 完成PTA第四周所有题(20分). 要求2 4道 ...

  10. 普林斯顿算法课第四周作业_8Puzzle

    作业地址:http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html 作业难点: 1.如何求一个Puzzle的解? 根据作业提示,使 ...

随机推荐

  1. linux硬盘分区挂载

    这里使用手动挂载方式,还有其他挂载方式请百度 检查网站的磁盘状态,确认是否有没有分区的磁盘. fdisk -l 如图所示,这个服务器有两个硬盘第一个299.0G,第二个20000.0G.这种情况说明硬 ...

  2. SQLSERVER 的复合索引和包含索引到底有啥区别?

    一:背景 1. 讲故事 在 SQLSERVER 中有非常多的索引,比如:聚集索引,非聚集索引,唯一索引,复合索引,Include索引,交叉索引,连接索引,奇葩索引等等,当索引多了之后很容易傻傻的分不清 ...

  3. [深度探索C++对象模型]memcpy和memset注意事项

    不管使用memcpy()还是memset(),都只有在"classes不含任何由编译器产生的内部members"时才能运行.如果这个类声明一个或者一个以上的virtual func ...

  4. 线性构造treap

    数据结构 线性构造treap treap的线性构造可以使复杂度锐减到\(O(n)\),很优秀 treap的本质就是小根堆+二叉搜索树,即保证val满足搜索树的同时,维护rad的小根堆. 现在我们先把数 ...

  5. 【ASP.NET Core】按用户角色授权

    上次老周和大伙伴们分享了有关按用户Level授权的技巧,本文咱们聊聊以用户角色来授权的事. 按用户角色授权其实更好弄,毕竟这个功能是内部集成的,多数场景下我们不需要扩展,不用自己写处理代码.从功能语义 ...

  6. windows安装wordcloud遇到的坑汇总

    pip install wordcloud报错,缺少visual studio包 不要偷懒,一定要从报错的地方去下载完整版本 然后安装c++ 重启后就不会报错了

  7. vscode配置rust开发

    需要安装的插件 设置为idea开发的快捷键 设置code fmt为rust

  8. 通过一个示例形象地理解C# async await 非并行异步、并行异步、并行异步的并发量控制

    前言 接上一篇 通过一个示例形象地理解C# async await异步 我在 .NET与大数据 中吐槽前同事在双层循环体中(肯定是单线程了)频繁请求es,导致接口的总耗时很长.这不能怪前同事,确实难写 ...

  9. 【C++ 泛型编程01:模板】函数模板与类模板

    [模板] 除了OOP外,C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 函数模板 函数模板作用 建立一个通用函数,其函数返回值类型和形参类型可以 ...

  10. 聊聊JUC包下的底层支撑类-AbstractQueuedSynchronizer(AQS)

    聊聊JUC包下的底层支撑类-AbstractQueuedSynchronizer(AQS) juc包下的一堆并发工具类是我们日常开发特别是面试中常被拿来问的八股文之一,为了工作也好,为了面试也罢,今天 ...