第十三章 Linux计划任务

注意:进公司和有公司成员离职,一定要问计划任务,防止别人搞破坏背锅

13.1 一次性计划任务(atd服务)

1 安装 atd 服务

yum install -y at
systemctl enable atd
systemctl start atd			## 启动atd服务
systemctl status atd		## 查看atd服务状态,有没有启动等等 	
注意: Start restart stop enable (设置开机自启动) disable(移出开启自启动队列)status(查看状态)

2 at 命令

at 功能:在一个指定的时间执行一个指定任务,只能执行一次

​ 语法: at [命令选项] 时间格式

at 命令系列:at、batch、atq、atrm

命令选项:
-V        	 ## 显示<版本号>
-q queue  	 ## 使用<指定的 queue 队列>## <queue 队列>的<名称>是<单个字母>,取自范围是:a~zA~Z## <a 队列>是at的<默认队列>## <b 队列>是batch的<默认队列>## <更高字母的 queue 队列>的<运行时 nice 值>就更高## "="特殊队列:保留用于<当前正在运行的作业>
-m        	 ## 在<作业>完成之后,向<用户>发送<邮件>
-M        	 ## 不向<用户>发送<邮件>
-f file   	 ## 从<指定文件>读取<job 作业>,指定 要运行的脚本文件 
-t time   	 ##	设置:<job作业>的<运行时间>,<时间格式>为:[[CC]YY]MMDDhhmm[.ss]
-l        	 ## 和 atq 一样,查看计划任务,重要
-r        	 ## 这是atrm的一个<别名>	删除计划任务 比如at -r 3  
-d        	 ## 这是atrm的一个<别名>	
-b        	 ## 这是batch的一个<别名>,batch:类似于 at 命令,但用于在系统负载较低的时候批量执行任务。
batch 命令与 at 命令类似,但在系统空闲时才执行,而不是在特定时间点上执行。
-v   		 ## 显示:在<读取作业>之前,<作业>的<执行时间>## 显示的时间格式将采用<"Thu Feb 20 145000 1997">格式
-c n      	 ## 显示:<指定 job 作业标识符>的<jobs 作业内容>

3 at 一次性计划任务的时间描述法

在这里插入图片描述

在这里插入图片描述

示例说明理解:

[HH:MM]
例如:
at 04:00    ## 在今日的<HH:MM时刻>进行,假如时间已过,则在明天的<HH:MM时刻>进行。● HH:MM YYYY-MM-DD
例如:
at 04:00 2009-03-17   ## 在<某年某月的某一天的某一时刻>进行<该项任务>● HH:MM[am|pm] [Month] [Date]
例如:
at 04pm March 17    ## 在<某年某月的某一天的某一时刻>进行<该项任务> 难记少用HH:MM[am|pm] + number [minutes|hours|days|weeks]
例如:
at now + 5 minutes  ## 在<某一个时间点>再加<几个时间>之后,才进行<该项任务>
at 04pm + 3 days    ## 在<某一个时间点>再加<几个时间>之后,才进行<该项任务>

4 制定 at 计划任务

1 直接制定计划任务

格式:
at [执行时间]  					  ## 回车
输入要执行的内容 					## 写错时候,按住Ctrl + 删除键 才可以删除输入的内容,Enter是到下一行,可写要执行的第二个内容,写完 Ctrl + D 完成
例如  以下是终端显示
[root@dj tmp]# at now + 1minutes 
at> mkdir /tmp/aa 
at> touch /tmp/bb.txt<EOT>			## 这里写完 bb.txt  ctrl+D 即可
job 9 at Thu Jul 27 12:51:00 2023## 可使用atq或者at -l查看有无计划任务,到时间了ls查看aa和bb.txt是否生成

2 执行脚本文件的计划任务

vim /tmp/test.sh 		## 创建一个脚本,计划任务运行该脚本
内容如下#!/bin/bash				## 必须有该行,不然没有运行环境
touch /tmp/1.txt		## wq 保存退出at -f /tmp/test.sh 00:00  			    ## 在00:00执行该脚本内容,创建1.txt
at -f /tmp/test.sh now + 90 minutes		## 在90分钟后创建1.txt文件
at -f /tmp/test.sh 20:00 2024-06-24		## 在2024.6.24晚上8点创建该文件

5 查看当前用户待处理的 job 作业(计划任务)

注意:如果<当前用户>是root,则可列出:<所有用户>的<待处理 job 作业>

atq  或者   at -l

6 删除计划任务

注意:如果<当前用户>是root,则可删除:<所有用户>的<待处理 job 作业>

atrm 1 2 3 4  		## 数字是每个计划任务的编号,atq查看都有编号
at -r 1 2 3 4

7 管理at计划任务的制定权限

(1) 首先:读取</etc/at.allow文件>,检查<该用户>是否被<明确允许>

</etc/at.allow文件>优先级最高,最严厉:默认拒绝一切,除非<明确允许>

对<root 用户>无效

</etc/at.allow文件>默认未创建,需手动创建

通俗来说就是白名单,在名单里面的用户都可以制定at计划任务,不在就不行

(2) 其次:读取</etc/at.deny文件>,检查<该用户>是否被<明确拒绝>

</etc/at.deny文件>优先级最低,最宽松:默认允许一切,除非<明确拒绝>

对<root 用户>无效

</etc/at.frny文件>默认创建,所有一般有黑名单,没有白名单,如果有白名单的话,不在白名单里面都不能制定 at 计划任务

(3) 最后:如果</etc/at.allow 和 /etc/at.deny>均不存在,则仅允许<root 用户>制定<at 一次性 计划任务>

通俗来说就是黑名单,在名单里面的用户都可以禁止制定at计划任务

注意:如果黑名单白名单都有该用户,则可以制定,因为白名单优先级比较高

​ 如果都没有该用户,但是白名单文件存在,则除了白名单填写的用户,黑名单和正常用户都不可制定 at 计划用户

​ 如果都没有该用户,且白名单并未创建,只要不在黑名单的用户都可以制定 at 计划任务

例子:

1 黑名单 明确拒绝<user01 和 user02>

vi /etc/at.deny   ## 一行仅写一个<用户帐号>
user01
user02

2 白名单 拒绝一切,明确允许<user01 和 user02>

vi /etc/at.allow   ## 一行仅写一个<用户帐号>
user01
user02

13.2 周期性计划任务(crond服务)

1 安装 crond 服务

安装 crond 默认已安装

yum install -y crontabs

相关管理 crond 服务启动脚本

systemctl enable crond    	## 设置:开机自启动
systemctl start crond     	## 启动
systemctl status crond    	## 查看状态
systemctl reload crond      ## 重载
systemctl restart crond     ## 重启
systemctl stop crond        ## 停止

2 crond 周期性 计划任务 语法格式

重点: /etc/crontab 从该文件里面看格式,和制定相关计划任务

​ 输入 crontab -e 进去的文件也可进行制定计划任务 ,而且可以通过 crontab -l 查看该文件配置的计划任务(该配置文件内容)

vim /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

前三行是运行环境 , 类似于写脚本 里面 的第一行输入 #!/bin/bash 一样

后面是格式介绍,依次从左往右是 分 时 日 月 周 用户名(执行该计划任务的账户) 执行的命令内容或者 制定的脚本目录(该脚本必须有可执行权限)

注意:用户名那里如果是 crontab -e 打开的文件不能写用户名,会直接默认当前用户,否则会出错

通过下图理解

在这里插入图片描述

注意区间范围,不能有小数

直接 写数字 说明是到这个时间点就执行

如果 */数字 说明是每隔这个时间点就执行

*  			## 代表:取值范围内的任意数字
/n  		## 代表:每隔 n 时间就执行
-  			## 代表:从某个数字到某个数字
,  			## 分隔:几个离散的数字

例子

从左往右: 分  时  日  月   周    注意:周是周几,而不是第几周
*      10   * * *  		   		## 每天 10点 执行
20    */1   * * *			    ## 每隔一小时的第20分钟执行
*/30 14-16  * * * 				## 每天14点到16点每隔30分钟执行
30    23    * * 1,3,6 		   ## 每周一周三周六的23:30分执行
2/5   10   * * *				## 每天的10点钟从10:02开始,每隔五分钟执行一次
*/10 14-17 * * * root echo "hello world"	## 每天的14-17点每隔10分钟输出 hello world
## 注意:当日或者月和周同时都有的时候,那相当于 or ,每周和每日或者每月满足条件都会执行
比如
0     2   14 * 7			## 每月14号2:00整或每周日2:00整,这两个时间都执行	
30-50/3 12 1 9 * echo "Hi" 	## 在9月1号12时 30--50 分间每隔3分钟执行 

3 制定crond 周期性 计划任务的方法

方法一是在/etc/crontab 写配置文件,方法二方法三是在 crontab -e 打开的文件里面写配置

注意: crontab -e 打开的文件是当前用户写的,所以格式 **用户名那里不能写,**否则无法执行。

运行 crontab -e 命令时,系统会在临时目录中创建一个临时文件,并使用您默认的文本编辑器打开它。临时文件通常位于 /tmp 目录下,文件名类似于 .crontabXX

到时候可以用 crontab -l 查看 该方法最常用

3.1 编辑 /etc/crontab 文件

适用于:root 用户(时间灵活,须重载crond)

举例:直接命令添加执行

useradd user01
useradd user02
vi /etc/crontab
## 以root 用户身份,每月 1号、15号、28号 的 00:00,执行:/bin/date >> /tmp/root_date.txt 命令 (相当于echo`date` >> /tmp/root_date.txt)
0 0 1,15,28 * * root   /bin/date >> /tmp/root_date.txt
## 以<user01 用户身份>,每月 周日 的 00:00,执行:/bin/date >> /tmp/root_date.txt 命令
0 0 * * 0 user01   /bin/date >> /tmp/root_date.txt
## 以<user02 用户身份>,每天 每隔 2小时第5分钟,执行:/bin/date >> /tmp/root_date.txt 命令
5 */2 * * * user02   /bin/date >> /tmp/root_date.txt
systemctl reload crond
3.2 交互式 crontab -e 方式

适用于:当前用户(时间灵活,无须重载crond)

举例:

useradd user01
su -l user01
crontab -e
## 设置:环境变量(★很重要★)  必须要有环境变量才行 类似于 #!/bin/bash
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
## 以当前用户身份,每天 每隔 10分钟,执行:/bin/date >> /tmp/root_date.txt 命令
*/10 * * * * /bin/date >> /tmp/root_date.txt		## 注意:当前用户省略不写,如果写了会出错 (重要)
## crontab -e 方式不用写环境变量 

可 crontab -l 查看,注意:本人发现无需设置环境变量,直接设置分时日月周即可

如下测试 需要显式执行

* * * * * /bin/bash -c 'touch /tmp/$(date +\%s).txt'

但在某些情况下(特别是在使用特定命令或脚本时),设置环境变量可以避免潜在的问题。

踩坑:

www-data@39:/k8s-alidata/go/go-micro$ crontab -l
...
0 6 * * * /bin/bash  /k8s-alidata/go/go-micro/all-services.sh 
## 该脚本调用了 kubectl make go 等诸多命令

正常执行all-services.sh 脚本可以调用成功,如上定时任务不行

发现是没有 kubectl 和 make 和 go 等等诸多这个命令

通过 echo $PATH >> /tmp/1.txt 发现 定时任务环境只有 /usr/bin:/bin

kubectl 路径是 /usr/local/bin/kubectl

make 路径是 /usr/bin/make

脚本前面添加 export PATH=$PATH:/usr/local/bin:/usr/bin 测试还是报错

编译报错,发现还有 go 等等许多命令,我们直接 echo $PATH 查看复制全部环境到脚本里面

然后脚本前面添加 export PATH=(复制的环境) 即可

3.3 标准输入方式

适用于:当前用户(时间灵活,无须重载crond)

非交互式方式

举例:

useradd user01			## 注意:这样直接写的文件也在 crontab -e  里面
su -l user01
crontab <<EOF
## 设置:环境变量(很重要)
SHELL=/bin/bash						# 命令解释器,把命令解析为机器理解的语言
PATH=/sbin:/bin:/usr/sbin:/usr/bin	# 环境变量,去哪找命令
MAILTO=root							# 发送电子邮件给 root 用户
## 以当前用户身份,每天 每隔 10分钟,执行:/bin/date >> /tmp/root_date.txt 命令
*/10 * * * * /bin/date >> /tmp/root_date.txt
EOF
3.4 利用 crond 预定义目录

适用于:root 用户(时间固定,无须重载crond)

仅适用于周期性 执行<Shell 脚本> ☚ Shell 脚本必须具备<x 可执行权限>

了解<crond 预定义目录>

/etc/cron.d 目录	## crond 服务自动加载的自定义 计划任务 配置文件的目录## 该目录中的0hourly 配置文件已经计划执行/etc/cron.hourly 目录/etc/cron.hourly 目录 	## 这是预定义的<每小时 计划任务 脚本目录>  ☚ 已被默认执行,因为在/etc/cron.d 有写执行该目录,下面几个文件也可以设置/etc/cron.daily 目录		## 这是预定义的<每天 计划任务 脚本目录>   ☚ 未被默认执行
/etc/cron.weekly 目录		## 这是预定义的<每周 计划任务 脚本目录>   ☚ 未被默认执行
/etc/cron.monthly 目录	## 这是预定义的<每月 计划任务 脚本目录>   ☚ 未被默认执行

cd /etc/cron.d ll 发现 0hourly 该文件 ,进去 查看如何配置,从而配置另外几个 文件

cat /etc/cron.d/0hourly
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly## 注意:如果是运行目录,要加run-parts(当目录下存在多个脚本的时候)

4 制定crond计划任务

4.1. 计划执行单个命令

举例:

crontab <<EOF## 设置:环境变量(★很重要★)SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin		## 可通过 crontab -e进去该配置文件
MAILTO=root## 以<当前用户身份>,每天 每隔 10分钟,执行:/bin/date >> /tmp/root_date.txt 命令
*/10 * * * * /bin/date >> /tmp/root_date.txt
EOF
4.2.计划执行单个脚本(多个命令)

举例1:

vim /tmp/test.sh				## 写一个脚本
#!/bin/bash
/bin/date > /tmp/root_date.txt 	    chmod +x /tmp/test.sh			## 给脚本可执行权限,不写默认是 a+xcrontab -e 
*/10 * * * * /tmp/test.sh		## 配置文件执行该脚本,不需要run-partssystemctl restart crond			## 无需重启

举例2

vi /tmp/test.sh## 设置:环境变量(很重要)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
## 以当前用户身份,每天 每隔 10分钟,执行:/bin/date >> /tmp/root_date.txt 命令
*/10 * * * * /bin/date >> /tmp/root_date.txtchmod +x /tmp/test.sh
crontab /tmp/test.sh
4.3. 计划执行单个目录(即多个脚本)

举例:

mkdir /tmp/dir01
vi /tmp/dir01/test.sh
#!/bin/bash
/bin/date > /tmp/root_date.txt   ## 脚本chmod +x /tmp/dir01/test.shcrontab <<EOF## 设置:环境变量(★很重要★)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
## 以<当前用户身份>,每天 每隔 10分钟,执行:</dir01 目录>中的<所有可执行 Shell 脚本>
*/10 * * * * run-parts /tmp/dir01    ## 运行目录需要 run-parts
EOF

5 查看crond 计划任务

举例:
crontab -l              ## 查看:<当前用户>的<crond 周期性 计划任务>
crontab -l -u user01    ## 查看:<指定用户>的<crond 周期性 计划任务>
注意:只能查看 crontab -e 的计划任务,并不能查看到主配置文件的任务

6 删除crond 计划任务

举例:
crontab -r              ## 删除:<当前用户>的<crond 周期性 计划任务>
crontab -r -u user01    ## 删除:<指定用户>的<crond 周期性 计划任务>

7 管理crond 计划任务权限

★ **处于完全考虑:**我们需要对<制定 cron 周期性 计划任务>这个<操作行为>进行管控,控制流程如下:

(1) 首先:读取</etc/cron.allow文件>,检查<该用户>是否被<明确允许>

</etc/cron.allow文件>优先级最高,最严厉:默认拒绝一切,除非<明确允许>

对<root 用户>无效

</etc/cron.allow文件>默认未创建,需手动创建

(2) 其次:读取</etc/cron.deny文件>,检查<该用户>是否被<明确拒绝>

</etc/cron.deny文件>优先级最低,最宽松:默认允许一切,除非<明确拒绝>

对<root 用户>无效

(3) 最后:如果</etc/cron.allow 和 /etc/cron.deny>均不存在,则仅允许<root 用户>制定<cron 周期性 计划任务>

注意:和 at 一次性任务那里权限差不多,都是黑名单白名单。

示例1:允许一切,明确拒绝<user01 和 user02>

vi /etc/cron.deny   ## 一行仅写一个<用户帐号>
user01
user02

示例2:拒绝一切,明确允许<user01 和 user02>

vi /etc/cron.allow  ## 一行仅写一个<用户帐号>
user01
user02

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kali Linux使用Netdiscover工具的详细教程

Kali Linux使用Netdiscover工具的详细教程 引言 在网络安全和渗透测试的过程中&#xff0c;网络发现是一个至关重要的步骤。Netdiscover是Kali Linux中一个非常实用的网络发现工具&#xff0c;它可以帮助用户快速识别局域网中的活动设备。本文将详细介绍如何使用Netdiscover工…

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天&#xff0c;摄像头作为公共安全领域的重要一环&#xff0c;其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析&#xff0c;我们可以对特定区域进行实时监控和记录&#xff0c;为社会的安全稳定提供了强有力的保障。 问…

VINS_MONO视觉导航算法【一】基础知识介绍

文章目录 VINS-Mono其他文章说明简介单目相机存在的尺度不确定问题缺乏深度信息尺度等价性对极几何和三角化平移和深度的关系解决尺度不确定问题的方法视觉惯性里程计&#xff08;VIO&#xff09;初始尺度估计持续尺度校正 摄像头数据处理直接法&#xff08;Direct Method&…

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用&#xff0c;支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…

AI PC处理器ARM架构-引入NPU和大模型

AI PC处理器架构变化&#xff1a;ARM低功耗、引入NPU和大模型 AI进化加速端侧落地&#xff0c;新一轮浪潮蓄势待发(2024)”。ARM(Advanced RISC Machine)架构和x86架构是两种主要的处理器架构&#xff0c;它们在设计理念、应用场景和性能特点等方面有显著的差异。 ARM架构是一…

华为的USG6000为什么不能ping通

前言&#xff1a; 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章&#xff0c;感觉写作业更有意思&#xff0c;可以了解新的知识 内容&#xff1a; 首先看毒文章是这样说的&#xff0c;华为的防火墙是…

Mac安装MINIO服务器实现本地上传和下载服务

0.MINIO学习文档 Minio客户端mc使用 | Elibaron学习笔记 1.Mac安装MINIO 中文官方网址&#xff1a;MinIO下载和安装 | 用于创建高性能对象存储的代码和下载内容 (1) brew 安装 brew install minio/stable/minio &#xff08;2&#xff09;安装完成&#xff0c;执行brew i…

墨者学院-登录密码重置漏洞分析

声明&#xff01; 文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人无关&#xff0c;切勿触碰法律底线&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01;&#xff01; 目录标题 前言解题过程总结 前言 在实际渗透测试中&#xff0c;登…

qt QPauseAnimation详解

1、概述 QPauseAnimation是Qt框架中的一个类&#xff0c;专门用于在动画序列中添加暂停效果。它继承自QAbstractAnimation&#xff0c;允许在动画组或动画序列中指定一个时间段的暂停。这对于创建复杂的动画序列非常有用&#xff0c;可以让动画在特定时刻暂停并保持状态。通过…

【热门主题】000076 探索单片机的奥秘:原理、编程与应用全解析

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

SpringMVC(1)

前言 1. SpringMVC简介 2. 入门案例 第一步导入坐标&#xff0c;SpringMVC和servlet 这样其实就把我们要用的Spring相关的都用上了 第三步就是加载这个bean 写配置类 第四步做一个Tomcat容器启动的配置 还要加上Tomcat插件 我们在创建一个快捷方式 注意由于我的JDK版本高…

jenkins+github+springboot自动部署

背景&#xff1a; 最近看流水线有点意思&#xff0c;就说自己也搞一套。 预期效果&#xff1a; idea提交代码后&#xff0c;GitHub接收&#xff0c;jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…

RabbitMQ 客户端 连接、发送、接收处理消息

RabbitMQ 客户端 连接、发送、接收处理消息 一. RabbitMQ 的机制跟 Tcp、Udp、Http 这种还不太一样 RabbitMQ 服务&#xff0c;不是像其他服务器一样&#xff0c;负责逻辑处理&#xff0c;然后转发给客户端 而是所有客户端想要向 RabbitMQ服务发送消息&#xff0c; 第一步&a…

MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序

MSSQL2022导入Excel的一个错误&#xff1a;未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序 一、导入情况二、问题发现三、问题解决 最近在安装新版SQLServer SSMS 2022后&#xff0c;每次导入Excel都会出现错误提示&#xff1a;未在本地计算机上注册“Microsoft.AC…

GPT 1到4代的演进笔记

1. GPT-1 标题是 Improving Language Understanding by Generative Pre-Training. 发表于 2018.02, 比 bert(发布于 2018.10) 早了半年. 1.1 动机 困难:NLU 任务是多样的, 有 {textual entailment, question answering, semantic similarity assessment, document classifica…

【06】 MySQL 数据表的约束都有哪些?理解与实践

文章目录 1. 主键约束&#xff08;Primary Key&#xff09;2. 外键约束&#xff08;Foreign Key&#xff09;3. 唯一约束&#xff08;Unique&#xff09;4. 非空约束&#xff08;Not Null&#xff09;5. 默认值约束&#xff08;Default&#xff09;6. 检查约束&#xff08;Chec…

element-ui的下拉框报错:Cannot read properties of null (reading ‘disabled‘)

在使用element下拉框时&#xff0c;下拉框option必须点击输入框才关闭&#xff0c;点击其他地方报错&#xff1a;Cannot read properties of null (reading disabled) 造成报错原因&#xff1a;项目中使用了el-dropdown组件&#xff0c;但是在el-dropdown里面没有定义el-dropdo…

工业—使用Flink处理Kafka中的数据_ChangeRecord1

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL&#xff08;丹摩智算&#xff09; 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

Java程序调kubernetes(k8s1.30.7)core API简单示例,并解决403权限验证问题,即何进行进行权限授权以及验证

简单记录问题 一、问题描述 希望通过Java程序使用Kubernetes提供的工具包实现对Kubernetes集群core API的调用&#xff0c;但是在高版本上遇见权限验证问题4xx。 <dependency><groupId>io.kubernetes</groupId><artifactId>client-java</artifact…