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í)行一次任務
- /command #每分鐘執(zhí)行一次任務
2. 圖文并茂說明Linux進程和內(nèi)存概念
進程概念:

“進程”是正在運行中的程序所產(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):

進程狀態(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

CentOS 7

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)核

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]make -j4
[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