文章目录1.核心知识点 Markdown一、软件管理1. 源码安装三步固定流程2. 自建 YUM 仓库核心要点二、计划任务高频考点1. at 一次性任务2. crond 周期性定时任务重中之重三、进程调度易混淆大题考点1. 非实时调度 SCHED_OTHER (TS) Linux 默认2. 实时调度 SCHED_FIFO / SCHED_RR仅 root 有权限操作2.实操一、源码编译安装 Nginx二、源码安装 cmatrix 代码雨工具三、自建 YUM 本地仓库服务端操作客户端操作四、一次性计划任务 at依赖 atd 服务五、周期性定时任务 crontab高频考点六、进程调度 nice renice chrt6.1 非实时进程 nice/renice6.2 实时进程 chrt仅 root 可用6.2 实时进程 chrt仅 root 可用1.核心知识点 Markdown一、软件管理1. 源码安装三步固定流程bash./configure → make → make install--prefix指定软件自定义安装路径export PATH临时环境变量仅当前终端生效写入~/.bashrc永久生效源码部署软件需手动编写systemd服务文件新增 / 修改服务配置后必须执行bashsystemctl daemon-reload2. 自建 YUM 仓库核心要点仓库服务端createrepo扫描 rpm 目录生成仓库元数据 repodataNginx 发布仓库目录配置autoindex on开启文件目录浏览客户端 repo 配置四大核心参数name仓库名称描述baseurl仓库访问地址enabled1启用该仓库gpgcheck0关闭签名校验本地仓库必加同步远端完整仓库reposync拉取全部 rpm 包再执行createrepo生成本地索引二、计划任务高频考点1. at 一次性任务依赖后台服务atd需保证服务正常运行使用at 时间进入交互式编辑任务CtrlD结束输入管理命令atq / at -l查看待执行任务atrm / at -d删除指定任务用户权限管控文件/etc/at.allow白名单、/etc/at.deny黑名单2. crond 周期性定时任务重中之重任务标准格式分 时 日 月 周 执行命令通配符说明*x-y范围x,y列表*/x间隔用户级定时crontabcrontab -e编辑当前用户定时保存自动加载无需重载服务直接修改/var/spool/cron/用户名、/etc/cron.d文件必须执行systemctl reload crond配套指令crontab -l查看、crontab -r清空、crontab -u 用户名管理其他用户任务系统级定时/etc/crontab比用户定时多一列「执行用户」字段/etc/anacrontab开机补跑关机期间错过的日 / 周 / 月定时任务三、进程调度易混淆大题考点1. 非实时调度 SCHED_OTHER (TS) Linux 默认nice 取值范围-20最高优先级 ~ 19最低优先级数值越大 CPU 抢占能力越弱nice启动进程时直接设置 nice 值renice修改正在运行进程的 nice权限限制普通用户仅能调高 niceroot 可任意修改正负 nice2. 实时调度 SCHED_FIFO / SCHED_RR仅 root 有权限操作实时优先级区间1 ~ 99数字越大优先级越高优先级规则所有实时进程优先级 全部普通 nice 进程专属管理命令chrt无法调整普通进程 nice 值chrt -m查看全系统调度策略优先级范围chrt --pid修改已运行进程调度策略chrt -o切换回 SCHED_OTHER 普通分时调度查看调度信息专用指令bashps -o pid,cls,rtprio普通非实时进程RTPRIO列显示-2.实操一、源码编译安装 Nginxbash# 安装编译nginx所需依赖包gcc编译器、make编译工具、pcre正则库、zlib压缩库 [rootcentos7 ~]# yum install gcc make pcre-devel zlib-devel # 官网下载nginx源码压缩包 [rootcentos7 ~]# wget https://nginx.org/download/nginx-1.24.0.tar.gz # 解压源码包不创建多余目录层级 [rootcentos7 ~]# tar -xf nginx-1.24.0.tar.gz # 进入解压后的源码目录 [rootcentos7 ~]# cd nginx-1.24.0/ # ★重点考点源码安装第一步configure--prefix 指定软件安装根目录 [rootcentos7 nginx-1.24.0]# ./configure --prefix/usr/local/nginx # ★重点考点第二步编译、第三步安装合并执行 make make install [rootcentos7 nginx-1.24.0]# make make install # 查看nginx安装目录下生成的文件夹conf配置、html网站根目录、logs日志、sbin程序 [rootcentos7 ~]# ls /usr/local/nginx/ conf html logs sbin # 临时配置环境变量仅当前终端生效可直接执行nginx命令 [rootcentos7 nginx-1.24.0]# export PATH$PATH:/usr/local/nginx/sbin/ # ★重点考点写入.bashrc实现环境变量永久生效 [rootcentos7 nginx-1.24.0]# echo export PATH$PATH:/usr/local/nginx/sbin/ ~/.bashrc # 启动nginx服务 [rootcentos7 ~]# nginx # curl访问本地80端口过滤nginx欢迎字符验证服务正常运行 [rootcentos7 ~]# curl -s http://localhost | grep Thank pemThank you for using nginx./em/p # 优雅停止nginx等待现有请求处理完成再关闭进程 [rootcentos7 ~]# nginx -s quit # 复制sshd的systemd服务文件作为模板修改为nginx服务 [rootcentos7 ~]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/nginx.service [rootcentos7 ~]# vim /etc/systemd/system/nginx.servicenginx.service 配置文件ini[Unit] DescriptionNginx server daemon [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/local/nginx/sbin/nginx -s quit [Install] WantedBymulti-user.targetbash# ★重点考点新增/修改systemd服务文件后必须重载systemd管理器 [rootcentos7 ~]# systemctl daemon-reload # ★重点考点--now 参数同时实现开机自启 立即启动服务 [rootcentos7 ~]# systemctl enable nginx.service --now二、源码安装 cmatrix 代码雨工具bash# 安装编译依赖gcc编译工具、autoconf自动配置工具、ncurses终端字符图形库 [rootcentos7 ~]# yum -y install gcc make autoconf ncurses-devel # 从本地课堂服务器下载cmatrix源码包 [rootcentos7 ~]# wget http://192.168.50.200/class/course-materials/softwares/stage01/cmatrix-1.2.tar.gz # 解压源码包 [rootcentos7 ~]# tar -xf cmatrix-1.2.tar.gz # 进入源码目录 [rootcentos7 ~]# cd cmatrix-1.2/ # ★重点考点configure指定自定义安装路径 [rootcentos7 cmatrix-1.2]# ./configure --prefix/usr/local/cmatrix # ★重点考点编译安装组合命令 [rootcentos7 cmatrix-1.2]# make make install # 临时添加程序目录到环境变量 [rootcentos7 ~]# export PATH$PATH:/usr/local/cmatrix/bin # 查看cmatrix所有参数帮助文档 [rootcentos7 ~]# cmatrix --help # 直接运行代码雨默认效果 [rootcentos7 ~]# cmatrix # -b加粗字体-u 3刷新速度-C red指定红色字体 [rootcentos7 ~]# cmatrix -b -u 3 -C red三、自建 YUM 本地仓库服务端操作bash# 创建存放rpm包的目录 [rootserver ~]# mkdir rpms # 进入rpm包目录 [rootserver ~]# cd rpms # ★重点考点--downloadonly 只下载不安装批量下载软件及全部依赖 [rootserver rpms]# yum install --downloadonly --downloaddir . vim open-vm-tools vsftpd lrzsz bash-completion nginx httpd mariadb-server # 创建nginx网站发布目录 [rootserver ~]# mkdir /usr/local/nginx/html/tools # 将所有rpm包移动到网站目录下Packages文件夹 [rootserver ~]# mv rpms /usr/local/nginx/html/tools/Packages # 安装生成仓库索引的工具createrepo [rootserver ~]# yum install -y createrepo # ★重点考点扫描rpm目录生成仓库元数据repodata仓库必备 [rootserver ~]# createrepo /usr/local/nginx/html/tools/ # 编辑nginx主配置文件 [rootserver ~]# vim /usr/local/nginx/conf/nginx.confnginx.conf 片段nginxhttp { # ★重点考点autoindex on 开启目录浏览浏览器可直接列出rpm包 autoindex on; ...... }bash# 重载nginx不中断服务加载新配置 [rootserver ~]# systemctl reload nginx客户端操作bash# 创建旧仓库备份文件夹 [rootclient ~]# mkdir /etc/yum.repos.d/old # 把系统原有repo仓库文件全部移走备份 [rootclient ~]# mv /etc/yum.repos.d/*repo /etc/yum.repos.d/old # ★重点考点自定义repo仓库配置四大核心参数简答题默写 [rootclient ~]# cat EOF /etc/yum.repos.d/tools.repo [tools] namecentos7 tools from server.laoma.cloud baseurlhttp://server.laoma.cloud/tools/ enabled1 gpgcheck0 EOF # 查看客户端仓库文件 [rootclient ~]# ls /etc/yum.repos.d/ old tools.repo # 使用自建仓库安装httpd测试 [rootclient ~]# yum install -y httpd # ★重点考点同步远端仓库所有rpm包到本地 [rootclient ~]# reposync --repoidtools # 同步完成后重新生成本地仓库索引 [rootclient ~]# createrepo tools [rootclient ~]# ls tools/ Packages repodata四、一次性计划任务 at依赖 atd 服务bash# 安装at工具包 [rootcentos7 ~]# yum install at # 查看atd后台服务运行状态 [rootcentos7 ~]# systemctl status atd # 5分钟后执行任务进入交互式输入界面 [rootcentos7 ~]# at now 5 minutes # 任务内容输出文本写入日志文件 at echo hello world /tmp/hello.log # CtrlD结束输入自动生成EOT标记 at EOT # 编写任务脚本 [rootcentos7 ~]# vim myscript.sh #!/bin/bash date /tmp/myscript.log echo hello myscript /tmp/myscript.log # 重定向脚本给at5分钟后执行 [rootcentos7 ~]# at now 5 minutes myscript.sh # -f 指定脚本文件100分钟后执行 [rootcentos7 ~]# at now 100 minutes -f myscript.sh # ★重点考点atq / at -l 两种方式查看待执行任务队列 [rootcentos7 ~]# at -l [rootcentos7 ~]# atq # -q b 指定使用b队列创建任务 [rootcentos7 ~]# at -q b now 5 minutes myscript.sh # 只查看b队列任务 [rootcentos7 ~]# at -l -q b # -c 加任务编号查看任务完整执行脚本 [rootcentos7 ~]# at -c 3 # ★重点考点atrm / at -d 删除指定编号任务 [rootcentos7 ~]# atrm 3五、周期性定时任务 crontab高频考点bash# 自定义编辑器为vim [laomacentos7 ~]$ export EDITORvim # ★重点考点编辑当前用户定时任务保存自动生效无需reload [laomacentos7 ~]$ crontab -e # ★重点考点定时语法分 时 日 月 周 命令 */2 2,6-23 * * * date /tmp/date.log # ★重点考点crontab -l 查看当前用户定时任务 [laomacentos7 ~]$ crontab -l # 实时跟踪日志验证定时任务输出 [laomacentos7 ~]$ tail -f /tmp/date.log # ★重点考点crontab -r 清空当前用户全部定时任务 [laomacentos7 ~]$ crontab -r # root用户 -u 指定laoma管理其他用户定时 [rootcentos7 ~]# crontab -u laoma -e # 从本地文件导入定时任务覆盖原有任务 [laomacentos7 ~]$ crontab mycron # 定时练习脚本 [rootserver ~ 11:16:02]# vim /usr/local/bin/myjob #!/bin/bash md5sum /dev/zero sleep 20 pkill md5sum # ★重点考点脚本必须赋予执行权限才能被cron运行 [rootserver ~ 11:18:23]# chmod x /usr/local/bin/myjob # 编辑定时任务 [rootserver ~ 11:21:22]# crontab -e # 11月奇数日期11-18点每2分钟执行脚本 [rootserver ~ 11:22:35]# crontab -l */2 11-18 */2 11 * /usr/local/bin/myjob # 实时监控cron系统日志 journalctl -f # 实时查看进程占用 top六、进程调度 nice renice chrt6.1 非实时进程 nice/renicebash# 后台运行md5sum消耗CPU默认nice0 [laomacentos7 ~]$ md5sum /dev/zero # $$ 代表当前shell进程PID同时查看shell和md5sum的nice值 [laomacentos7 ~]$ ps -o pid,nice,command $$ 55725 # ★重点考点nice 启动进程时设置优先级默认10 [laomacentos7 ~]$ nice md5sum /dev/zero # 普通用户无法设置负nice权限拒绝 [laomacentos7 ~]$ nice -n -2 md5sum /dev/zero # 普通用户仅能设置正数nice [laomacentos7 ~]$ nice -n 2 md5sum /dev/zero # ★重点考点renice 修改正在运行进程的nice值 [laomacentos7 ~]$ renice -n 2 55782 # 普通用户降低nice提高优先级权限不足 [laomacentos7 ~]$ renice -n -2 55782 # root可任意修改nice为负数 [rootcentos7 ~]# renice -n -2 55782 # 批量杀死所有md5sum进程 [laomacentos7 ~]$ pkill md5sum6.2 实时进程 chrt仅 root 可用bash# ★重点考点-m 查看系统所有调度策略的优先级区间 [rootcentos7 ~]# chrt -m # -r RR调度优先级5后台运行md5sum实时进程 [rootcentos7 ~]# chrt -r 5 md5sum /dev/zero # ★重点考点ps查看调度类型、实时优先级 [rootcentos7 ~]# ps -o pid,cls,rtprio,command 56225 # -f FIFO策略--pid修改已有运行进程 [rootcentos7 ~]# chrt -f --pid 10 56225 # ★重点考点-o 切换回普通非实时SCHED_OTHER调度 [rootcentos7 ~]# chrt -o --pid 0 56225 # 普通进程RTPRIO显示横线- [rootcentos7 ~]# ps -o pid,cls,rtprio,command 56225 centos7 ~]$ pkill md5sum6.2 实时进程 chrt仅 root 可用bash# ★重点考点-m 查看系统所有调度策略的优先级区间 [rootcentos7 ~]# chrt -m # -r RR调度优先级5后台运行md5sum实时进程 [rootcentos7 ~]# chrt -r 5 md5sum /dev/zero # ★重点考点ps查看调度类型、实时优先级 [rootcentos7 ~]# ps -o pid,cls,rtprio,command 56225 # -f FIFO策略--pid修改已有运行进程 [rootcentos7 ~]# chrt -f --pid 10 56225 # ★重点考点-o 切换回普通非实时SCHED_OTHER调度 [rootcentos7 ~]# chrt -o --pid 0 56225 # 普通进程RTPRIO显示横线- [rootcentos7 ~]# ps -o pid,cls,rtprio,command 56225