当前位置: 首页 > news >正文

Linux中的计划任务

一次性任务

功能介绍:

如果我们希望在将来的某个时间点去执行某件事件,这个事件执行完后任务就结束,那么我们
就可以使用一性计划任务。而要实现这种功能,我们需要任务 atd 服务。我们先查询一下系
统是否存在这个服务。

查看是否存在这个服务

[root@free ~]# ps -ef | grep atp
root        2466    2371  0 20:22 pts/0    00:00:00 grep --color=auto atp命令解释
ps -ef:这是一个用于查看系统中所有进程详细信息的命令。其中,ps 是用于报告当前进程状态的工具,-e 表示显示所有进程,-f 表示显示完整格式的输出,包含进程的所有者、进程 ID、父进程 ID、CPU 使用时间、启动时间、终端等信息。|:这是管道符号,它的作用是将前一个命令(ps -ef)的输出作为后一个命令(grep atp)的输入。
grep atp:grep 是一个强大的文本搜索工具,它会在输入的文本中查找包含指定模式(这里是 atp)的行。所以,grep atp 会从 ps -ef 的输出里找出包含 atp 的行。输出解释
root        2466    2371  0 20:22 pts/0    00:00:00 grep --color=auto atp
这一行输出由多个字段构成,各字段的含义如下:
root:这是进程的所有者,意味着该进程是由 root 用户启动的。
2466:这是进程的 ID(PID),每个正在运行的进程都有一个唯一的 PID,可用于对进程进行管理,比如终止进程等操作。
2371:这是父进程的 ID(PPID),表示该进程是由 PID 为 2371 的进程创建的。
0:这个字段代表 CPU 的使用率,这里是 0,表示该进程当前几乎没有占用 CPU 资源。
20:22:这是进程的启动时间,表明该进程在 20:22 这个时刻开始运行。
pts/0:这代表进程所关联的终端。pts 是伪终端的意思,pts/0 就是一个伪终端设备。
00:00:00:这个字段表示进程所使用的 CPU 时间,这里是 0,说明该进程到目前为止几乎没有使用 CPU 时间。
grep --color=auto atp:这是进程的命令行,也就是启动该进程所执行的命令。--color=auto 这个参数让 grep 在输出结果时,将匹配到的内容用颜色进行标记,方便查看。
[root@localhost ~]# find / -name atd*
[root@free ~]# find / -name atd*
/run/atd.pid
/sys/fs/cgroup/system.slice/atd.service
/etc/pam.d/atd
/etc/systemd/system/multi-user.target.wants/atd.service
/etc/sysconfig/atd
/usr/sbin/atd
/usr/lib/systemd/system/atd.service
/usr/share/man/man8/atd.8.gzfind:这是一个在文件系统中查找文件和目录的强大命令。它能够依据多种条件来搜索文件,像文件名、文件类型、文件大小、修改时间等。
/:这是 find 命令的搜索起始路径。/ 代表根目录,意味着搜索会从整个文件系统的最顶层开始,也就是会遍历所有的文件和目录。
-name:这是 find 命令的一个选项,其作用是按照文件名进行搜索。
atd*:这是要搜索的文件名模式。* 是通配符,它可以匹配任意数量(包括零个)的任意字符。所以,atd* 能够匹配所有以 atd 开头的文件名。

没有则下载 

[root@localhost ~]# dnf install at -y

再去差找进程,文件

# 查询与atd相关的文件
[root@localhost ~]# find / -name atd*
/etc/pam.d/atd
/etc/sysconfig/atd
/etc/systemd/system/multi-user.target.wants/atd.service
/usr/sbin/atd
/usr/lib/systemd/system/atd.service
/usr/share/man/man8/atd.8.gz
# 启动atd服务
[root@localhost ~]# systemctl start atd
# 查看atd进程信息
[root@localhost ~]# ps -ef | grep atd
root 12414 1 0 09:51 ? 00:00:00 /usr/sbin/atd -f
root 12416 1109 0 09:51 pts/0 00:00:00 grep --color=auto
atdroot 12414 1 0 09:51 ? 00:00:00 /usr/sbin/atd -froot:表示该进程的所有者是 root 用户。
1461:进程 ID(PID),是系统为该进程分配的唯一标识。
1:父进程 ID(PPID),说明该进程的父进程是系统初始化进程(PID 为 1,通常是 systemd 或 init)。
0:CPU 使用率,表示该进程到目前为止占用的 CPU 时间百分比相对较低。
20:16:进程的启动时间,即该进程在 20:16 开始运行。
?:表示该进程没有控制终端(no controlling terminal)。
00:00:00:累计的 CPU 时间,即该进程自启动以来总共使用的 CPU 时间。
/usr/sbin/atd -f:atd 是一个守护进程,负责运行使用 at 命令安排的在指定时间执行的任务。-f 是 atd 命令的一个选项,可能表示以某种特定的前台模式运行(具体取决于 atd 的实现,通常用于调试等目的)。

使用示例 

[root@free ~]# at now +2min
warning: commands will be executed using /bin/sh
at> echo hellow world<EOT>
job 4 at Mon Apr 28 20:45:00 2025at now + 2min 是 at 命令的一种使用方式。at 是一个用于在指定时间执行任务的工具,它允许你将一个或多个命令安排在未来的某个时间点运行。具体参数含义如下:
now:表示当前时间。
+ 2min:表示在当前时间的基础上往后推迟 2 分钟。所以 at now + 2min 整体意思是在当前时间往后推 2 分钟的时候执行后续你输入的命令。注意:
然后按下 Ctrl + D,系统就会在当前时间往后推 2 分钟时执行这条命令小时(hour 或 h):例如 at now + 1h 表示在当前时间的 1 小时后执行任务。
天(day 或 d):如 at now + 2d 代表在当前时间的 2 天后执行任务。
周(week 或 w):at now + 1w 意味着在当前时间的 1 周后执行任务。
at命令没有秒哈

计划所在的目录 

# 3. 计划任务所在的目录
[root@localhost ~]# ll /var/spool/at
total 4
-rwx------. 1 root root 3163 Apr 20 10:01 a0000101bbce3a
drwx------. 2 root root 6 Apr 4 2022 spool

计划任务权限管理

对于 atd 这个服务来说,我们可以 /etc/at.deny 文件定义哪些用户不允许使用这个任务。也
可以在 /etc/at.allow 文件定义哪些用户是允许使用计划任务的。如果两个文件中都同时存在
相同的用户,那么这些相同用户是可以被允许执行的。如果两个文件中都不存在 ,则只有
root 用户可以执行。
# 1. 为root用户指定了一个计划任务,使用 ctrl+d 结束输入[root@free ~]# at now+2min
warning: commands will be executed using /bin/sh
at> wall hellow  
at> <EOT>wall 是 Linux 系统中的一个命令,其英文全称是 “write all”,功能是向系统中所有已登录的用户发送广播消息。
# 2. 查询当前未被执行的任务列表
[root@localhost ~]# atq
2 Sun Apr 20 10:13:00 2025 a root
[root@localhost ~]# at -l
2 Sun Apr 20 10:13:00 2025 a root
[root@localhost ~]# ll /var/spool/at
total 4
-rwx------. 1 root root 3164 Apr 20 10:10 a0000201bbce45
drwx------. 2 root root 6 Apr 20 10:02 spool
# 下面是自动执行的结果
Broadcast message from root@localhost.localdomain (somewhere) (Sun Apr
20 10:13
hello
^C1. atq 命令及输出
atq 是 at 命令的一个子命令,英文全称为 “at queue”,它的作用是列出当前用户(或者在以 root 用户执行时列出所有用户)在 at 队列中等待执行的任务。
输出:
2 Sun Apr 20 10:13:00 2025 a root2:这是任务的编号,用于唯一标识队列中的任务。在对任务进行操作(如删除任务)时,需要用到这个编号。
Sun Apr 20 10:13:00 2025:表示该任务计划执行的时间,即 2025 年 4 月 20 日星期日的 10:13:00。
a:这个字符代表任务的优先级,a 通常是默认的优先级。
root:表明该任务是由 root 用户提交的。2. at -l 命令及输出
at -l 与 atq 功能相同,都是用于列出 at 队列中的任务。所以其输出和 atq 是一样的:
2 Sun Apr 20 10:13:00 2025 a root

切换到redhat用户尝试(也就是其他用户)

[redhat@free ~]$ at now +2min
warning: commands will be executed using /bin/sh
at> wall hellow world
at> <EOT>
job 6 at Mon Apr 28 21:10:00 2025
[redhat@free ~]$ atq
6	Mon Apr 28 21:10:00 2025 a redhat# 自动执行的结果
Broadcast message from root@localhost.localdomain (somewhere) (Sun Apr
20 10:13
hello
^C

将该用户写入拒绝执行任务的文件中(退回root用户写,普通用户没有权限)

# 5. 将redhat用户写入到不被允许使用任务文件中
[root@localhost ~]# vim /etc/at.deny
[root@localhost ~]# cat /etc/at.deny
redhat

再切换到redhat用户中尝试用at写任务

[redhat@free ~]$ at now +2min
You do not have permission to use at.权限被拒绝

删除待执行目录


atrm 是 Linux 系统中用于删除使用 at 命令提交的待执行任务的命令,其英文全称是 “at remove”。
以下是 atrm 命令的常见用法和示例:
语法格式:
atrm [-V] job_number [job_number ...]其中,-V 选项是可选的,用于显示命令的版本信息;job_number 是要删除的 at 任务的编号,可以同时指定多个任务编号,用空格分隔。
示例:
首先,使用 atq 或 at -l 命令查看当前系统中待执行的 at 任务及其编号。
atq假设输出如下:
1 Sun Apr 21 14:30:00 2025 a root
2 Sun Apr 21 15:00:00 2025 a root这里显示了两个待执行的 at 任务,编号分别为 1 和 2。
然后,要删除编号为 1 的任务,可以执行以下命令:
atrm 1
执行该命令后,编号为 1 的 at 任务就会从待执行队列中被移除,不会再按计划执行。
如果要同时删除多个任务,比如删除编号为 1 和 2 的任务,可以这样输入:
atrm 1 2
注意,只有任务的所有者或具有足够权限(如 root 用户)的用户才能删除 at 任务。

 周期性任务

功能介绍:

如果我们希望在每天、每周、每月的某个时间去重复执行某些任务,那么我们就需要使用周期
性的计划任务。
比如,公司一般会在每天晚上2点之后去获取我们的当前操作的日志数据,然后对些数据进行
清洗操作。这类的任务就可以放到周期性的计划任务中。
要想实现这样的功能,我们需要通过 crond 这个守护进程来实现。
# 1. 查看crond守护进程是否存在
[root@localhost ~]# ps -ef | grep crond
root 979 1 0 09:09 ? 00:00:00 /usr/sbin/crond -n
root 12583 1109 0 10:24 pts/0 00:00:00 grep --color=auto
crond
# 2. 查看crond进程是否已经启用
[root@localhost ~]# systemctl is-active crond
active

文件介绍

[root@localhost ~]# rpm -ql cronie
/etc/cron.d # 配置文件目录
/etc/cron.d/0hourly
/etc/cron.deny # 不允许执行的用户
/etc/pam.d/crond
/etc/sysconfig/crond
/usr/bin/cronnext
/usr/bin/crontab # 添加任务的文件
/usr/lib/systemd/system/crond.service # 启动cron的服务文件
/usr/sbin/crond # 执行任务的命令
/var/spool/cron # 计划任务日志目录

计划任务作业

对于普通用户我们可以使用 crontab 命令来管理作业,而对于 root 用户,我们可以使用
crontab -u 来管理任务

 

任务格式

对于cron 来实现周期性计划任务来言,它是有一定的格式的,包括以下几个且顺序如下:
1. 分钟
2. 小时
3.
4.
5.
分钟(0 - 59)、小时(0 - 23)、日期(1 - 31)、月份(1 - 12)、星期(0 - 6,0 代表周日,1 代表周一,以此类推)。
这些都可以使用 * 来表示。还可以使用 x-y 表示从 x 到 y 这个范围。以及 x,y 表示列表。还
有 */x 表示每隔x的时间就做什么事。
vim /etc/crontabSHELL=/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

 周期任务示例

 1、以下作业将在每年 2 月 2 日上午 9 点准点执行命令 /usr/local/bin/yearly_backup

# 1. 创建一个任务
[root@localhost ~]# crontab -e
0 9 2 2 * /usr/local/bin/yearly_backup
# 2. 查看当前作用的作业
[root@localhost ~]# crontab -l
0 9 2 2 * /usr/local/bin/yearly_backup
# 3. 删除当前用户的作业
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
2、以下作业将在七月每周五的上午 9 点和下午 5 点之间,每 5 分钟向该作业的所有者发送
包含单词 Chime 的电子邮件。
[root@localhost ~]# crontab -e
*/5 9-17 * 7 5 echo Chime
[root@localhost ~]# crontab -l
*/5 9-17 * 7 5 echo Chime

注意:每五天可以像下面的格式书写

从指定日期开始,每五天执行一次
若要从指定日期(例如 5 号)开始,之后每五天执行一次,可使用以下 cron 表达式0 0 5-31/5 * * command
该表达式与上面的类似,只是日期范围从 5 号开始,即每月的 5 号、10 号、15 号、20 号、25 号、30 号会执行任务。
3、以下作业将在每个工作午夜前的两分钟运行命令 /usr/local/bin/daily_report
[root@localhost ~]# crontab -e
58 23 * * 1-5 /usr/local/bin/daily_report
4、以下作业将在每个工作日上午 9 点执行 mutt 命令,从而将邮件消息 Checking in 发送给
收件人 boss@example.com。
1.先确认是否安装mutt
2.书写脚本
#!/bin/bash
echo "Checking in" | mutt -s "Checking in" boss@example.com上述脚本的作用是使用 echo 输出 “Checking in” 作为邮件内容,然后通过管道将其传递给 mutt 命令,同时设置邮件主题为 “Checking in”,并将邮件发送给 boss@example.comchmod +x send_email.sh

3.最后书写周期任务

0 9 * * 1-5 /path/to/send_email.sh
5、以 redhat 身份计划周期性作业,在上午 8 点到晚上 9 点之间每两分钟一次将当前日期和
时间附加到 /home/redhat/my_first_cron_job.txt。该作业只能在周一到周五运行,周六和
周日不能运行。
[redhat@localhost ~]$ crontab -e
*/2 8-21 * * 1-5 echo date >> /home/redhat/my_first_cron_job.txt

相关文章:

Linux中的计划任务

一次性任务 功能介绍&#xff1a; 如果我们希望在将来的某个时间点去执行某件事件&#xff0c;这个事件执行完后任务就结束&#xff0c;那么我们 就可以使用一性计划任务。而要实现这种功能&#xff0c;我们需要任务 atd 服务。我们先查询一下系 统是否存在这个服务。 查看是…...

【C++】线程池

C 线程池介绍 什么是线程池&#xff1f; 线程池&#xff08;Thread Pool&#xff09; 是一种并发编程模型&#xff0c;用于管理和复用多个线程&#xff0c;避免频繁创建/销毁线程的开销。它通过预创建一组线程&#xff0c;并将任务提交到队列中&#xff0c;由空闲线程自动执行…...

美团社招一面

美团社招一面 做题 1、面试题 <style> .outer{width: 100px;background: red;height: 100px; }.inner {width: 50px;height: 50px;background: green; }</style> <div class"outer"><div class"inner"></div> </div>…...

C++:BST、AVL、红黑树

C:BST、AVL、红黑树 二叉搜索树&#xff08;BST&#xff09;二叉平衡搜索树&#xff08;AVL&#xff09;红黑树&#xff08;RBT&#xff09;三者对比什么情况下使用&#xff1f;C 标准库中的使用总结 二叉搜索树&#xff08;BST&#xff09; 二叉搜索树&#xff08;Binary Sea…...

算法笔记.染色法判断二分图

题目&#xff1a;&#xff08;来自AcWing&#xff09; 给定一个 n 个点 m 条边的无向图&#xff0c;图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数 n 和 m。 接下来 m 行&#xff0c;每行包含两个整数 u 和 v&#xff0c;表示点 u …...

在 IDEA 中写 Spark 程序:从入门到实践

在大数据处理领域&#xff0c;Apache Spark 凭借其出色的性能和丰富的功能受到广泛欢迎。而 IntelliJ IDEA 作为一款功能强大的 Java 集成开发环境&#xff0c;为编写 Spark 程序提供了极大的便利。本文将详细介绍如何在 IDEA 中搭建 Spark 开发环境并编写运行 Spark 程序&…...

[Spring] Sentinel详解

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

让数据优雅落地:用 serde::Deserialize 玩转结构体实体

前言 想象一下,服务器突然飞来一堆 JSON 数据,就像一群无头苍蝇冲进办公室,嗡嗡作响,横冲直撞。此刻,你的任务,就是把这群“迷路数据”安置进正确的格子里,分门别类,秩序井然,不混不乱,不漏一只。 好在 Rust 早就为我们备好瑞士军刀:serde::Deserialize。它不仅刀…...

【wpf】 WPF中实现动态加载图片浏览器(边滚动边加载)

WPF中实现动态加载图片浏览器&#xff08;边滚动边加载&#xff09; 在做图片浏览器程序时&#xff0c;遇到图片数量巨大的情况&#xff08;如几百张、上千张&#xff09;&#xff0c;一次性加载所有图片会导致界面卡顿甚至程序崩溃。 本文介绍一种 WPF Prism 实现动态分页加…...

Flow原理

fun main() {runBlocking {launch {flow4.collect{println("---collect-4")}println("---flow4")}}val flow4 flow<Boolean>{delay(5000)emit(false) } 我们分析下整个流程 1.flow为什么之后在collect之后才会发送数据 2.collect的调用流程 我…...

业绩回暖、股价承压,三只松鼠赴港上市能否重构价值锚点?

在营收重返百亿俱乐部后&#xff0c;三只松鼠再度向资本市场发起冲击。 4月25日&#xff0c;这家坚果零食巨头正式向港交所递交上市申请书&#xff0c;若成功登陆港股&#xff0c;将成为国内首个实现“AH”双上市的零食品牌。 其赴港背后的支撑力&#xff0c;显然来自近期披露…...

基于大模型的胆总管结石全流程预测与临床应用研究报告

目录 一、引言 1.1 研究背景 1.2 研究目的与意义 1.3 研究方法和创新点 二、大模型在胆总管结石预测中的应用原理 2.1 大模型概述 2.2 模型构建的数据来源与处理 2.3 模型训练与优化 三、术前预测与准备 3.1 术前胆总管结石存在的预测 3.2 基于预测结果的术前检查方…...

QT—布局管理器之BoxLayout篇

1.布局管理器的概述 在Qt中&#xff0c;使用布局管理器的主要原因是它能够自动管理组件的大小和位置&#xff0c;从而实现灵活且动态的界面布局。布局管理器可以自动调整组件以适应窗口大小的变化&#xff0c;确保界面在不同分辨率和设备上都能保持良好的显示效果。这不仅减少了…...

如何在 IntelliJ IDEA 中编写 Speak 程序

在当今数字化时代&#xff0c;语音交互技术越来越受到开发者的关注。如果你想在 IntelliJ IDEA&#xff08;一个强大的集成开发环境&#xff09;中编写一个语音交互&#xff08;Speak&#xff09;程序&#xff0c;那么本文将为你提供详细的步骤和指南。 一、环境准备 在开始编…...

湖北理元理律师事务所:债务优化的法律机制与民生实践

在债务纠纷日益增多的社会背景下&#xff0c;合法、规范的债务管理服务成为民生需求的重要环节。湖北理元理律师事务所作为经国家司法局注册登记的债事服务机构&#xff0c;以法律为工具&#xff0c;探索出一套覆盖债务咨询、规划与风险防控的服务体系。 1.法律服务的专业化框…...

练习普通话,说话更有节奏

玲珑塔&#xff0c;塔玲珑&#xff0c;玲珑宝塔第一层&#xff0c;一张高桌四条腿&#xff0c; 一个和尚一本经。一个铙钹一口磬&#xff0c;一个木鱼一盏灯。 一个金玲&#xff0c;整四两&#xff0c;风儿一刮响哗愣。 玲珑塔&#xff0c;隔过两层数三层&#xff0c;三张高桌十…...

链表相关——Python实现

一、链表的创建及数据插入 示例代码&#xff1a; #1.定义一个结点类 class ListNode():def __init__(self,x,nextNone):self.valxself.nextnext #2.定义单链表 class LinkList():#2.1 创建一个头指针为空的链表def __init__(self,headNone):self.headNone#2.2 将数据插入链表…...

[OS_9] C 标准库和实现 | musl libc | offset

在你感觉有困难的时候&#xff0c;计算机 一定有解决办法 操作系统为我们提供了对象和操作它们的 API&#xff1a;我们学习了进程管理的 fork, execve, exit, waitpid&#xff1b;内存管理的 mmap&#xff1b;文件 (对象) 管理的 open, read, write, dup, close, pipe, …… 大…...

【氮化镓】质子辐照对 GaN-on-GaN PiN 二极管电导调制的影响

2025 年,中国科学技术大学的 Xuan Xie 等人采用实验研究的方法,深入探究了 10-MeV 和 50-MeV 质子辐照( fluence 最高达 11014 cm−2)对 kV 级垂直 GaN-on-GaN PiN 二极管的导电调制影响。研究背景在于空间应用中的功率电子电路易受质子、α 粒子和重离子等影响而降级甚至失…...

深入浅出限流算法(一):简单但有“坑”的固定窗口计数器

在现代分布式系统和 API 设计中&#xff0c;限流 (Rate Limiting) 是一个不可或缺的环节。它像一个尽职的门卫&#xff0c;保护着我们的服务资源&#xff0c;防止因突发流量或恶意攻击导致系统过载&#xff0c;同时也能确保资源的公平分配。 实现限流的算法多种多样&#xff0…...

项目上线流程梳理(Linux宝塔面板)

项目部署&#xff08;Linux宝塔面板&#xff09; 一、准备工作 1、 后端项目 梳理配置添加application-prod.yml使用maven进行打包生成jar包 2、前端项目 修改request.ts请求的后端端口&#xff08;服务器地址&#xff09;打包 二、服务器 1、服务器环境安装 2、初始化数…...

MCP Servers玩玩WebUI自动化

MCP Servers快速了解 一文搞懂 MCP Servers mcp server网站 https://mcpservers.orghttps://mcp.sohttps://glama.ai/mcp/servershttps://www.pulsemcp.com 一、安装&配置mcp clients mcp clients可以使用客户端&#xff08;常见claude desktop&#xff0c;但claude需…...

永磁同步电机控制算法-转速环电流环SMC控制器

一、原理介绍 为改进传统PI转速环电流环控制器易超调、抗干扰性能差的问题&#xff0c;转速环采用一阶滑模控制器&#xff0c;电流环采用二阶滑模控制器。 二、仿真验证 在MATLAB/simulink里面验证所提算法&#xff0c;采用和实验中一致的控制周期1e-4&#xff0c;电机部分计…...

Nginx支持HTTP2/HTTP3的并用CURL测试

对比HTTP2和HTTP3 HTTP/3 相比 HTTP/2 的主要优势&#xff1a; 项目HTTP/2HTTP/3传输层基于 TCP&#xff08; TLS&#xff09;基于 QUIC&#xff08;内置 TLS&#xff09;建立连接速度慢&#xff0c;至少 2~3 次握手&#xff08;TCP TLS&#xff09;快&#xff0c;只需 1 次握…...

阅读MySQL实战45讲第11天

目录 引言&#xff1a; 基本原理 排序方式 索引排序 文件排序&#xff08;File Sort&#xff09; 优化建议 一、全字段排序 二、rowid 排序 如果 MySQL 认为排序的单行长度太大会怎么做呢&#xff1f; 1. 使用磁盘临时表 2. 分阶段排序 3. 产生警告或错误 三、全字段排序 VS ro…...

linux 使用nginx部署vue、react项目

前言 本文基于&#xff1a;操作系统 CentOS Stream 8 使用工具&#xff1a;Xshell8、Xftp8 1.安装依赖 安装gcc、gcc-c yum install gcc gcc-c -y安装pcre、pcre-devel yum install pcre pcre-devel -y安装zlib、zlib-devel yum install zlib zlib-devel -y安装openssl、…...

逆向设计——CWDM_splitter

一、创建结构 switchtolayout; selectall; delete;## SIM PARAMS num_wg = 4; wg_width = 0.5e-6; out_wg_dist = 1e-6; mode_width = 3*wg_width; total_wg_h = num_wg*wg_width + (num_wg-1)*out_wg_dist;opt_size_x=6e-6; opt_size_y=6e-6;size_x=opt_size_x+1e-6; size_y=o…...

单片机-89C51部分:7、中断

飞书文档https://x509p6c8to.feishu.cn/wiki/A5gcwyL5giq1JOkkcsscn8eLnzf 一、中断的作用 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的&#xff0c;中断功能的存在&#xff0c;很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功…...

小波变换和图像的融合

看到一篇比较有趣的文章&#xff0c;是将小波变换融入到图像配准过程中。论文题目是Deformable medical image registration based on wavelet transform and linear attention。论文提出了一种基于小波变换和线性注意力的可变形医学图像配准方法&#xff0c;通过小波下采样模块…...

2799. 统计完全子数组的数目

给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件&#xff0c;则称之为 完全子数组 &#xff1a; 子数组中 不同 元素的数目等于整个数组不同元素的数目。 返回数组中 完全子数组 的数目。 子数组 是数组中的一个连续非空序列。 示例 1&#xff…...

docker镜像构建常用参数

要退出出去ctrlpq&#xff0c;或者直接输入exit也可以直接退出 这样就生成了可以这么用&#xff0c;但安全性比较差&#xff0c;不利于审计 企业里构建的镜像这样&#xff1a; “.”是构建的地点是当前的意思&#xff1b;构建了一层在[2/2]RUN touch /leefile里面 发现有我…...

如何用postman进行批量操作

业务场景&#xff1a; 有些时候&#xff0c;我们会需要批量的将SAP B1系统中的几千条的数据删除或者取消单据&#xff0c;这个时候&#xff0c;一条条去操作&#xff0c;指定是到猴年马月了。SAP Business One本身提供了DTW这个工具&#xff0c;但是这个更新&#xff0c;可以操…...

【MCP】第三篇:Cline工具链路追踪——解码“协议引擎“的神经传导奥秘

【MCP】第三篇&#xff1a;Cline工具链路追踪——解码"协议引擎"的神经传导奥秘 一、引言二、CloudFlare AI Gateway2.1 核心定位2.2 核心能力2.3 与MCP协议逆向的深度契合 三、VSCode Cline与CloudFlare联调实战3.1 CloudFlare配置3.2 VSCode Cline配置3.3 联调实战…...

HTML标记语言_@拉钩教育【笔记】

目录 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个页面) 8.多媒体标签(音/视频) 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个…...

SDK游戏盾、高防IP、高防CDN三者的区别与选型指南

在网络安全防护领域&#xff0c;SDK游戏盾、高防IP和高防CDN是常见的解决方案&#xff0c;但各自的功能定位、技术实现和适用场景差异显著。本文将通过对比核心差异&#xff0c;帮助您快速理解三者特点并选择适合的防护方案。 一、核心功能定位 SDK游戏盾 功能核心&#xff1a…...

C++中的格式化字符串

C中的格式化字符串 fmt 库简介 {fmt}是一个开源的、现代化的C格式化库&#xff0c;由Victor Zverovich创建。它提供了一种安全、快速且方便的字符串格式化方式&#xff0c;其设计理念受到了Python的str.format()的启发 fmt库的主要特点 易用性&#xff1a;使用简洁的语法&a…...

民办生从零学C的第十二天:指针(1)

每日励志&#xff1a;拼搏十年&#xff0c;征战沙场&#xff0c;不忘初心&#xff0c;努力成为一个浑身充满铜臭味的有钱人。 一.内存和地址 1.内存 计算机内存是一系列存储单元的集合&#xff0c;每个存储单元都有唯一的地址来标识。这些存储单元用于存储程序的数据和指令。…...

复习Vue136~180

1.使用create-vue创建项目 npm init vuelatest 项目目录和关键文件&#xff1a; new Vue() 创建一个应用实例 > createApp()、createRouter() createStore() 、将创建实例进行了封装&#xff0c;保证每个实例的独立封闭性。 禁用vue2的插件vuter 使用vue3的插件volar scrip…...

高炉项目中DeviceNET到Ethernet的转换奥秘

在工业自动化的世界中&#xff0c;高炉项目中的数据通信至关重要。其中DeviceNET和Ethernet作为两种主流的网络协议&#xff0c;扮演着不可或缺的角色。它们之间的转换不仅仅是技术上的桥梁&#xff0c;更是实现信息高效传递的关键。今天&#xff0c;我们就来揭开从DeviceNET到…...

awk之使用详解(Detailed Explanation of Using AWK)

awk使用详解 1. 入门 1.1 什么是 awk&#xff1f; ①Awk是一种文本处理工具&#xff0c;适用于处理结构化数据&#xff0c;例如表格数据。 ②它可以读取一个或多个文本文件&#xff0c;并执行模式扫描和处理等指定的操作。 ③基本逻辑涉及数据的提取&#xff0c;排序和计算…...

TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

在背板系统或任何长走线设计里&#xff0c;你大概都碰过这画面&#xff1a; TDR 曲线一开始乖乖在 92 Ω&#xff0c;但越往末端、阻抗越爬越高&#xff0c;来到最高 97 Ω&#xff0c;心里瞬间凉半截 &#x1f612; &#xff0c;「难不成... 板厂又翻车了吗&#xff1f;」 然…...

TypeScript之基础知识

基础知识 1. 基本类型 类型描述string字符串&#xff08;如 "hello"&#xff09;number数字&#xff08;整数或浮点数&#xff0c;支持二进制、八进制、十六进制&#xff09;boolean布尔值&#xff08;true/false&#xff09;null空值&#xff08;需显式声明&#x…...

SNMP协议之详解(Detailed Explanation of SNMP Protocol)

SNMP协议之详解 一、前言 SNMP&#xff0c;被形象地喻为网络世界大的工具箱&#xff0c;使他们能的“智慧守护者”&#xff0c;它为网络管理员装备了一套功能强够实现对网络设备状态的实时监控、性能数据的全面收集、远程配置的灵活管理以及故障事件的即时响应。借助SNMP&…...

机器学习-入门-线性模型(2)

机器学习-入门-线性模型(2) 3.4广义线性回归 一般形式&#xff1a; y g − 1 ( w T x b ) y g^{-1} \left( w^T x b \right) yg−1(wTxb) 单调可微的联系函数 (link function) 令 g ( ⋅ ) ln ⁡ ( ⋅ ) g(\cdot) \ln (\cdot) g(⋅)ln(⋅) 则得到对数线性回归 ln ⁡…...

【问题】docker容器修改环境变量的方式

问题 启动n8n之后&#xff0c;docker容器提示&#xff1a; There is a deprecation related to your environment variables. Please take the recommended actions to update your configuration: 2025-04-28 09:20:08 - N8N_RUNNERS_ENABLED -> Running n8n without tas…...

基于 Spring Boot 瑞吉外卖系统开发(八)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;八&#xff09; 自动填充公共字段 MyBatis-Plus公共字段自动填充&#xff0c;也就是在插入或者更新的时候为指定字段赋予指定的值&#xff0c;使用它的好处就是可以统一对这些字段进行处理&#xff0c;降低了冗余代码的数量。本…...

LeetCode热题100--560.和为K的子数组(前缀和)--中等

1.题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;nums […...

搭建 Spark YARN 模式集群指南

在大数据处理领域&#xff0c;Apache Spark 凭借其卓越的性能和易用性广受青睐。而 YARN&#xff08;Yet Another Resource Negotiator&#xff09;作为 Hadoop 的资源管理框架&#xff0c;能高效管理集群资源。将 Spark 与 YARN 结合&#xff0c;以 YARN 模式搭建集群&#xf…...

服务器部署,Nginx安装和配置

Nginx简介 Nginx是一款轻量级和高性能的web服务器、反向代理服务器和电子邮件代理服务器。你可以使用Nginx实现网页的部署&#xff0c;解决跨域问题实现邮件服务器&#xff0c;甚至Nginx也可以实现音视频推流拉流服务器&#xff0c;Nginx可以实现的功能远超你的想象&#xff0…...

Java后端接口调用拦截处理:注解与拦截器的实现

在Java开发中&#xff0c;对后端接口调用进行拦截处理是一种常见的需求&#xff0c;通常用于权限验证、Token校验、状态更新等操作。本文将围绕 Spring框架的拦截器&#xff08;Interceptor&#xff09;、Spring AOP&#xff08;面向切面编程&#xff09; 和 Spring Security 三…...