第四周学习总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周学习总结相关的知识,希望对你有一定的参考价值。
网络协议和管理
route、netstat、ip、ss、nmcli命令
网络接口配置-bonding
配置文件/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
网桥
用虚拟机创建网桥
nmcli con add con-name mybr0 type bridge con-name br0 ifname br0
nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual
nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0
进程和计划任务
进程(process)
task struct 内核存储进程信息的数据结构格式
task list 多个任务task struct组成的链表
fork();clone()写时复制
进程包含多个线程至少一个
尽可能减少进程切换来提升性能
内存是以页来存储数据:page 4K
MMU 负责转换线性的物理地址
TLB 保存虚拟地址和物理地址映射关系缓存
LRU 近期最少使用算法,释放内存
进程的基本状态:创建、就绪、执行、阻塞、终止状态
运行——>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态
就绪——>运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
运行——>阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求
阻塞——>就绪:进程所等待的事件已经发生,就进入就绪队列
以下两种状态是不可能发生的:
阻塞——>运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取
就绪——>阻塞:就绪态根本就没有执行,谈不上进入阻塞态
系统管理工具:
ps、top、free、vmstat、iostat、pmap、htop(需要epel源安装)、glances(需要epel源安装)、dstat、iotop、nload(需要epel源安装)、lsof命令
计划任务:
at和batch一次性计划任务
1.at队列存放在/var/spool/at目录中
2.依赖与atd服务,需要启动才能实现at任务
3./etc/at.{allow,deny}控制用户是否能执行at任务
白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令
黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny 文件中的使用者则可执行
如果两个文件都不存在,只有 root 可以执行 at 命令
周期性任务计划cron
系统级计划任务(普通用户不能创建)
/etc/crontab系统级计划任务配置文件(不推荐使用)
用户级计划任务
/usr/bin/crontab 用户级计划任务配置文件
crontab
-u 以谁的身份来创建任务(默认为自己)
-e 创建计划任务(会自动生成一个计划任务文件/tmp/crontab.DkTbc7,再创建完成后会自动删除该文件)也能删除计划任务
-r 删除全部计划任务
***再任务中不能使用%,一定要用要需要转义
日志文件/var/log/cron
run-parts file 该命令能使该目录中脚本都运行一遍
推荐写计划任务写入脚本,让计划任务来启动脚本
SHELL脚本编程进阶
for循环(两种格式)
sum=0
for i in {1..100};do
let sum+=i
done
echo sum=$sum
c语言风格
for((i=1;i<=9;i++));do
for((j=1;j<=i;j++));do
echo -e "${j}×${i}=$[j*i] c"
done
echo
done
while循环
sum=0
i=1
while [ $i -le 100 ];do
let sum+=i
let i++
done
echo sum=$sum
while无限循环
N=$[RANDOM%10+1]
while true;do
read -p "guess number [1-10]:" GUESS
if [ "$N" -eq "$GUESS" ];then
echo OK
break
elif [ "$N" -lt "$GUESS" ];then
echo guess bigger
else
echo guess smaller
fi
done
while 特殊用法
while read name;do
useradd $name
echo $name is created
done < student_name.txt
以上是关于第四周学习总结的主要内容,如果未能解决你的问题,请参考以下文章