任务管理
什么是任务管理
在系统运维过程中,可能需要在某人预设的时间执行特定任务
比如定时发送邮件、备份并清空日志文件等任务
任务的内容可以看作是一系列命令或者一个脚本,我们则需要在特定时间去执行它
任务管理的类型
计划执行,在特定时间运行一次:at
定期执行,按周期执行多次:cron
at
at命令可以指定Linux在特定时刻运行脚本
atd是at的守护进程,在系统启动时就会以后台模式运行
atd进程会定期检查系统上的/var/spool/at目录,获取通过at命令写入的任务
systemctl status atd #状态
安装并启动:
yum install -y at
systemctl start at
at 命令
设置时间-绝对计时
设置时间-相对计时
执行权限
cron
cron运行机制
crontab命令
crontab 文件
例:每周一上午8:00执行命令
00 08 * * 1 commands
例:晚上11点到早上8点之间每两个小时,在/tmp/tet.txt文件中加入sleep)文本,在 crontab文件中对应的行如下:
- 23-8/2 * * * echo"sleepy" >> /tmp/test.txt
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件。此用户的cron信息者都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e来编辑。用户也可以另外建立一个文件,使用“cron文件名”命令导入cron设置
cron启动后,每过一分钟读一次crontab文件,检查是否要执行里面的命令。因此该 文件被修改后不需要重新启动cron服务
编辑配置文件
cron 服务每分钟不仅要读一次/var/spool/cron 内的所有文件,还需要读一次/etc/crontab
使用 crontab 配置是针对某个用户的,而编辑/etc/crontab 是针对系统的任务
网络管理
概念
设备
主机内的网卡
广播地址
到达本网段上所有主机的地址
接口
为使用设备,驱动程序在设备上创建了接口
子网掩码
将IP地址划分成网络地址和主机地址两部分的掩码
路由
IP 包跨网段访时候的下一跳地址
链路
设备到网络的连接
ip a 等同于 ip addr #查看设备,包含没有配置的网络设备
网卡设备配置文件
网络设备认的配置路径:/etc/sysconfig/network-scripts/
配置文件:ifcfg-*
ls -l /etc/sysconfig/network-scripts/
修改配置文件
使用编辑器直接修改配置文件,修改前做好备份
配置修改后不会立即生效,需要重启 NetworkManger 服务进程或者重启系统
systemctl reload NetworkManager
显示套接字信息
使用ss命令香看套接字统计信息
ss -ta
NetworkManager
NetworkManager是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态
通过命令行工具 nmcli 可以控制 NetworkManager,nmcli 全面,强大且复杂
关键概念
设备:网络中,设备即网络接口;
连接:连接是供设备使用的配置;
同一个设备可能存在多个连接,但一次只能有一个保持活动状态
nmcli
nmcli connection show --active
显示单个连接的详细信息:ncmcli con show“连接名”,与ip link命令相似
显示设备状态,使用:ncmcli dev status
显示设备信息,使用:ncmcli dev show[设备名」
通过 nmcli 创建连接
查看 nmcli connection show
创建 nmcli connection add con-name ‘Demo’ type Ethernet ifname en p4s0
启动/激活 nmcli connection up ‘Demo’
通过 nmcli 修改连接
查看详情 nmcli connection show ‘Demo’
以修改 DNS 服务器为例 nmcli connection modify ‘Demo’ ipv4.dns 192.168.100.250
配置参数可以增加或删除值,在参数前使用+/-符号,如:添加辅助DNS服务器
nmcli con mod “Euler” +ipv4.dns 114.114.114.114
修改完成后需要up 活动中的连接,使之生效:
nmcli con up“Euler’
路由
路由(Routing)
要让不同子网的两台主机能够相互通讯,就需要看一种能够描述如何从一台主机至到另一台主机的机制,这一机制称为:路由选择(Routing),路由选择通过路由项进行描述
路由项是一对预先定义的地址,包括:目的地(Destination)和网关(Gateway)
路由项的含义是通过网关能够完成与自的地的通讯;路由表是多人路由项的集合
route
查看 route -n
新增路由
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
route add -net 192.168.101.0 netmask 255.255.255.0 dev enp4s0
route add -host 192.168.100.10 dev enp4s0
删除路由
route del [-net]-host] [netmask Nm] [gw Gw] [[dev] If]
route del -host 192.168.100.10 dev enp4s0
nmcli配置静态路由
使用nmcli命令为网络连接配置静态路由,如下:
nmcli connection modify enp3s0 +ipv4.routes “192.168.122.0/24 10.10.10.1”
使用编辑器配置静态路由,使用交互式命令如下:
nmcli con edit type ethernet con-name enp3s0
主机名
主机名是一个局域网中唯一标识一台机器的名称;这台机器不一定是一台物理机器,也可以是一台虚拟机
cat /etc/hostname
设置主机名
临时设置主机名(直到下次重启前有效):hostname new-name
永久设置主机名:hostnamectl set-hostname new-name
通过修改文件设置主机名:在/etc/hostname 文件中写入new-name
echo “new-name” > /etc/hostname
hosts 文件
局域网中存在着一些主机,我们可以通过IP地址去访问它们;随看局域网中主机数量增加,P地址较难记忆,我们希望通过主机名直接访问其他主机;这时我们可以通过一张记录着主机名和IP地址的表找到这些主机,这张表就是 hosts
cat /etc/hosts
hosts 与 DNS
随着网络中主机数量的增加,单人hosts文件难以承载众多的映射关系。
当在 hosts 中找不到域名对应的 IP 时,主机会将域名提交给域名解析服务器(DNS),然后DNS返回IP给主机,这人过程称为:域名解析
DNS就像是一人个公共的hosts文件/分布式数据库
查询DNS记录
nslookup exam.openEuler.com
进程管理
进程介绍
进程(Process)是计算机中已运行程序的实体,是程序的一个具体实现
每人Linux 进程在被创建的时候,都被分配给一段内存空间,即系统给该进程分配一定的逻辑地址空间
进程的生命周期
每入进程都有一个唯一的进程D(PID),用于追踪该进程
任何进程都可以通过复制自己地址空间的方式(fork)创建子进程,子进程中记录看父进程的ID(PPID)
第一个系统进程是systemd,其他所有进程都是其后代
进程的状态
运行状态(TASKRUNNING)
是运行态和就绪态的合并,表示进程正在运行或准备运行,LinuX中使用TASKRUNNING宏表示此状态
可中断睡眠状态(浅度睡眠)(TASKINTERRUPTIBLE)
进程正在睡眠(被阻塞),等待资源到来是唤醒,也可以通过其他进程信号或时中断唤醒,进入运行队列。Linux 使用TASK INTERRUPTIBLE宏表示此状态
不可中断睡眠状态(深度睡眠状态)(TASKUNINTERRUPTIBLE)
其和浅度睡眠基本类似,但有一点就是不可被其他进程信号或时钟中断唤醒。Linux使用TASK_UNINTERRUPTIBLE宏表示此状态
暂停状态(TASKSTOPPED)
进程暂停执行接受某种处理。如正在接受调试的进程处于这种状态,Linux使用TASK STOPPED宏表示此状态
量死状态(TASK ZOMBIE)
进程已经结束但未释放PCB,Linux使用
TASKZOMBIE宏表示此状态
进程的优先级
进程的CPU资源(时间片)分配就是指进程的优先级(priority)
优先级高的进程有优先执行权利
配置进程的优先级对多任务环境下的Linux很有用,可以改普系统性能
使用ps命令查看进程 ps -l
进程优先级由动态优先级(PRI)和静态优先级(PR)决定,它是决定进程在CPU中行顺序的数字。优先级越高的进程被处理器执行的机会越大
根据进程的行为,内核使用启发式算法决定开启或关闭动态优先级。以通过nice级别直接修改进程的静态优先级,拥有越高静态优先级的进程会获得更长的时片(间片是进程在处理器中的执行时间)
Linux支持的nice级别从19(最低优先级)到-20(最高优先级),默认只是0。只有root身份的用户才能把进程的nice级别调整为负数(让其具备较高优先级)
调整进程的优先级
nice命令语法,优先序(adjustment取值范围-19 ~ 20): nice [-n adjustment] [command [arg…]]
例如,将vi运行的优先级设置为-18: nice -n -18 vi &
renice命令语法,优先序范围同nice,作用对象有程序群组-g、进程-p、用户-u,语法格式: renice [-n adjustment] [-]
例如,将vi运行的优先级设置为12 : renice -n 12 -p 9700
查看nice说明:nice-help ;查看 renice说明: renice-h
也可以使用top更改进程的NI值: 进入top后按“r"->输入进程PID->输入nice值
前台与后台进程
后台进程几乎不和用户交互,优先级略低
Linux的守护进程(Daemon)是一种特殊的后台进程,其独立于终端并周期性地执行任务或等待唤醒
前台进程和用户交互,需要较高的响应速度,优先级较高
前台进程就是用户使用的有控制终端的进程
守护的意思就是不受终端控制。
Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等
守护进程一般用作系统服务,可以用crotab提交,编辑或者删除相应得作业
Daemon进程也就是守护进程,linux大多数的服务进程都是通过守护进程实现的。比如0号进程调度进程),1号进程(进程)。机器启动后就运行,关机才停止
控制前台与后台进程
&:将&放在命令的最后,可以把这个命令放到后台执行
Ctrl+z:当前台正在执行一个命令时,按键Ctrl+z,将其放到后台并暂停
Ctrl+c:中断当前正在执行的命令
jobs:查看当前有多少正在后台运行的命令
fg:将后台中的命令调至前台继续运行
bg:将后台任务唤醒,并在后台运行
常用 ps aux或 bs-ef 查看进程信息
管理进程
当前用户必须是进程的属主或root用户
kill通过PID向进程发信号,默认发送TERM信号,使用-S参数指定其他信号: #kill 3389 ; #kill-s HUP 3389
killall通过进程名向进程发信号,且支持通配符,例 #killall python*