RHCE——一、OpenEuler22.03安装部署及例行性任务

news2025/2/26 4:28:13

RHCE 一、OpenEuler22.03安装部署及例行性任务

    • 一、网络服务
      • 1.准备工作
      • 2、RHEL9操作系统的安装部署
      • 3、配置并优化OpenEuler22.03
      • 4、网络配置
        • 实验:修改网络配置
    • 二、例行性工作
      • 1、 单一执行的例行性任务:at(一次性)
        • at命令详解
      • 2、循环执行的例行性工作:crontab(周期性)
        • 实验1:编写脚本test.sh并执行
        • 实验2:设置邮件报警及例行性发送功能
      • 三、书写定时任务的注意事项
      • 四、系统级别的计划任务

RHCE

一、网络服务

1.准备工作

先下载vmware workstation pro软件,下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html(红帽虚拟机安装链接)

  • 第一步:文件菜单->新建虚拟机->典型->下一步
    在这里插入图片描述

  • 第二步:稍后安装操作系统

在这里插入图片描述

  • 第三步:选择操作系统类型,由于我们使用的是OpenEuler22.03 LTS SP2,使用Linux5.10内核,则选择如下:
    在这里插入图片描述

  • 第四步:命名虚拟机
    在这里插入图片描述

  • 第五步:设置磁盘空间,根据虚拟机安装要求设置,如下:
    在这里插入图片描述
    设置32G,动态空间申请,设置为单个文件
    在这里插入图片描述

  • 第六步:自定义硬件,设置硬件参数

在这里插入图片描述

  • 第七步:设置自定义硬件
    • 内存:推荐2GB
    • 处理器:1颗、2核心
    • 新CD/DVD:适应ISO映像文件,点击浏览按钮,选择之前下载好的openEuler-22.03-LTS-SP2-x86_64-dvd.iso镜像文件
    • 网络适配器:选择NAT模式
    • 显示器:去掉"加速3D图形“的对钩
    • 最终:
    • 在这里插入图片描述
  • 选择关闭、完成

2、RHEL9操作系统的安装部署

  • 使用鼠标点击黑色界面进入OpenEuler22.03系统,通过ctrl+alt可以释放鼠标焦点回到Windows
  • 通过键盘方向键选择第一项Install openEuler 22.03-LTS-SP2 选项进行安装系统
    在这里插入图片描述
  • 选择语言:中文或英文
    -在这里插入图片描述
  • 安装信息摘要设置

在这里插入图片描述

  • 安装目的地:显示安装位置,一般为硬盘,点击自定义分区进行分区

在这里插入图片描述

  • /boot:系统启动分区,推荐500M或1GB
  • swap:交换分区,4G
  • /:根分区,期望容量省略,表示将剩余空间全部分配
  • 方法:点击下图的加号,设置挂载点及期望容量(重复多次),点击完成,点击接收更改

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 网络和主机名:打开网卡连接
    在这里插入图片描述
  • root账户密码设置:密码为OPENlab123
    在这里插入图片描述

在这里插入图片描述

  • 创建用户:创建一个普通账户fox,设置密码:OPENlab123

在这里插入图片描述

  • 重启系统
    在这里插入图片描述

3、配置并优化OpenEuler22.03

  • 登录
    - 账户:root
    - 密码:OPENlab123
    在这里插入图片描述

  • xshell7建立连接

  • 关闭防火墙及SELinux

[root@localhost ~]# vi  /etc/selinux/config 
[root@localhost ~]# systemctl stop  firewalld   # 关闭防火墙
[root@localhost ~]# systemctl disable  firewalld  # 取消开机启动
  • 修改主机名
[root@localhost ~]# hostnamectl  set-hostname  server  # server为主机名
[root@server ~]# reboot  # 重启
  • 修改root密码
[root@server ~]# passwd root
更改用户 root 的密码 。
新的密码: 
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
  • 查看yum源
[root@server ~]# cat  /etc/yum.repos.d/openEuler.repo 
[root@server yum.repos.d]# yum  makecache  # 制作缓存
  • 查看网卡配置文件
[root@server ~]# cat  /etc/sysconfig/network-scripts/ifcfg-ens32
  • 下载所需软件
[root@server ~]# yum  install  vim  make  gcc  tree  net-tools tar  -y
  • 测试
[root@server ~]# cat /etc/os-release   # 查看系统信息
[root@server ~]# lscpu   # 查看cpu信息
[root@server ~]# free  -m  # 查看内存信息
[root@server ~]# fdisk -l  # 查看磁盘信息
[root@server ~]# top  # 查看进程信息
[root@server ~]# ping  -c  2  www.qq.com
  • 制作快照:虚拟机菜单->快照->拍摄快照->命名为“初始”->拍摄
  • 使用虚拟机进行克隆,命名为node1,启动后后需要更改主机名,重启生效,重新制作node1的快照

4、网络配置

可视化配置
格式

[root@server ~]# nmtui

在这里插入图片描述

实验:修改网络配置
  • 例:为当前网卡增加一个IP地址
    在这里插入图片描述
    nmcli命令
    格式:
[root@server ~]# nmcli --help
用法:nmcli [选项] 对象 { 命令 | help }

查看网卡信息:

[root@server ~]# nmcli  c show
NAME   UUID                                  TYPE      DEVICE 
ens32  bed6c767-610c-49c3-8bd1-2b892132e17d  ethernet  ens32  
[root@server ~]# nmcli  c  show  网卡名  #  查看网卡详细信息,点q退出
[root ~]# nmcli dev  status  #查看已有设备的状态
DEVICE  TYPE      STATE   CONNECTION 
ens32   ethernet  已连接  ens32      
lo      loopback  未托管  --       
[root ~]# nmcli  dev  show  #查看所有硬件设备状态
GENERAL.DEVICE:                         ens32
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:63:8C:4C
GENERAL.MTU:                            1500
GENERAL.STATE:                          100(已连接)
GENERAL.CONNECTION:                     ens32
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               开
IP4.ADDRESS[1]:                         192.168.110.135/24
IP4.GATEWAY:                            192.168.110.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.110.2, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.110.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[3]:                           dst = 192.168.110.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.110.2
IP4.DOMAIN[1]:                          localdomain
IP6.ADDRESS[1]:                         fe80::20c:29ff:fe63:8c4c/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10(未托管)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ::1/128, nh = ::, mt = 256

激活网卡和关闭连接

[root ~]# nmcli c up  网卡名   
[root ~]# nmcli c down  网卡名    # 停用连接

添加网络连接

[root ~]# nmcli c  add  type  ethernet ifname ensens32 con-name ens33  autoconnect yes  ip4 192.168.48.135/24  gw4 192.168.48.2

[root ~]# nmcli c up  ens161  # 激活

[root ~]# nmcli  c  show
  • 命令解释
    • 关键字:nmcli c add type
    • 网络类型:ethernet
    • 现有网卡名:ifname ens32
    • 新网络名称:con-name ens33
    • 开启自动连接:autoconnect yes
    • 新连接的IP地址与网关地址:ip4 192.168.48.135/24 gw4 192.168.48.2

修改网络连接

  • 例:通过ens32连接设置静态ip地址:
[root ~]# nmcli  c mod ens32  ipv4.method manual  ipv4.addresses '192.168.110.134/24'  ipv4.gateway  '192.168.110.2'  ipv4.dns   '114.114.114.114'
[root ~]# nmcli c up ens32  #激活
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2[root ~]# ip a  #查看结果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:63:8c:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.110.134/24 brd 192.168.110.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe63:8c4c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

  • ipv4.method manual :手动获取(静态)

  • 通过配置文件查看和编辑:

[root ~]# vim  /etc/sysconfig/network-scripts/ifcfg-ens32 

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens32
UUID=b50354dd-8e11-4494-9072-a152ea6b0783
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.48.130
PREFIX=24
GATEWAY=192.168.48.2
DNS1=114.114.114.114

删除网络连接

[root ~]# nmcli  c  show   # 查看网络连接
[root ~]# nmcli c del  ens32   #  删除

[root ~]# nmcli  c  show  # 再次查看
  • 以上做完之后需要恢复快照

二、例行性工作

场景:

  • 生活中,我们有太多场景需要使用到闹钟,比如早上 7 点起床,下午 4 点开会,晚上 8 点购物,等等。

  • 在 Linux 系统里,我们同样也有类似的需求。比如我们想在凌晨 1 点将文件上传服务器,或者在晚上 10 点确认系统状态,等等。

  • 但我们不可能一直守在电脑前,毕竟我们也需要下班/睡觉,还要陪女朋友。而且即使在上班期间,如果到点了还需要人工操作,未免效率太低了。

  • at 命令就是为这个需求而诞生的。使用 at 命令,你可以在特定时间自动完成你所设定的任务,也可以实现自动化,非常方便快捷!

1、 单一执行的例行性任务:at(一次性)

  • at命令需要安装
[root ~]# yum  install  at  -y
[root ~]# at  -V   # 大写V
at version 3.2.2
  • 启动服务
[root ~]# systemctl start  atd
[root ~]# systemctl enable  --now  atd  # 设置开机启动
[root ~]# systemctl  status  atd  # 查看状态
at命令详解

格式

at  -参数   日期时间

参数

-m:当任务完成后,即使没有标准输出,也会给用户发送邮件
-l:列出系统上所有用户的at任务,等价于atq
-d:删除或取消一个任务
-v:使用时间格式,列出at任务
-c:可以列出任务之后的命令内容
-f:从文件中读取

时间格式

参数说明
HH:MM在今天HH小时的MM分钟执行,若时间点错过,将在明天执行
HH:MM YYYY-MM-DD规定在某年某月的某一天的特殊时刻执行该工作
now +2 minutes从现在开始的minutes、hours、days、weeks执行

实验1

  • 延迟执行ls /root ,并将结果写入到at.txt中
[root ~]# at  14:17
warning: commands will be executed using /bin/sh
at> ls  /root  >  at.txt
at> <EOT>      # 点击ctrl+d 结束交互性界面

[root ~]# at  -l   # 查看已存在的计划任务
3	Thu May 25 14:17:00 2023 a root
[root ~]# atq      # 同上
3	Thu May 25 14:17:00 2023 a root

实验2

  • 不使用交互性命令实现,通过管道符命令执行
[root ~]# echo  "echo  'hello  again'  >>  at.txt" | at  now  +1  minute

注意

  • at命令只要指定的时间正确,就可以执行对应的命令

  • at命令的输出结果不会显示到屏幕上

  • at命令中执行的命令最好使用绝对路径,不容易报错

  • 过程:输入at 时间 -> 回车 ->输入执行的命令->ctrl+d退出at

  • at命令只会执行一次
    at命令执行过程分析

  • 第一步:寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令

  • 第二步:若/etc/at.allow不存在,则寻找/etc/at.deny(黑名单)文件,写在该文件中的用户不能使用at命令

  • 第三步:若两个文件都不存在则只有root用户可以使用at命令

  • 注意:若拒绝某用户使用at命令则可以将用户名写入到/etc/at.deny中

实验3

  • 设置某账户at命令不可用
[root ~]# useradd  ce1   # 新建账户
[root ~]# passwd  ce1    # 设置密码
更改用户 ce1 的密码 。
新的密码:                       # 654321
无效的密码: 密码少于 8 个字符
重新输入新的密码:                # 654321
passwd:所有的身份验证令牌已经成功更新。
[root ~]# tail  -1  /etc/passwd  # 倒叙查看账户管理文件
ce1:x:1001:1001::/home/ce1:/bin/bash
[root ~]# vim  /etc/at.deny   # 设置黑名单
ce1                                  # 输入

[root ~]# su  ce1             # 切换账户
[ce1 root]$ cd  ~
[ce1 ~]$ at  14:36         # 测试,at命令不可用
You do not have permission to use at.
[ce1 ~]$ su  root         # 切换到root账户
密码: 
su: 拒绝权限

# 安全考虑,openEuler做了用户权限切换限制,解决方法如下:
# 重新开启一个ssh连接,以root账户登录
[root ~]# vim  /etc/pam.d/su # PAM(Pluggable Authentication Modules)负责系统中很多应用程序的登录认证,安全设置问题

# 注释掉第21行:
# auth          required        pam_wheel.so use_uid

# 保存关闭后,切换到原ssh连接
[ce1 ~]$ su  root
密码: 

Welcome to 5.10.0-153.12.0.92.oe2203sp2.x86_64

System information as of time: 	20231115日 星期三 13:38:45 CST

System load: 	0.00
Processes: 	139
Memory used: 	9.8%
Swap used: 	0%
Usage On: 	7%
IP address: 	192.168.48.130
Users online: 	2

[root ce1]# cd  ~
[root ~]# 

2、循环执行的例行性工作:crontab(周期性)

crontd服务

  • at 命令是在指定的时间只能执行一次任务,crontab 命令可以循环重复的执行定时任务,与Windows 中的计划任务有些类似
  • crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的,若需要安装则执行如下命令:
[root ~]# yum  install  crontabs    # 安装,注意包名

[root ~]# systemctl status  crond   # 查看状态
  • crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab 命令需要 crond 服务支持

  • linux 任务调度的工作主要分为以下两类:

    • 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
    • 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

crontab工作过程

  • 当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高

  • 当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令

  • crontab 执行的每一项工作都会被 记录到 /var/log/cron 这个日志文件中

  • 当用户使用 crontab 新建工作之后,该项工作就会被记录到 /var/spool/cron/目录里面

crontab命令详解

格式

crontab  [-u  user]  [-l| -r | -e]  

参数

参数说明
-u只有root才能执行该任务
-e编辑crontab工作内容
-l查询crontab任务内容
-r删除cronatb任务

编辑crontab

  • 格式:
[root ~]# crontab  -e

写入的命令格式:每一行书写一个工作,每个工作共有6个字段

代表意义分钟小时日期月份星期命令
数字范围0-590-231-311-120-7(0和7表示周日)执行的动作
*/5 6-8 * 8 1  /bin/bash  /test.sh

特殊字符

特使字符含义
*任意时刻
-表示时间范围
,(逗号)分割时段
*/数字指定时间间隔的频率,如:每3分钟执行一次,*/3
实验1:编写脚本test.sh并执行
[root ~]# vim  test1.sh

#!/bin/bash
while :
do
        echo  "this is my test sh"$(date)  >>  /root/cro.txt
        sleep  1
done    
  • 设置循环周期性任务
[root ~]# crontab  -e
*/1 * * * *   sh   /root/test1.sh
  • 注意:crond服务是自动启动的,crontab命令只要保存退出后就会生效
  • 查看任务:
[root ~]# crontab  -l
*/1 * * * * sh  /root/test.sh
  • 删除任务
[root ~]# crontab  -r   # 删除
[root ~]# crontab  -l   # 查看列表
no crontab for root
  • 此实验还需终止循环进程
xxxxxxxxxx [root ~]# ps  -aux  |  grep  test1[root ~]# kill  进程号
实验2:设置邮件报警及例行性发送功能
  • 设置邮件发送告警功能,每1分钟发送一封邮件
  • qq邮箱设置:
    在这里插入图片描述

开启pop3/SMTP 服务:
在这里插入图片描述
复制授权码:
在这里插入图片描述
安装邮件服务

[root ~]# yum  install  mailx  -y

配置邮件服务

[root ~]# vim  /etc/mail.rc
# 最后一行添加以下内容:
set  from=17674044.com
set  smtp=smtp.qq.com
set  smtp-auth-user=17674044.com
set  smtp-auth-password=do***cvqdubqbibj
set  smtp-auth=login

# 注意:该文件输入完毕有的系统需要强制保存退出,输入wq!

测试邮件服务

[root ~]# echo  "testmail"  |  mail  -s  "testmail"  17674044.com

设置定时任务

[root ~]# crontab  -e
MAILTO=17674044.com

* * * * *   echo  "警告,SERVER服务器内存较低,速处理"  |  mail -v -s  "告警邮件"  17674044.com  

三、书写定时任务的注意事项

  • 6 个字段都不能为空,如果不确定则使用*表示任意时间
  • crontab命令任务的最小时间单位为分钟,最大有效时间为月,如:2024年某时执行、3点30分30秒这样的时间日期无法被识别
  • 定义时间时,日期和星期最好不要一起出现,由于都是以天为单位,非常让管理员混淆
  • 在定时任务中不能,不管是写命令还是在脚本中写命令,最好都用绝对路径,相对路径有时会报错

四、系统级别的计划任务

  • crontab -e 时每个用户都可以执行的命令,但有时定时任务必须由系统执行,此时就需要编辑/etc/crontab配置文件来实现
  • 主配置文件:
xxxxxxxxxx [root ~]# vim  /etc/crontab
  • 仅能通过root定义,不可以使用普通账户身份去执行计划任务
  • 方法:在/etc/crontab 最后一行新增计划任务即可
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  • 分析

    • SHELL=/bin/bash : 指定系统使用那个shell解释器去执行
    • PATH=/sbin:/bin:/usr/sbin:/usr/bin : 系统执行命令的搜索路径
    • MAILTO=root : 表示执行任务的信息通过邮件发送给谁
    • user-name : 表示执行命令的用户是谁
  • 例1:编写脚本testcrontab.sh,将时间写入/t1.txt文件中,每周二11点循环执行

[root ~]# vim  testcrontab.sh
#!/bin/bash
date >> /t1.txt
[root ~]# vim  /etc/crontabvim  /etc/crontab
0 11 * * 2  root  /bin/bash  /root/testcrontab.sh

例2:每天6:00点将日志/var/log/messages 文件备份到/backup目录中,备份后的日志文件名修改为logfileYYYY-MM-DD-HH:MM:SS

[root ~]# mkdir  /backup     # 新建目录

[root ~]# vim  /etc/crontab  # 编辑系统计划任务
0 6 * * *   root   /bin/cp  /var/log/messages /backup/logfile`date  +\%Y-\%m-\%d-\%H:\%M:\%S`

# 注意:可以使用* * * * * 进行测试
# 反引号`` 表示将引起的内容识别为命令
# 在crontab系统中%表示换行,需要增加转义符\

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MQTT连接阿里云物联网上报物模型数据

目录 1. 创建产品&#xff08;物联网平台 -> 产品 -> 创建产品&#xff09; 2. 为产品添加设备 3. 添加物模型 4. mqtt.fx连接测试 5. 调试物模型 6. 使用mqtt.fx上报温度数据 1. 创建产品&#xff08;物联网平台 -> 产品 -> 创建产品&#xff09; 我这里再新…

企业内部培训考试系统首页自定义版块说明

企业内部培训考试系统首页自定义版块说明&#xff0c;企业内部培训考试系统手机端首页设计太灵活。 1、整站主题色自定义&#xff0c;更换主题色后&#xff0c;重要的文字和按钮颜色都自动使用主题色渲染&#xff0c;相当于一键换皮肤。 2、首页背景图自定义&#xff0c;想换…

【蓝牙协议栈】【经典蓝牙】【BLE蓝牙】蓝牙技术特点

目录 1. 蓝牙技术特点 2. 经典蓝牙与BLE蓝牙对比 2.1 BT/BLE技术区分 2.2 支持的profile不同 2.3 核心架构&#xff0c;不同的controler 3. Bluetooth的系统构成 4. 蓝牙协议规范 4.1 传输协议 4.2 中介协议 4.3 应用协议 5. 蓝牙硬件接口 1. 蓝牙技术特点 简单地说…

论文笔记:Compact Multi-Party Confidential Transactions

https://link.springer.com/chapter/10.1007/978-3-030-65411-5_21 A compact, private, Multi-Party Confidential Transactions (MCT) 紧凑型多方机密交易&#xff08;Compact MCT&#xff09;&#xff1a;MCT的长度与常规的单一所有者交易一样短&#xff1b;换句话说&…

【STM32+HAL】GY25倾斜度角度模块

一、前言 有关MPU6050模块读取六轴传感器数值的详细内容&#xff0c;详见【STM32HAL】姿态传感器陀螺仪MPU6050模块 二、所用工具 1、芯片&#xff1a;STM32F103C8T6 2、配置软件&#xff1a;CUBEMX 3、编译器&#xff1a;KEIL5 4、产品型号&#xff1a;GY-25 5、使用芯片…

【SpringMVC】RESTFul风格设计和实战 第三期

文章目录 概述一、 RESTFul风格简介二、 RESTFul风格特点三、 RESTFul风格设计规范3.1 HTTP协议请求方式要求3.2 URL路径风格要求 实战一、需求分析二、RESTFul风格接口设计三、后台接口实现总结模糊查询 有范围 返回多数据用户 添加 与 更新 请求参数接收数据显示用户详情/删除…

配电网数字化转型全面推进:《关于新形势下配电网高质量发展的指导意见》

近日&#xff0c;国家发展改革委、国家能源局印发了《关于新形势下配电网高质量发展的指导意见》&#xff08;以下简称《意见》&#xff09;&#xff0c;到2030年&#xff0c;基本完成配电网柔性化、智能化、数字化转型&#xff0c;实现主配微网多级协同、海量资源聚合互动、多…

Unity3d C#实现文件(json、txt、xml等)加密、解密和加载(信息脱敏)功能实现(含源码工程)

前言 在Unity3d工程中经常有需要将一些文件放到本地项目中&#xff0c;诸如json、txt、csv和xml等文件需要放到StreamingAssets和Resources文件夹目录下&#xff0c;在程序发布后这些文件基本是对用户可见的状态&#xff0c;造成信息泄露&#xff0c;甚至有不法分子会利用这些…

【Node.js】-闲聊:前端框架发展史

前端框架的发展史是一个不断演进和创新的过程&#xff0c;旨在提高开发效率、优化用户体验&#xff0c;并推动前端技术的不断发展。以下是前端框架发展的主要阶段和关键里程碑&#xff1a; 早期阶段&#xff1a; 在这个阶段&#xff0c;前端主要由HTML、CSS和JavaScript等基础技…

机器学习周报第32周

目录 摘要Abstract一、文献阅读1.论文标题2.论文摘要3.论文背景4.论文方案4.1 多视角自注意力网络4.2 距离感知4.3 方向信息4.4 短语模式 二、self-attention 摘要 本周学习了多视角自注意力网络&#xff0c;在统一的框架下联合学习输入句子的不同语言学方面。具体来说&#x…

HTML5:七天学会基础动画网页10

继续介绍3D转换: 3D转换:rotate3d 方法与说明 rrotateX(angle)otate3d(x,y,z,angle[角度]) 3D转换&#xff0c;正常取值0/1&#xff0c;0代表当前轴线不进行旋转&#xff0c;1反之&#xff0c;例:rotate3d(1,1,1,30deg)&#xff0c;代表三个轴线都要旋转30度 rotate3d(0…

时间序列-AR MA ARIMA

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ &#xff0c;常常会使用统计方法如最小二乘法、信息准则&#xff08;如AIC、BIC&#xf…

【脚本玩漆黑的魅影】全自动丢球

文章目录 原理全部代码 原理 启动后截图。 丢球以后再截图。 如果两图一致&#xff0c;说明没成功&#xff0c;读档重来。 如果两图不一致&#xff0c;说明成功了。 while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:break全部…

Linux系统——web服务拓展练习

目录 一、实验环境搭建 1. Centos 7-5——Client 2. Centos 7-1——网关服务器 3. Centos 7-2——Web1 4. Centos 7-3——Web2 5. Centos 7-4——Nginx 二、在Nginx服务器上搭建LNMP服务&#xff0c;并且能够对外提供Discuz论坛服务&#xff1b;在Web1、Web2服务器上搭建…

深度学习图像算法工程师--面试准备(2)

深度学习面试准备 深度学习图像算法工程师–面试准备&#xff08;1&#xff09; 深度学习图像算法工程师–面试准备&#xff08;2&#xff09; 文章目录 深度学习面试准备前言一、Batch Normalization(批归一化)1.1 具体步骤1.2 BN一般用在网络的哪个部分 二、Layer Normaliza…

基于 EfficientNetV2 实现判别MNIST 手写模型分类

pytorch深度学习项目实战100例 的学习记录 我的环境&#xff1a; 白票大王&#xff1a; google colab 用其他的话&#xff0c;其实实现也行&#xff0c;但是让小白来重环境来开始安装的话&#xff0c;浪费时间 论文速读 EfficientNetV2是由 Google Research&#xff0c;Br…

C语言笔记:文件的操作各种文件函数讲解

突然发现自己的C语言文件部分还没有学&#xff0c;赶紧来补一下~~ 1.文件分类 文本文件磁盘文件&#xff08;二进制文件&#xff09;C语言特殊文件标识&#xff1a;stdin&#xff08;标准输入&#xff1a;通指键盘输入&#xff09;&#xff0c;stdout&#xff08;标准输出&am…

了解 HTTPS 中间人攻击:保护你的网络安全

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言指针从入门到基础详解(非常详细)

1.内存和地址 我们知道电脑中的CPU在处理数据的时候需要在内存中读取数据处理后的数据也会放在内存中。把内存划分为一个个的内存单元每个单元的大小是一个字节。每个字节都有它对应的编号也就是它的地址&#xff0c;以便CPU可以快速的找到一个内存空间。C语言中我们把地址叫做…

深入浅出计算机网络 day.1 概论① 信息时代的计算机网络

我想&#xff0c; 我不会暗下来的&#xff0c; 生命是周而复始的橙黄橘绿时 —— 24.3.9 内容概述 计算机网络的各类应用 计算机网络带来的负面问题 我国互联网发展情况 一、计算机网络的各类应用 1.信息浏览和发布 2.通信和交流 3.休闲和娱乐 4.资源共享…