任务管理的类型

计划执行,在特定时间运行一次:at
定期执行,按周期执行多次:cron

1.计划执行 at

at 命令可以指定 Linux 在特定时刻运行脚本
atd 是 at 的守护进程,在系统启动时就会以后台模式运行
atd 进程会定期检查系统上的 /var/spool/at 目录,获取通过 at 命令写入的任务用户使用 at 命令在指定时刻执行指定的命令序列
at 命令语法:sudo yum install at


2.该命令至少需要指定一个命令和一个执行时间
at 命令可以只指定时间,也可以时间和日期一起指定at 14:00

3.设置时间 - 绝对计时

at 允许使用一套相当复杂的时间指定方法:
接受在当天的 hh:mm(小时:分钟)式的时间指定;如果该时间已经过去,那么就放存第二天执行
使用 midnight(深夜)、noon(中午)、teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间
采用 12 小时计时制,即在时间后面加上 AM 或者 PM 来说明是上午还是下午
指定命令执行的具体日期,指定格式为month day(月日)或者 mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年);指定的日期必须跟在指定时间的后面

at 14:00

at> echo “Good morning” > /tmp/good_morning.txt

at> <Ctrl + D>


4.设置时间 - 相对计时

指定格式为 now+count time-units,now就是当前时间,time-units 是时间单位,这里可以是minutes(分钟)、hours(小时)、days(天)、weeks(星期)
count 是时间的数量,究竟是几天,还是几小时等;还有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间
例如指定在今天 16:30 执行某个命令;假设现在时间是 12:30,2015年6月7日,命令如下:

at 16:30 today

at> echo “This task runs at 16:30 today” > /tmp/1630_today_task.txt

at> <Ctrl + D>


5.执行权限

对于 at 命令来说,需要定时执行的命令是从标准输入或者使用 –f 选项指定的文件中读取并执行的
如果 at 命令是从一个使用 su 命令切换到用户 shell 中执行的,那么当前用户被认为是执行用户,所有的错误和输出结果都会送给这个用户
对于其他用户来说,是否执行某个命令或脚本取决于 /etc/at.allow 和 /etc/at.deny 文件


6.周期性运行一批程序 - cron

at 命令会在指定时间内完成指定任务,但是只能执一次;系统在指定时间完成任务,以后就不再执行了
在很多情况下需要周期性重复执行一些命令,这时候需要使用 cron 命令来完成任务


7.cron 运行机制

cron 会搜索 /var/spool/cron 目录,寻找以 /etc/passwd 文件中的用户名命名的 crontab 文件,然后将 crontab 文件装入内存
cron 还将搜索 /etc/crontab 文件,这个文件(cron 时间表)是以特定格式写成的
cron 启动以后,先检查是否有用户设置了crontab文件,如果没有就转入睡眠状态,释放系统资源;所以该后台进程占用资源极少,之后每分钟被换醒一次,查看当前是否有需要运行的命令

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )


8.crontab 命令

crontab 命令用于创建(编辑)、查看、删除用户的周期性计划任务
用户把需要执行的命令序列放到 crontab 文件中以获得执行,而且每个用户都可以有自己的 crontab 文件
crontab 常用命令:

crontab -u //设置某个用户的cron服务,root用户在执行crontab时需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

9.crontab 文件

在 crontab 文件中输入需要执行的命令和时间
该文件中每行都包括6个域,其中前5个域是指定命令被执行的时间,最后一个域是要被执行的命令
每个域之间使用空格或者制表符分隔,格式如下:

minute hour day-of-month month-of-year day-of-week
commands
10.crontab 文件参数补充说明

上述参数项都不能为空,必须指定值
对于要执行的命令,调用的时候需要写出命令的绝对路径
除了数字还有几个特殊的符号“*”、“/”和“-”、“,”


11.编辑配置文件

cron 服务每分钟不仅要读一次 /var/spool/cron 内的所有文件,还需要读一次/etc/crontab
使用 crontab 配置是针对某个用户的,而编辑 /etc/crontab 是针对系统的任务

二.网络管理

1.openEuler 系统网络重要概念
设备
主机内的网卡
广播地址
到达本网段上所有主机的地址
接口
为使用设备,驱动程序在设备上创建了接口
子网掩码
将 IP 地址划分成网络地址和主机地址两部分的掩码
路由
IP 包跨网段访问时候的下一跳地址
链路
设备到网络的连接
IP addr




修改配置文件

使用编辑器直接修改配置文件,修改前做好备份;
配置修改后不会立即生效,需要重启 NetworkManger 服务进程或者重启系统。


显示套接字信息

使用 ss 命令查看套接字统计信息,加上参数可过滤不同类型的套接字,如显示所有 TCP 套接字信息:

image-20250418205242323


NetworkManager

NetworkManager 是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态。
通过命令行工具 nmcli 可以控制 NetworkManager,nmcli 全面,强大且复杂
关键概念:
设备:网络中,设备即网络接口;
连接:连接是供设备使用的配置;
同一个设备可能存在多个连接,但一次只能有一个保持活动状态。

通过 nmcli 查看网络信息

con 代表连接,–active 选项可以过滤出活动的连接


通过 nmcli 创建连接

创建一个名为“Demo”的连接,使用DHCP方式通过enp4s0网口连接
显示所有连接
启动刚刚创建的“Demo”连接
查看当前连接状态


通过 nmcli 修改连接

使用命令 nmcli con mod 修改连接,传入的参数为键值对。
键为属性名称,可通过 nmcli con show [连接名] 查询,如

nmcli connection show Demo


路由

要让不同子网的两台主机能够相互通讯,就需要有一种能够描述如何从一台主机到另一台主机的机制,这一机制称为:路由选择(Routing),路由选择通过路由项进行描述。
路由项是一对预先定义的地址,包括:目的地(Destination)和网关(Gateway)。
路由项的含义是通过网关能够完成与目的地的通讯;路由表是多个路由项的集合。
主机名
image
hosts 文件


修改 hosts 文件

可以用编辑器修改 hosts 文件内容

若想去掉某条记录,加 # 注释即可

查询 DNS 记录

penEuler 中,使用 nslookup 命令查询 DNS 中的记录;
通过 nslookup 可以查看域名解析是否正常,帮助诊断网络问题;
nslookup 的命令格式如下:

nslookup domain [dns-server]
其中 domain 是要查询的域名
[dns-server] 是域名解析服务器,非必选参数,常见的如:8.8.8.8,114.114.114.114