首页 > 其他分享 >系统集成07-系统管理

系统集成07-系统管理

时间:2023-05-06 16:47:43浏览次数:41  
标签:cron 系统管理 07 crontab 系统集成 命令 进程 执行 路由

系统集成07-系统管理

1 任务管理

什么是任务管理?

  • 在系统运维过程中,可能需要在某个预设的时间执行特定任务
  • 比如定时发送邮件、备份并清空日志文件等任务
  • 任务的内容可以看作是一系列命令或者一个脚本,我们则需要在特定时间去执行它

任务管理分为计划执行定期执行

1.1 计划执行

  1. at命令可以指定Linux在特定时刻运行脚本
  2. atd是at的守护进程,在系统启动时就会以后台模式运行
  3. 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 定期执行

  1. at命令会在指定时间内完成指定任务,但是只能执一次;系统在指定时间完成任务,以后就不再执行了
  2. 在很多情况下需要周期性重复执行一些命令,这时候需要使用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-*

网卡配置文件参数说明

image-20230506144431247

修改配置文件前需要备份, 修改配置文件后需要重启NetworkManager服务进程或直接重启系统

systemctl reload NetworkManager

网卡最小配置文件示例

TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.100
NETMASK=255.255.255.0

其他命令

  1. 查看IP地址:

    ip addr show enp4s0	#网卡名称为enp4s0
    
  2. 显示接口的统计信息:

    ip -s link show enp4s0
    
  3. 显示套接字信息:

    ss [options]
    

NetworkManager

NetworkManager是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态

通过命令行工具nmcli可以控制NetworkManager,nmcli全面,强大且复杂

nmcil

  1. 通过nmcli查看网络信息:

    nmcli connection show --active
    

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

  2. 创建连接&启动连接

    nmcli connection add con-name 'Demo' type Ethernet ifname enp4s0	#创建名为Demo的连接, 使用DHCP方式通过enp4s0接口连接
    nmcli connection up 'Demo'	#启动Demo连接
    
  3. 修改连接

    nmcli con mod [连接名] [修改属性] [属性值]
    

2.2 路由配置

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

路由管理与配置

  1. openEuler中,使用route查看、配置、管理本机路由。
  2. 除了route命令,ip和nmcli命令也可以用来管理系统路由。
  3. 这些命令作用于系统中的路由表,系统运行时,路由表加载到内存中,由系统内核进行维护

其他命令

  1. 查看路由表:

    route -n
    
  2. 新增路由

    route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]]
    
  3. 删除路由

    routedel [-net|-host] [netmask Nm] [gw Gw] [[dev]If]
    

nmcli

  1. 配置静态路由:

    nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
    

2.3 主机

设置主机名

  1. 临时设置主机名:

    hostname new-name
    
  2. 永久设置主机名:

    hostnamectl set-hostname new-name
    
  3. 在/etc/hostname文件中写入new-name:

    echo "HCIA-openEuler" > /etc/hostname
    hostname
    

hosts文件

我们可以通过一张记录着主机名和IP地址的表找到局域网内的主机,这张表就是hosts

cat /etc/hosts

修改hosts文件:

image-20230506150820337

hosts和DNS

随着网络中主机数量的增加,单个hosts文件难以承载众多的映射关系。
当在hosts中找不到域名对应的IP时,主机会将域名提交给域名解析服务器(DNS),然后DNS返回IP给主机,这个过程称为:域名解析。DNS就像是一个公共的hosts文件/分布式数据库

查询DNS记录

语法:

nslookup domain [dns-server]	#domain是要查询的域名, dns-server是域名解析服务器

3 进程管理

3.1 进程介绍

进程(Process)是计算机中已运行程序的实体,是程序的一个具体实现。
每个Linux进程在被创建的时候,都被分配给一段内存空间,即系统给该进程分配一定的逻辑地址空间。

image-20230506151047275

进程的生命周期

  • 每个进程都有一个唯一的进程ID(PID),用于追踪该进程。
  • 任何进程都可以通过复制自己地址空间的方式(fork)创建子进程,子进程中记录着父进程的ID(PPID)。
  • 第一个系统进程是systemd,其他所有进程都是其后代。

image-20230506151108849

3.2 进程优先级

  • 进程的CPU资源(时间片)分配就是指进程的优先级(priority);
  • 优先级高的进程有优先执行权利;
  • 配置进程的优先级对多任务环境下的Linux很有用,可以改善系统性能
  • PRI,即进程的优先级,表示程序被CPU执行的先后顺序,值越小进程的优先级别越高;
  • NI,即nice值,表示进程可被执行的优先级的修正数值,可理解为“谦让度”;
  • 进程的nice值不是进程的优先级,但是可以通过调整nice值可以影响进程的优先值

image-20230506151209633

调整进程优先级

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查看进程信息

image-20230506152915867

管理进程

openEuler中,进程之间通过信号来通信,常见信号见表格

image-20230506152907512

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

相关文章

  • 系统集成03-文本编辑器
    系统集成03-文本编辑器文本处理是操作系统对文件管理的基础操作,文本编辑器是计算机软件中的一种,主要用来编写和查看文本文件。不同的文件编辑器有不同的辅助功能。1Linux常用文本编辑器介绍文本编辑器是操作系统基础的功能软件之一。根据使用环境的不同,Linux的文本编辑器有很......
  • ICT实战系统集成-LAB9-Samba文件共享服务器管理
    ICT实战系统集成-LAB9-Samba文件共享服务器管理实验步骤1安装samba服务端安装samba、samba-common、samba-clientyuminstallsambasamba-commonsamba-client启动samba:ststemctlstartsmb.service查看samba状态2添加系统组share,添加系统账号xiaoming、hanmeimei......
  • ICT实战系统集成-LAB6-openEuler管理文件系统及存储
    LAB6-openEuler管理文件系统及存储1实验要求1.1添加两块scsi硬盘,大小分别为10G1.2对新添加的硬盘1(如:/dev/sdb)进行MBR分区、格式化、挂载1、使用fdisk对/dev/sdb进行分区:/dev/sdb1为主分区1大小2G、/dev/sb2为扩展分区大小8G,在/dev/sb2的基础上建立扩展分区/dev/sdb5,大小......
  • ICT实战系统集成-LAB5-OpenEuler软件管理
    系统集成-LAB5-OpenEuler软件管理1实验要求任务一:使用rpm包安装zziplib工具1、完成安装2、查询zziplib工具是否安装成功3、查询zziplib工具的文件列表和完整目录4、查询zziplib工具的详细信息5、对zziplib工具进行卸载任务二:使用yum/dnf安装java-1.8.01、完成yum/dnf源......
  • ICT实战系统集成-LAB2-openEuler 命令行基础操作入门
    ICT实战系统集成-实验02-openEuler命令行基础操作入门1思考题1.1创建一个/iamthebest目录;1.2在/iamthebest目录下创建/cat和/dog两个目录;1.3将/etc/passwd文件复制到/iamthebest目录;并查看被复制文件的操作权限;1.4尝试执行cp-i/etc/passwd.你会发现什么?为什么......
  • [Luogu-P1007]题解(C++)
    PartIPreface原题目(Luogu)PartIISketch给定一个正整数\(L\),表示独木桥长度。给定一个正整数\(N\),表示桥上士兵的数量。给定\(N\)个整数,分别表示每个士兵的坐标。规定走到\(0\)坐标或\(L+1\)的位置为下桥,两个士兵相遇时不能走过去,他们会各自回头走。求出所有士......
  • yum install -y yum-utils 报错Error: Package: glibc-2.17-307.el7.1.i686 (base)
    命令#yuminstall-yyum-utils执行命令和报错如下[root@localhost~]#yuminstall-yyum-utils.noarchLoadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfileResolvingDependencies-->Runningtransactioncheck--->Packageyum-utils.noarch0......
  • UVA11107 Life Forms
    怎么没有正常的后缀数组二分的题解啊给定\(n\)个字符串,求出最长的,在多于\(\left\lfloor\frac{n}{2}\right\rfloor\)个字符串中出现的子串,并按照字典序从小到大输出。\(n\leq100\),\(|S|\leq1000\),根据套路可以将所有字符串连成一个,不同的字符串用特殊符号隔开,然后建出新......
  • [Leetcode] 0705. 设计哈希集合
    705.设计哈希集合EnglishVersion题目描述不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现MyHashSet类:voidadd(key)向哈希集合中插入值key。boolcontains(key)返回哈希集合中是否存在这个值key。voidremove(key)将给定值key从哈希集合中删除。如果......
  • node:internal/modules/cjs/loader:1078 throw err; ^ Error: Cannot find module
    终端运行.js文件,之后又报错了,node:internal/modules/cjs/loader:1078throwerr;^......