Linux---计划任务
本章主要介绍如何创建计划任务
- 使用 at 创建计划任务
- 使用 crontab 创建计划任务
有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种: 一个是at计划任务,另一个是 crontab计划任务。
下面我们分别来看这两种计划任务的使用方法。
at
at计划任务是一次性的,到了指定的时间点就开始执行指定的命令,执行完成之后,不会重复执行这个命令。
首先查看系统中是否存在at计划任务,命令是atq或at -1(字母1),命令如下。
[root@rhel03 ~]# atq
[root@rhel03 ~]#
[root@rhel03 ~]# at -l
[root@rhel03 ~]#
这两个命令都没有任何输出,说明当前系统中并不存在任何计划任务。下面开始创建at计划任务,at的用法如下。
at 时间点 <按 【Enter】键>
> 输入要执行的命令
Ctrl+D 提交
例如,要在2025年12月12日执行hostname命令,命令如下。
[root@rhel03 ~]# at 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 1 at Fri Dec 12 11:48:00 2025
[root@rhel03 ~]#
这里只是指定了日期,并没有指定在2025年12月12日的几点执行。那么,创建这个计划任务时是几点几分,例如,这里是在11点48分创建的at计划任务,那么到了2025年12月12 日的11点48分就要自动执行hostname命令了。
如果要指定某个时间点,格式如下。
at 时间 日期 <按 【Enter】键>
> 输入要执行的命令
Ctrl+D 提交
例如,要在2025年12月12日上午10点执行 hostname命令,命令如下。
[root@rhel03 ~]# at 10:00 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 2 at Fri Dec 12 10:00:00 2025
[root@rhel03 ~]#
注意:
- 这里是24小时制的,所以10:00指的是上午10点,如果想指定下午10点,则要写成22:00。
- 写时间最多只能精确到分,不能精确到秒。
这里上午用am表示,下午用pm表示。例如,要在2025年12月12日下午10点执行 hostname命令,命令如下。
[root@rhel03 ~]# at 10pm 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 3 at Fri Dec 12 22:00:00 2025
[root@rhel03 ~]#
at也支持某天之后的某个时间点运行一个命令。例如,要在3天之后的下午4点执行, hostname命令,命令如下。
[root@rhel03 ~]# at 4pm +3days
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 4 at Mon Dec 11 16:00:00 2023
[root@rhel03 ~]#
这里“+”两边有没有空格都可以,days可以换成weeks,表示3周之后的下午4点。
如果想在第二天的下午4点执行hostname命令,命令如下。
[root@rhel03 ~]# at 4pm +1days
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 5 at Sat Dec 9 16:00:00 2023
[root@rhel03 ~]#
或者用关键字tomorrow,如果使用关键字tomorrow,则不需要加“+”,命令如下。
[root@rhel03 ~]# at 4pm tomorrow
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 6 at Sat Dec 9 16:00:00 2023
[root@rhel03 ~]#
上面的两条命令都是表示第二天的下午4点执行hostname命令。
这样的关键字还包括today,表示“今天”。例如,要在今天下午10点执行hostname命令,命令如下。
[root@rhel03 ~]# at 10pm today
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 7 at Fri Dec 8 22:00:00 2023
[root@rhel03 ~]#
如果是今天执行一个命令,关键字today是可以不写的,不写日期默认就是“今天”。
[root@rhel03 ~]# at 10pm
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 8 at Fri Dec 8 22:00:00 2023
[root@rhel03 ~]#
如果要表示几分钟或几小时之后,可以用关键字now。例如,要在2小时之后执行 hostname命令,命令如下。
[root@rhel03 ~]# at now+2hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 9 at Fri Dec 8 13:59:00 2023
[root@rhel03 ~]#
如果想1分钟之后删除/opt下面所有的内容,命令如下。
[root@rhel03 ~]# at now+1minutes
warning: commands will be executed using /bin/sh
at> rm -rf /opt/*
at> <EOT>
job 10 at Fri Dec 8 12:01:00 2023
[root@rhel03 ~]#
现在是点12点01分,等一会到12点02分时再次查看/opt中的内容
[root@rhel03 ~]# date ; ls /opt/
2023年 12月 08日 星期五 12:02:45 CST
[root@rhel03 ~]#
可以看到,/opt中的内容已经被清空。
到现在为止已经做了很多个at计划任务了,现在来查看一下有多少个了。通过atq或at -1 都可以查看。
[root@rhel03 ~]# atq
1 Fri Dec 12 11:48:00 2025 a root
2 Fri Dec 12 10:00:00 2025 a root
3 Fri Dec 12 22:00:00 2025 a root
4 Mon Dec 11 16:00:00 2023 a root
5 Sat Dec 9 16:00:00 2023 a root
6 Sat Dec 9 16:00:00 2023 a root
7 Fri Dec 8 22:00:00 2023 a root
8 Fri Dec 8 22:00:00 2023 a root
9 Fri Dec 8 13:59:00 2023 a root
[root@rhel03 ~]#
可以看到,每个at计划任务前都有一个编号。如果要删除某个at计划任务,可以用如下命令。
- atrm N 或
- at ‐d N
这里N指的是atq查看结果中前面的编号。
假设现在要删除编号为9的at计划任务,命令如下。
[root@rhel03 ~]# atrm 9
[root@rhel03 ~]#
如果删除编号为5到8的这些at计划任务,命令如下。
[root@rhel03 ~]# atrm {5..8}
[root@rhel03 ~]#
查看现在还有的at计划任务,命令如下。
[root@rhel03 ~]# atq
1 Fri Dec 12 11:48:00 2025 a root
2 Fri Dec 12 10:00:00 2025 a root
3 Fri Dec 12 22:00:00 2025 a root
4 Mon Dec 11 16:00:00 2023 a root
[root@rhel03 ~]#
可以看到,5到9都已经删除了,现在只剩下1到4了。
查看at计划任务的具体内容,命令如下。
- at ‐c N
这里N指的是 atq查看结果中前面的编号。例如,要查看第一个at计划任务的内容,可以通过如下命令。
[root@rhel03 ~]# at -c 1 | tail -3
${SHELL:-/bin/sh} << 'marcinDELIMITER05cc464a'
hostname
marcinDELIMITER05cc464a
[root@rhel03 ~]#
这里at -c 1的结果太多,所以通过管道传递给tail 命令,获取最后3行的内容。可以看到, 第一个at计划任务中执行的命令是hostname。
任何用户都是可以创建at计划任务的,下面使用tom用户创建一个at计划任务。在第二个终端中使用tom登录,然后用atq查看是否有at计划任务。
[tom@rhel03 ~]$ atq
[tom@rhel03 ~]$
可以看到,tom用户并没有at计划任务。下面使用tom用户随便创建一个at计划任务,例如,要在3小时之后执行hostname命令。
[tom@rhel03 ~]$ at now+3hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 12 at Fri Dec 8 15:13:00 2023
[tom@rhel03 ~]$
这里是可以正常创建的,如果要禁止哪个用户创建at计划任务,只要把这个用户名写 入/etc/at.deny中即可,一行一个用户。下面练习禁止 tom用户创建at计划任务,使用root 做如下操作。
[root@rhel03 ~]# echo tom > /etc/at.deny
[root@rhel03 ~]# cat /etc/at.deny
tom
[root@rhel03 ~]#
凡是出现在/etc/at.deny文件中的用户都是不允许创建at计划任务的。切换到tom用户创 建at计划任务。
[tom@rhel03 ~]$ at now+1hours
You do not have permission to use at.
[tom@rhel03 ~]$
可以看到,tom用户已经没有权限创建了。
如果想继续允许tom用户创建at计划任务,有以下两种方法。
(1)把tom用户从/etc/at.deny中删除。
(2)把 tom用户添加到/etc/at.allow中。
/etc/at.allow这个文件默认不存在,需要创建出来,且at.allow 的优先级要高于 at.deny,所以tom 如果同时出现在这两个文件中,那么at.allow生效。
下面设置tom用户可以创建at计划任务,使用root做如下操作。
[root@rhel03 ~]# echo tom > /etc/at.allow
[root@rhel03 ~]# cat /etc/at.allow
tom
[root@rhel03 ~]# cat /etc/at.deny
tom
[root@rhel03 ~]#
现在tom用户在at.allow 和 at.deny中都存在,at.allow生效,所以 tom用户是可以创建 at计划任务的。切换到tom用户创建at计划任务。
[tom@rhel03 ~]$ at now+1hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 13 at Fri Dec 8 13:18:00 2023
[tom@rhel03 ~]$
这里可以看到at提示符,说明tom用户可以创建at计划任务了,按【Ctrl+C】组合键终止。
crontab
at计划任务是一次性的,执行完成就结束,不会重复执行。如果想定期执行某个任务,例如,每周日凌晨2点执行一个命令,这时就要用到crontab了。
查看当前用户是否有 crontab计划任务,可以用crontab-1命令。如果要查看其他用户是否有crontab计划任务,可以用“crontab -1-u用户名”命令,不过-u选项只有root才能 用。
使用root用户查看自己有没有crontab计划任务,命令如下。
[root@rhel03 ~]# crontab -l
no crontab for root
[root@rhel03 ~]#
使用root用户查看tom用户是否有crontab计划任务,命令如下。
[root@rhel03 ~]# crontab -l -u tom
no crontab for tom
[root@rhel03 ~]#
创建crontab计划任务的命令是crontab -e,如果为其他用户创建crontab计划任务,则用“crontab -e -u用户名”命令。当使用crontab-e命令时,会打开一个临时文件,用与 vim 一样的语法来编辑此文件即可。先按【i】键进入插入模式,编辑完成之后,按【Esc】 键退回到命令模式,在末行模式中输入“wq”保存退出。在此文件中凡是以“#”开头的,都 是注释行。
crontab定义计划任务的语法如下。
- 分 时 天 月 周 命令
注意:因为在crontab中使用的并非系统的PATH变量,所以此处语法中要执行的命令最好能加上路径, 例如,要执行ifconfig命令,则写作/sbin/ifconfig;要执行hostname命令,则写作 bin/hostname。命令的路径可以通过which命令来查询。
几个时间单位的意义如下。
- 分:几点几分的分。
- 时:几点,24小时制。
- 天:几号。
- 月:几月份。
- 周:星期几。
这几个时间单位可以用空格,也可以用【Tab】键来分隔。
如果不考虑某个时间单位,例如,不管今天是几号,只要不是周末我们就上班,不考虑“天”的情况下,那么可以用*表示。
这里每个时间点都可以写多个值,用英文逗号“,”隔开,例如,在分的位置写“0,1.,5,10", 表示0分、1分、5分、10分。
也可以用横杠“-”表示“到”的意思,例如,在分的位置写“0-10”,表示0到10分。
这里“0-10”的完整写法是“0-10/1”,表示从0分到10分的每一分钟,从0开始每次增加1,然后到10。如果表示“每N分钟”,则写成“0-10/N”,例如,0到10中每2分钟,则 写成“0-10/2”,表示0分、2分、4分、6分、8分、10分。
练习1:每天上午7点整执行hostname命令,如果写成如下命令。
# 分 时 天 月 周* 7 * * * /usr/bin/hostname
这种写法是不对的,第一个位置是分,这里写成了*,表示7点的每一分,包括0分、1 分……但是所谓7点整的意思是7点0分,所以要写成如下命令。
# 分 时 天 月 周0 7 * * * /usr/bin/hostname
练习2:每周一到周五的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 * * 1,2,3,4,5 /usr/bin/hostname
这里可以写成如下命令。
# 分 时 天 月 周0 7 * * 1-5 /usr/bin/hostname
这里1-5表示周一到周五,如果是周六的上午7点整,就不会执行hostname命令。
练习3:第一季度中每周一到周五的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 * 1-3 1-5 /usr/bin/hostname
一年的第一季度是1到3月份,这里分、时、月、周(没有天)是“和”的关系,这4个时间单位必须都满足才能执行hostname命令。
所以,5月份的周三上午7点整是不会执行hostname命令的,因为“月”没有满足条件。
练习4:第一季度中每月上旬的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 1-10 1-3 * /usr/bin/hostname
一年的第一季度是1到3月份,每月上旬是1到10日,这里分、时、天、月(没有周) 是“和”的关系,这4个时间单位必须都满足才能执行hostname命令。
所以,5月8日上午7点整是不会执行hostname命令的,因为“月”没有满足条件。大家 要记住,“天”和“周”是“或”的关系,即
(1)分、时、月、周同时满足了,即使“天”不满足条件,也会执行指定的命令。
(2)分、时、天、月同时满足了,即使“周”不满足条件,也会执行指定的命令。
练习5:在5个时间点都写的情况,命令如下。
# 分 时 天 月 周0 7 1-10 1-3 1-5 /usr/bin/hostname
这里天和周的位置都写了,本句的意思并不是说每年1到3月份的上旬,且要满足周一到周五的上午7点整才执行hostname命令。
这句的意思是每年的1到3月份这3个月,每月1到10日或周一到周五(二者满足其一),上午 7点整都会执行hostname命令。这条其实综合了上面练习3和练习4中的意思。
现在最终的crontab计划任务内容如下。
[root@rhel03 ~]# crontab -l
# 分 时 天 月 周0 7 * * * /usr/bin/hostname0 7 * * 1,2,3,4,5 /usr/bin/hostname0 7 * * 1-5 /usr/bin/hostname0 7 * 1-3 1-5 /usr/bin/hostname0 7 1-10 1-3 * /usr/bin/hostname0 7 1-10 1-3 1-5 /usr/bin/hostname
[root@rhel03 ~]#
如果要编辑 crontab计划任务,通过crontab -e来重新编辑;如果要删除,执行 crontab - r命令即可,命令如下。
[root@rhel03 ~]# crontab -r
[root@rhel03 ~]# crontab -l
no crontab for root
[root@rhel03 ~]#
普通用户也是可以创建crontab计划任务的,如果不想让这个用户创建crontab计划任务, 则把这个用户写入/etc/cron.deny中即可,一行一个用户。这个文件默认为空,命令如下。
[root@rhel03 ~]# cat /etc/cron.deny
[root@rhel03 ~]#
如果不希望tom用户创建crontab计划任务,则把tom用户写入这个文件中,命令如下。
[root@rhel03 ~]# echo tom > /etc/cron.deny
[root@rhel03 ~]# cat /etc/cron.deny
tom
[root@rhel03 ~]#
在第二个标签中用tom登录,然后测试创建一个crontab计划任务,命令如下。
[tom@rhel03 ~]$ crontab -e
You (tom) are not allowed to use this program (crontab)
See crontab(1) for more information
[tom@rhel03 ~]$
可以看到,tom用户现在无法创建crontab计划任务了。
如果又想让 tom用户可以创建crontab计划任务,有以下两种方法。
- 把tom用户从/etc/cron.deny 中删除,这种方法大家自行练习。
- 创建/etc/cron.allow,这个文件默认不存在,把tom用户名写到此文件中,命令如下。
[root@rhel03 ~]# ls /etc/cron.allow
ls: 无法访问'/etc/cron.allow': 没有那个文件或目录
[root@rhel03 ~]# echo tom > /etc/cron.allow
[root@rhel03 ~]#
现在tom既出现在/etc/cron.allow中,又出现在/etc/cron.deny中,命令如下。
[root@rhel03 ~]# cat /etc/cron.allow
tom
[root@rhel03 ~]# cat /etc/cron.deny
tom
[root@rhel03 ~]#
此时cron.allow生效。
在第二个标签中用tom登录,crontab计划任务是能够创建的。
系统中也自带一些crontab计划任务,在/etc 中存在几个以cron开头的目录,命令如下。
[root@rhel03 ~]# ls /etc/cron*
/etc/cron.allow /etc/cron.deny /etc/crontab/etc/cron.d:
0hourly raid-check/etc/cron.daily:
logrotate/etc/cron.hourly:
0anacron/etc/cron.monthly:/etc/cron.weekly:
[root@rhel03 ~]#
每天都会执行一次/etc/crondaily中的脚本,每小时都会执行一次/etc/cron.hourly中的 脚本,每月都会执行一次/etc/cron.monthly中的脚本,每周都会执行一 次/etc/cron.weekly中的脚本。
相关文章:
Linux---计划任务
本章主要介绍如何创建计划任务 使用 at 创建计划任务使用 crontab 创建计划任务 有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种: 一个是at计划任务,另一个是 crontab计划任务。 下面我们分别来看这两种计划…...
.NET微信网页开发之通过UnionID机制解决多应用用户帐号统一问题
背景 随着公司微信相关业务场景的不断拓展,从最初的一个微信移动应用、然后发展成微信公众号应用、然后又有了微信小程序应用。但是随着应用的拓展,如何保证相同用户的微信用户在不同应用中登录的同一个账号呢?今天的主题就来了.NET微信网页…...
【docker】docker入门与安装
Docker 一、入门 Docker的主要目标是:Build, Ship and Run Any App, Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…...
视觉学习笔记12——百度飞浆框架的PaddleOCR 安装、标注、训练以及测试
系列文章目录 虚拟环境部署 参考博客1 参考博客2 参考博客3 参考博客4 文章目录 系列文章目录一、简单介绍1.OCR介绍2.PaddleOCR介绍 二、安装1.anaconda基础环境1)anaconda的基本操作2)搭建飞浆的基础环境 2.安装paddlepaddle-gpu版本1)安装…...
深入分析ClassLocader工作机制
文章目录 一、ClassLoader简介1. 概念2. ClassLoader类结构分析 二、ClassLoader的双亲委派机制三、Class文件的加载流程1. 简介2. 加载字节码到内存3. 验证与解析4. 初始化Class对象 四、常见加载类错误分析1. ClassNotFoundException2. NoClassDefFoundError3. UnsatisfiledL…...
算法通关村第十二关—字符串转换(青铜)
一、转换成小写字母 LeetCode709.给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例1: 输入:s"Hello" 输出:"hello" 示例2: 输入:s&qu…...
C#基础与进阶扩展合集-基础篇(持续更新)
目录 本文分两篇,进阶篇点击:C#基础与进阶扩展合集-进阶篇 一、基础入门 Ⅰ 关键字 Ⅱ 特性 Ⅲ 常见异常 Ⅳ 基础扩展 1、哈希表 2、扩展方法 3、自定义集合与索引器 4、迭代器与分部类 5、yield return 6、注册表 7、不安全代码 8、方法…...
ReactJs笔记摘录
文章目录 前言目录结构组件动态组件高阶组件 Hook函数useStateuseEffectuseContextuseReduceruseCallbackuseMemo JSX语法根元素与斜杠使用变量推荐使用className替代class属性写法三元表达式 vs &&antd和tailwindcss 组件通信父传子:props和自定义函数事件…...
2023 re:Invent使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序
前言 本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 “Your Data, Your AI, Your Future.(你的数据,你的AI&…...
Mac 打不开github解决方案
序言 github 时有打不开的情况,为此很是烦恼,这里分享一下如何解决这种问题,其实问题的本质是在访问github网页时无法通过github.com的二级域名进行动态域名解析。 解决方案 手动配置静态文件hosts,将该域名和IP的映射关系添加…...
十五 动手学深度学习v2计算机视觉 ——全连接神经网络FCN
文章目录 FCN FCN 全卷积网络先使用卷积神经网络抽取图像特征,然后通过卷积层将通道数变换为类别个数,最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸。 因此,模型输出与输入图像的高和宽相同,且最终输出通道包含了该空…...
elementUI中的 “this.$confirm“ 基本用法,“this.$confirm“ 调换 “确认“、“取消“ 按钮的位置
文章目录 前言具体操作总结 前言 elementUI中的 "this.$confirm" 基本用法,"this.$confirm" 调换 "确认"、"取消" 按钮的位置 具体操作 基本用法 <script> this.$confirm(这是数据(res.data࿰…...
K8S 常用命令
获取所有的pod资源: kubectl get pod 获取所有的命名空间: kubectl get namespace 获取所有的Deployment资源: kubectl get deployment 删除指定的deploy: kubectl delete deploy nginx 获取所有的服务: kubectl get serv…...
12.使用 Redis 优化登陆模块
目录 1. 使用 Redis 优化登陆模块 1.1 使用 Redis 存储验证码 1.2 使用 Redis 存储登录凭证 1.3 使用 Redis 缓存用户信息 1. 使用 Redis 优化登陆模块 使用 Redis 存储验证码:验证码需要频繁的访问与刷新,对性能要求较高;验证码不需要永…...
Nacos-NacosRule 负载均衡—设置集群使本地服务优先访问
userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 NacosRule 权重计算方法 目录 一、介绍 二、示例(案例截图) 三、总结 一、介绍 NacosRule是AlibabaNacos自己实现的一个负载均衡策略&…...
软件设计师——信息安全(二)
📑前言 本文主要是【信息安全】——软件设计师——信息安全的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄…...
Unity中实现ShaderToy卡通火(原理实现篇)
文章目录 前言一、我们在片元着色器中,实现卡通火的大体框架1、使用 noise 和 _CUTOFF 判断作为显示火焰的区域2、_CUTOFF : 用于裁剪噪波范围的三角形3、noise getNoise(uv, t); : 噪波函数 二、顺着大体框架依次解析具体实现的功能1、 uv.x * 4.0; : …...
引迈信息-JNPF平台怎么样?值得入手吗?
目录 1.前言 2.引迈低代码怎么样? 3.平台亮点展示 4.引迈产品特点 5.引迈产品技术栈: 1.前言 低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用…...
大数据云计算——使用Prometheus-Operator进行K8s集群监控
大数据云计算——使用Prometheus-Operator进行K8s集群监控 一、 背景 在非operator配置的普罗中我们监控k8s集群都是通过配置configmap进行服务发现和指标拉取。切换到prometheus-operator难免会有些使用问题。不少用户已经习惯底层配置自动发现的方式。当过渡到servicemonit…...
[蓝桥杯刷题]合并区间、最长不连续子序列、最长不重复数组长度
前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录: 成功的关键在于对目标的持久追求。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 数据库 文章目录 前言合并区间问题📕现实应用大致思路代码实现代码讲解 最长不连续子序列&a…...
Hazel引擎学习(十二)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看 参考视频链接在这里 这是这个系列的最后一篇文章,Cherno也基本停止了Games Engine视频的更新,感觉也差不多了,后续可以基于此项目开发自己想要…...
中文字符串逆序输出
今天碰到这个题,让我逆序输出中文字符串,可给我烦死了,之前没有遇到过,也是查了资料才知道,让我太汗颜了。 英文字符串逆序输出很容易,开辟一块空间用来存放逆序后的字符串,从后往前遍历原字符串…...
MySQL BinLog 数据还原恢复
博文目录 文章目录 查看状态查看 binlog 开关及存储路径查看 binlog 配置 如 存储格式 binlog_format查看当前还存在的日志查看当前正在使用的日志 切换日志确定日志确定日志文件日志格式改写日志简要说明确定日志位置以事件为单位查看日志分析日志 还原数据 查看状态 查看 b…...
理想汽车校招内推--大量hc等你来
投递链接: https://li.jobs.feishu.cn/s/i8BLJE1j 欢迎大家投递...
RabbitMQ死信队列详解
什么是死信队列 由于特定的**原因导致 Queue 中的某些消息无法被消费,**这类消费异常的数据将会保存在死信队列中防止消息丢失,例如用户在商城下单成功并点击支付后,在指定时间未支付时的订单自动失效死信队列只不过是绑定在死信交换机上的队…...
计算机网络:物理层(编码与调制)
今天又学会了一个知识,加油! 目录 一、基带信号与宽带信号 1、基带信号 2、宽带信号 3、选择 4、关系 二、数字数据编码为数字信号 1、非归零编码【NRZ】 2、曼彻斯特编码 3、差分曼彻斯特编码 4、归零编码【RZ】 5、反向不归零编码【NRZI】 …...
嵌入式开发板qt gdb调试
1) 启动 gdbserver ssh 或者 telnet 登陆扬创平板 192.168.0.253, 进入命令行执行如下: chmod 777 /home/HelloWorld (2) 打 开 QTcreator->Debug->StartDebugging->Attach to Running Debug Server 进行…...
基于python实现原神那维莱特开转脚本
相信不少原友都抽取了枫丹大C那维莱特,其强力的输出让不少玩家爱不释手。由于其转的越快,越不容易丢伤害的特点,很多原友在开转时容易汗流浃背,所以特意用python写了一个自动转圈脚本,当按住鼠标侧键时,即可…...
C# 实现Lru缓存
C# 实现Lru缓存 LRU 算法全称是最近最少使用算法(Least Recently Use),是一种简单的缓存策略。 通常用在对象池等需要频繁获取但是又需要释放不用的地方。 代码实现的基本原理就是使用链表,当某个元素被访问时(Get或…...
牛客网BC107矩阵转置
答案: #include <stdio.h> int main() {int n0, m0,i0,j0,a0,b0;int arr1[10][10]{0},arr2[10][10]{0}; //第一个数组用来储存原矩阵,第二个数组用来储存转置矩阵scanf("%d%d",&n,&m); if((n>1&&n<10)&&am…...
被邀请做刷客会不会碰到钓鱼网站/百度快照怎么用
matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章内容拟按官方手册(NumPy Reference, Release 1.14.5 )中的 plt 形式 像matlab一样…...
wordpress卢松松2019/关键词提取工具
安转插件:案例格式化HTML代码,需要安装插件,具体安装步骤如下: 1、打开菜单->首选项->插件控制,输入 install package 2、等待程序进入插件管理功能,再输入插件名称:TAG 3、点击安装插件。…...
wordpress物流模板下载/免费推广网站2023mmm
为什么80%的码农都做不了架构师?>>> 恶意代码编写者经常使用反虚拟机技术逃避分析,这种技术可以检测自己是否运行在虚拟机中。如果恶意代码探测到自己在虚拟机中运行,它会执行与其本身行为不同的行为,其中最简单的行为…...
惠州seo博客/青岛关键词优化平台
跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的《员工最短任期公司排行榜》中,两家码…...
湖南常德米粉/优化搜索引擎
2019独角兽企业重金招聘Python工程师标准>>> 从高德地图下载开发者Demo,或者是百度地图Demo,会发现这些应用只能在ARM模拟器上运行,速度很慢,无法在x86模拟器上运行。对于开发人员来说,这是很苦恼的事情。小…...
广西玉林网站建设/上海百度推广排名
https://blog.godotdotdot.com/2017/12/04/%E8%A7%A3%E5%86%B3nginx%E8%BD%AC%E5%8F%91websocket%E6%8A%A5400%E9%94%99%E8%AF%AF/ 解决nginx转发websocket报400错误 说明 由于个人服务器上面有多个项目,配置了二级域名,需要对二级域名进行转发ÿ…...