系统集成07-系统管理
1 任务管理
什么是任务管理?
- 在系统运维过程中,可能需要在某个预设的时间执行特定任务
- 比如定时发送邮件、备份并清空日志文件等任务
- 任务的内容可以看作是一系列命令或者一个脚本,我们则需要在特定时间去执行它
任务管理分为计划执行和定期执行
1.1 计划执行
- at命令可以指定Linux在特定时刻运行脚本
- atd是at的守护进程,在系统启动时就会以后台模式运行
- atd进程会定期检查系统上的/var/spool/at目录,获取通过at命令写入的任务
at命令语法:
at [-V] [-q 队列] [-f 文件名] [-mldbv] 时间
at -c 作业[作业]
绝对计时
at允许使用一套相当复杂的时间指定方法:
- 接受在当天的hh:mm(小时:分钟)式的时间指定;如果该时间已经过去,那么就放存第二天执行
- 使用midnight(深夜)、noon(中午)、teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间
- 采用12小时计时制,即在时间后面加上AM或者PM来说明是上午还是下午
- 指定命令执行的具体日期,指定格式为monthday(月日)或者mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年);指定的日期必须跟在指定时间的后面
相对计时
使用相对计时法,对于安排不久后就要执行的命令较为方便:
- 指定格式为now+counttime-units,now就是当前时间,time-units是时间单位,这里可以是minutes(分钟)、hours(小时)、days(天)、weeks(星期)
- count是时间的数量,究竟是几天,还是几小时等;还有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间
执行权限
- 对于at命令来说,需要定时执行的命令是从标准输入或者使用–f选项指定的文件中读取并执行的
- 如果at命令是从一个使用su命令切换到用户shell中执行的,那么当前用户被认为是执行用户,所有的错误和输出结果都会送给这个用户
- 对于其他用户来说,是否执行某个命令或脚本取决于/etc/at.allow和/etc/at.deny文件
1.2 定期执行
- at命令会在指定时间内完成指定任务,但是只能执一次;系统在指定时间完成任务,以后就不再执行了
- 在很多情况下需要周期性重复执行一些命令,这时候需要使用cron命令来完成任务
cron命令
crontab命令用于安装、删除或者显示用于驱动cron后台进程的表格, 用户把需要执行的命令序列放到crontab文件中以获得执行,而且每个用户都可以有自己的crontab文件
crontab常用命令:
crontab -u #设置某个用户的cron服务,root用户在执行crontab时需要此参数
crontab -l #列出某个用户cron服务的详细内容
crontab -r #删除某个用户的cron服务
crontab -e #编辑某个用户的cron服务
运行机制
- cron会搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,然后将crontab文件装入内存
- cron还将搜索/etc/crontab文件,这个文件(cron时间表)是以特定格式写成的, cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab
- cron启动以后,先检查是否有用户设置了crontab文件,如果没有就转入睡眠状态,释放系统资源;所以该后台进程占用资源极少,之后每分钟被换醒一次,查看当前是否有需要运行的命令
- 使用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务
crontab文件
该文件中每行都包括6个域,其中前5个域是指定命令被执行的时间,最后一个域是要被执行的命令, 除了数字还有几个特殊的符号“*”、“/”和“-”、“,”
时间格式:
minute hour day-of-month month-of-year day-of-week commands
特殊符号:
参数 | 描述 |
---|---|
* | 所有取值范围内的数字 |
/ | 每几个, 比如"*/5"表示每5个时间单位 |
- | 从某个数字到某个数字 |
, | 离散的数字 |
例: 每周一上午8:00执行commands
00 08 * * 1 commands
例: 晚上11点到早上8点之间每两个小时,在/tmp/test.txt文件中加入sleepy文本
* 23-8/2 * * * echo "sleepy" >> /tmp/test.txt
2 网络管理
2.1 网卡配置
openEuler网卡配置文件
网络设备默认的配置文件路径:/etc/sysconfig/network-scripts/ifcfg-*
网卡配置文件参数说明
修改配置文件前需要备份, 修改配置文件后需要重启NetworkManager服务进程或直接重启系统
systemctl reload NetworkManager
网卡最小配置文件示例
TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.100
NETMASK=255.255.255.0
其他命令
-
查看IP地址:
ip addr show enp4s0 #网卡名称为enp4s0
-
显示接口的统计信息:
ip -s link show enp4s0
-
显示套接字信息:
ss [options]
NetworkManager
NetworkManager是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态
通过命令行工具nmcli可以控制NetworkManager,nmcli全面,强大且复杂
nmcil
-
通过nmcli查看网络信息:
nmcli connection show --active
con代表连接,--active选项可以过滤出活动的连接
-
创建连接&启动连接
nmcli connection add con-name 'Demo' type Ethernet ifname enp4s0 #创建名为Demo的连接, 使用DHCP方式通过enp4s0接口连接 nmcli connection up 'Demo' #启动Demo连接
-
修改连接
nmcli con mod [连接名] [修改属性] [属性值]
2.2 路由配置
- 要让不同子网的两台主机能够相互通讯,就需要有一种能够描述如何从一台主机到另一台主机的机制,这一机制称为:路由选择(Routing),路由选择通过路由项进行描述。
- 路由项是一对预先定义的地址,包括:目的地(Destination)和网关(Gateway)。
- 路由项的含义是通过网关能够完成与目的地的通讯;路由表是多个路由项的集合
路由管理与配置
- openEuler中,使用route查看、配置、管理本机路由。
- 除了route命令,ip和nmcli命令也可以用来管理系统路由。
- 这些命令作用于系统中的路由表,系统运行时,路由表加载到内存中,由系统内核进行维护
其他命令
-
查看路由表:
route -n
-
新增路由
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]]
-
删除路由
routedel [-net|-host] [netmask Nm] [gw Gw] [[dev]If]
nmcli
-
配置静态路由:
nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
2.3 主机
设置主机名
-
临时设置主机名:
hostname new-name
-
永久设置主机名:
hostnamectl set-hostname new-name
-
在/etc/hostname文件中写入new-name:
echo "HCIA-openEuler" > /etc/hostname hostname
hosts文件
我们可以通过一张记录着主机名和IP地址的表找到局域网内的主机,这张表就是hosts
cat /etc/hosts
修改hosts文件:
hosts和DNS
随着网络中主机数量的增加,单个hosts文件难以承载众多的映射关系。
当在hosts中找不到域名对应的IP时,主机会将域名提交给域名解析服务器(DNS),然后DNS返回IP给主机,这个过程称为:域名解析。DNS就像是一个公共的hosts文件/分布式数据库
查询DNS记录
语法:
nslookup domain [dns-server] #domain是要查询的域名, dns-server是域名解析服务器
3 进程管理
3.1 进程介绍
进程(Process)是计算机中已运行程序的实体,是程序的一个具体实现。
每个Linux进程在被创建的时候,都被分配给一段内存空间,即系统给该进程分配一定的逻辑地址空间。
进程的生命周期
- 每个进程都有一个唯一的进程ID(PID),用于追踪该进程。
- 任何进程都可以通过复制自己地址空间的方式(fork)创建子进程,子进程中记录着父进程的ID(PPID)。
- 第一个系统进程是systemd,其他所有进程都是其后代。
3.2 进程优先级
- 进程的CPU资源(时间片)分配就是指进程的优先级(priority);
- 优先级高的进程有优先执行权利;
- 配置进程的优先级对多任务环境下的Linux很有用,可以改善系统性能
- PRI,即进程的优先级,表示程序被CPU执行的先后顺序,值越小进程的优先级别越高;
- NI,即nice值,表示进程可被执行的优先级的修正数值,可理解为“谦让度”;
- 进程的nice值不是进程的优先级,但是可以通过调整nice值可以影响进程的优先值
调整进程优先级
openEuler中使用nice和renice调整进程的nice值,进而影响进程优先级
nice [-n adjustment][command [arg...]]
renice [-n adjustment] [-] <pid>
优先序(adjustment取值范围-19~20)
3.3 控制前台与后台进程
opneEuler中常用以下命令管理进程,包括前后台切换及启停
- &:将&放在命令的最后,可以把这个命令放到后台执行
- Ctrl+z:当前台正在执行一个命令时,按键Ctrl+z,将其放到后台并暂停
- Ctrl+c:中断当前正在执行的命令
- jobs:查看当前有多少正在后台运行的命令
- fg:将后台中的命令调至前台继续运行
- bg:将后台任务唤醒,并在后台运行
查看进程
openEuler中,使用ps或top命令查看每个进程的详细信息
ps命令可以显示当前进程,并列出详细的进程信息, 常用psaux或ps-ef查看进程信息
管理进程
openEuler中,进程之间通过信号来通信,常见信号见表格
openEuler中使用kill和killall命令向进程发送信号, kill通过PID向进程发信号,默认发送TERM信号
kill 3389 #终止PID 3389
kill -s HUP 3390 #挂起3390
标签:cron,系统管理,07,crontab,系统集成,命令,进程,执行,路由
From: https://www.cnblogs.com/konjac-wjh/p/17377857.html