第四周作业

1. 自定义写出10个定时任务的示例:

          • /command #每分钟执行一次任务
            0,30 * * * * /command #每30分钟执行一次任务
            30 3 * * * /command #每天3点30执行一次任务
            5,40 * * * * /command #每小时的5,40分钟时执行任务
            0 3 * * 3 /command #每周三3点执行任务
            0 8,11 15 * * /command #每月15日上午8点和11点执行任务
            0 8 */2 * * /command #每各2天的8点执行一次任务
            0 8 5,10,15 * * /command #每月的5日10日15日上午8点执行一次任务
            0 8 5 * 6 /command #每月5日和每周6上午8点执行一次任务
            0 5-18 * * * /command #每天早上5点到下午6点每小时执行一次任务

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

进程概念:

进程.jpg

“进程”是正在运行中的程序所产生的副本,是被载入内存的一个指令合集,是资源分配的单位,简单来说,进程就是一个正在运行的程序。
“进程”一般是由程序、数据集合和进程控制这三部分组成。

内存概念

1.内存是CPU能直接寻址的储存空间,由半导体器件制成。
2.内存的特点是存取速率块。

内存的作用:

1.暂时存放CPU的运算数据。
2.硬盘等外部储存器交换的数据。
3.保障CPU计算的稳定性和高性能。

进程和内存的关系和进程相应的状态:

未命名文件.jpg

进程状态:

创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配,如资源无法满足,就无法被调度运行,把此时的进程所处的状态称为创建状态;
就绪状态:当进程已分配到除CPU以外所有必要的资源后,只要能再分配到CPU就可以立即运行;
执行状态:进程处于就绪状态被调度后,进程进入执行状态;
阻塞状态:正在执行的进程由于某种事件(如:I/O请求,申请缓存失败等等事件)而展示无法运行,进程受到阻塞。在满足请求时进入就绪状态等待调用;
终止状态:进程结束,或出现错误,又或被系统终止,进入终止状态。无法再执行。
运行态:running
就绪态:ready
睡眠态:可中断:interruptable
不可中断:uninteruptable
停止态:stopped ,暂停于内存,但是不会被调度,除非手动启动
僵尸态:zombie,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵尸态的子进程。

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

CentOS 6

centos6启动流程.jpg

CentOS 7

CentOS7启动流程.jpg

4. 自定义一个systemd服务定时去其他服务器上检查/tmp/下文件的个数,如果发现数量有变化就记录变化情况到文件中。

创建远程监控10.0.0.140机器上的/tmp 下的文件数量shell脚本(基于KYE免密登录)

  [root@xyjroot ~]# cat check-tmp.sh 
#!/bin/bash

server="10.0.0.140"

file=$(ssh $server "ls -l /tmp |wc -l ")         #基于KEY

   echo "$(date) 文件数量:$file" >> /root/cheak.txt

创建systemd服务脚本

[root@xyjroot /lib/systemd/system]# cat checktmp.service

[Unit]
Description=Check 10.0.0.140 tmp changes
[Service]
TimeoutStartSec=0
Type=simple
ExecStart=/bin/sh -c "while true; do /root/check-tmp.sh; sleep 60; done"
ExecStop=/bin/kill -s QUIT ${MAINPID}
[Install]
WantedBy=multi-user.target
[root@xyjroot /lib/systemd/system]# systemctl daemon-reload
[root@xyjroot /lib/systemd/system]# systemctl start checktmp
[root@xyjroot /lib/systemd/system]# systemctl status checktmp
● checktmp.service - Check 10.0.0.140 tmp changes
   Loaded: loaded (/usr/lib/systemd/system/checktmp.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-09-02 21:32:05 CST; 2s ago
 Main PID: 3891 (sh)
    Tasks: 2 (limit: 10944)
   Memory: 572.0K
   CGroup: /system.slice/checktmp.service
           ├─3891 /bin/sh -c while true; do /root/check-tmp.sh; sleep 60; done  #每一分钟监测一次
           └─3898 sleep 60

9月 02 21:32:05 xyjroot systemd[1]: Started Check 10.0.0.140 tmp changes.

查看相应文件数量导出到的文件

[root@xyjroot ~]# cat cheak.txt

2023年 09月 02日 星期六 20:32:26 CST 文件数量:4
2023年 09月 02日 星期六 21:32:05 CST 文件数量:4
2023年 09月 02日 星期六 21:33:05 CST 文件数量:4
2023年 09月 02日 星期六 21:34:05 CST 文件数量:4
2023年 09月 02日 星期六 21:35:05 CST 文件数量:4
2023年 09月 02日 星期六 21:36:06 CST 文件数量:4
2023年 09月 02日 星期六 21:37:06 CST 文件数量:4
2023年 09月 02日 星期六 21:38:06 CST 文件数量:4
2023年 09月 02日 星期六 21:39:06 CST 文件数量:4
2023年 09月 02日 星期六 21:40:06 CST 文件数量:4
2023年 09月 02日 星期六 21:41:07 CST 文件数量:4

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

[root@xyjroot ~]# uname -r
4.18.0-477.15.1.el8_8.x86_64

1.安装Development Tools 开发包组

[root@xyjroot ~]# yum -y groupinstall "Development Tools"

2.下载稳定版本内核

screenshot20230903.png

3将下载的内核文件拷贝到linux指定文件路径然后解压

[root@xyjroot /usr/local/src]# rz -E
rz waiting to receive.
[root@xyjroot /usr/local/src]# ls
httpd-2.4.57  httpd-2.4.57.tar.bz2  linux-6.4.14.tar.xz  tree-2.1.1  tree-2.1.1.tgz
[root@xyjroot /usr/local/src]# tar -xf linux-6.4.14.tar.xz
[root@xyjroot /usr/local/src]# ll
总用量 141980
drwxr-xr-x 14  501 games      4096 8月   3 13:50 httpd-2.4.57
-rw-r--r--  1 root root    7457022 4月   6 22:46 httpd-2.4.57.tar.bz2
drwxrwxr-x 26 root root       4096 9月   2 15:14 linux-6.4.14
-rw-r--r--  1 root root  137851916 9月   3 12:20 linux-6.4.14.tar.xz
drwxr-xr-x  3 root root       4096 8月   3 11:59 tree-2.1.1
-rw-r--r--  1 root root      60515 6月   1 04:18 tree-2.1.1.tgz

4.从/boot 目录下复制.config文件,后开始编译安装

[root@xyjroot /boot]# cp /boot/config-4.18.0-477.10.1.el8_8.x86_64 /usr/local/src/linux-6.4.14
[root@xyjroot /usr/local/src/linux-6.4.14]# ls
[root@xyjroot /usr/local/src/linux-6.4.14]# vim .config
#修改下面三行
# CONFIG_MODULE_SIG=y #注释此行
CONFIG_SYSTEM_TRUSTED_KEYS="" #修改此行
# CONFIG_DEBUG_INFO_BTF=y    
[root@xyjroot /usr/local/src/linux-6.4.14]# make menuconfig
*
* Unable to find the ncurses package.
* Install ncurses (ncurses-devel or libncurses-dev
* depending on your distribution).
*
* You may also need to install pkg-config to find the
* ncurses installed in a non-default location.
*
make[1]: *** [scripts/kconfig/Makefile:215:scripts/kconfig/mconf-libs] 错误 1
make: *** [Makefile:692:menuconfig] 错误 2
[root@xyjroot /usr/local/src/linux-6.4.14]# yum -y install ncurses-devel
[root@xyjroot /usr/local/src/linux-6.4.14]# make menuconfig
  HOSTCC  scripts/kconfig/mconf.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTLD  scripts/kconfig/mconf
.config:588:warning: symbol value 'm' invalid for I8K
.config:3096:warning: symbol value 'm' invalid for ISDN_CAPI
.config:6316:warning: symbol value 'm' invalid for VFIO_VIRQFD
No change to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

进入编译界面!!!(完全不会)

5.开始编译

[root@xyjroot /usr/local/src/linux-6.4.14]make -j4

6查看/lib/modules目录并安装模块

[root@xyjroot /usr/local/src/linux-6.4.14]# ls /lib/modules
4.18.0-477.10.1.el8_8.x86_64  4.18.0-477.15.1.el8_8.x86_64
[root@xyjroot /usr/local/src/linux-6.4.14]# make modules_install

安装模块完成后

[root@xyjroot /usr/local/src/linux-6.4.14]# ls /lib/modules
4.18.0-477.10.1.el8_8.x86_64  4.18.0-477.15.1.el8_8.x86_64  6.4.14

7安装

[root@xyjroot /usr/local/src/linux-6.4.14]# make install
  INSTALL /boot

 *** Missing file: arch/x86/boot/bzImage
 *** You need to run "make" before "make install".       这里提示先运行make 

make: *** [arch/x86/Makefile:292:install] 错误 1
[root@xyjroot /usr/local/src/linux-6.4.14]# make
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  CHK     kernel/kheaders_data.tar.xz

make install

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

1.提取指定列数据

[root@xyjroot ~]# df
文件系统                1K-块    已用      可用 已用% 挂载点
devtmpfs               875584       0    875584    0% /dev
tmpfs                  894608       0    894608    0% /dev/shm
tmpfs                  894608    8900    885708    1% /run
tmpfs                  894608       0    894608    0% /sys/fs/cgroup
/dev/mapper/rl-root  73364480 2987292  70377188    5% /
/dev/nvme0n1p1        1038336  295264    743072   29% /boot
/dev/mapper/rl-home 133079564  960896 132118668    1% /home
tmpfs                  178920       0    178920    0% /run/user/0
[root@xyjroot ~]# df | awk '{print $5}'
已用%
0%
0%
1%
0%
5%
29%
1%
0%

2.文本运算

[root@xyjroot ~]# awk 'BEGIN{i=0;print i++,i}'
0 1
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 自定义写出10个定时任务的示例:比如每周三凌晨三点执行data命令要求尽量的覆盖各种场景 图文并茂说明Linux进...
    肝运维阅读 54评论 0 0
  • 1、描述GPT是什么,该怎么使用 GPT(GUID Partition Table):是一个较新的分区机制,解决了...
    wbyyy阅读 722评论 2 1
  • 1、自建yum仓库,分别为网络源和本地源 CentOS本地光盘源配置 cd /etc/yum.repos.d/mk...
    布格雷斯阅读 188评论 0 0
  • 1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来...
    网络小孩阅读 163评论 0 0
  • 1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来...
    Easy_8195阅读 299评论 0 0