第四周作業(yè)

1. 自定義寫出10個定時任務的示例:

          • /command #每分鐘執(zhí)行一次任務
            0,30 * * * * /command #每30分鐘執(zhí)行一次任務
            30 3 * * * /command #每天3點30執(zhí)行一次任務
            5,40 * * * * /command #每小時的5,40分鐘時執(zhí)行任務
            0 3 * * 3 /command #每周三3點執(zhí)行任務
            0 8,11 15 * * /command #每月15日上午8點和11點執(zhí)行任務
            0 8 */2 * * /command #每各2天的8點執(zhí)行一次任務
            0 8 5,10,15 * * /command #每月的5日10日15日上午8點執(zhí)行一次任務
            0 8 5 * 6 /command #每月5日和每周6上午8點執(zhí)行一次任務
            0 5-18 * * * /command #每天早上5點到下午6點每小時執(zhí)行一次任務

2. 圖文并茂說明Linux進程和內(nèi)存概念

進程概念:

進程.jpg

“進程”是正在運行中的程序所產(chǎn)生的副本,是被載入內(nèi)存的一個指令合集,是資源分配的單位,簡單來說,進程就是一個正在運行的程序。
“進程”一般是由程序、數(shù)據(jù)集合和進程控制這三部分組成。

內(nèi)存概念

1.內(nèi)存是CPU能直接尋址的儲存空間,由半導體器件制成。
2.內(nèi)存的特點是存取速率塊。

內(nèi)存的作用:

1.暫時存放CPU的運算數(shù)據(jù)。
2.硬盤等外部儲存器交換的數(shù)據(jù)。
3.保障CPU計算的穩(wěn)定性和高性能。

進程和內(nèi)存的關系和進程相應的狀態(tài):

未命名文件.jpg

進程狀態(tài):

創(chuàng)建狀態(tài):進程在創(chuàng)建時需要申請一個空白PCB,向其中填寫控制和管理進程的信息,完成資源分配,如資源無法滿足,就無法被調(diào)度運行,把此時的進程所處的狀態(tài)稱為創(chuàng)建狀態(tài);
就緒狀態(tài):當進程已分配到除CPU以外所有必要的資源后,只要能再分配到CPU就可以立即運行;
執(zhí)行狀態(tài):進程處于就緒狀態(tài)被調(diào)度后,進程進入執(zhí)行狀態(tài);
阻塞狀態(tài):正在執(zhí)行的進程由于某種事件(如:I/O請求,申請緩存失敗等等事件)而展示無法運行,進程受到阻塞。在滿足請求時進入就緒狀態(tài)等待調(diào)用;
終止狀態(tài):進程結束,或出現(xiàn)錯誤,又或被系統(tǒng)終止,進入終止狀態(tài)。無法再執(zhí)行。
運行態(tài):running
就緒態(tài):ready
睡眠態(tài):可中斷:interruptable
不可中斷:uninteruptable
停止態(tài):stopped ,暫停于內(nèi)存,但是不會被調(diào)度,除非手動啟動
僵尸態(tài):zombie,結束進程,父進程結束前,子進程不關閉,殺死父進程可以關閉僵尸態(tài)的子進程。

3. 圖文并茂說明Linux啟動流程

CentOS 6

centos6啟動流程.jpg

CentOS 7

CentOS7啟動流程.jpg

4. 自定義一個systemd服務定時去其他服務器上檢查/tmp/下文件的個數(shù),如果發(fā)現(xiàn)數(shù)量有變化就記錄變化情況到文件中。

創(chuàng)建遠程監(jiān)控10.0.0.140機器上的/tmp 下的文件數(shù)量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) 文件數(shù)量:$file" >> /root/cheak.txt

創(chuàng)建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  #每一分鐘監(jiān)測一次
           └─3898 sleep 60

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

查看相應文件數(shù)量導出到的文件

[root@xyjroot ~]# cat cheak.txt

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

5. 寫Linux內(nèi)核編譯安裝博客

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

1.安裝Development Tools 開發(fā)包組

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

2.下載穩(wěn)定版本內(nèi)核

screenshot20230903.png

3將下載的內(nèi)核文件拷貝到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'.

進入編譯界面!?。。ㄍ耆粫?/h2>

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處理文本效率最高,發(fā)散題,至少寫1個。

1.提取指定列數(shù)據(jù)

[root@xyjroot ~]# df
文件系統(tǒng)                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
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 自定義寫出10個定時任務的示例:比如每周三凌晨三點執(zhí)行data命令要求盡量的覆蓋各種場景 圖文并茂說明Linux進...
    肝運維閱讀 83評論 0 0
  • 1、描述GPT是什么,該怎么使用 GPT(GUID Partition Table):是一個較新的分區(qū)機制,解決了...
    wbyyy閱讀 887評論 2 1
  • 1、自建yum倉庫,分別為網(wǎng)絡源和本地源 CentOS本地光盤源配置 cd /etc/yum.repos.d/mk...
    布格雷斯閱讀 270評論 0 0
  • 1、統(tǒng)計出/etc/passwd文件中其默認shell為非/sbin/nologin的用戶個數(shù),并將用戶都顯示出來...
    網(wǎng)絡小孩閱讀 177評論 0 0
  • 1、統(tǒng)計出/etc/passwd文件中其默認shell為非/sbin/nologin的用戶個數(shù),并將用戶都顯示出來...
    Easy_8195閱讀 314評論 0 0

友情鏈接更多精彩內(nèi)容