-
centos系统安装thingspanel物联网开源管理系统
开始安装 拉取项目 # 拉取docker配置 git clone https://github.com/ThingsPanel/thingspanel-docker.git 进入thingspanel-docker cd thingspanel-docker 运行项目 在thingspanel-docker目录下 # 以日志显示前台方式启动项目(默认端口8080) docker-compose -f docker-compose.yml up # 或者以隐藏日志显示的方式启动项目 docker-compose -f docker-compose.yml up -d # 停止服务 docker-compose -f docker-compose.yml down 登录 打开浏览器,输入服务器ip:8080 系统管理员 super@super.cn / 123456 租户管理员 tenant@tenant.cn / 123456 如果报错 ✘ Network thingspanel-docker_thingspanel_network Error 0.1s failed to create network thingspanel-docker_thingspanel_network: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-a2f4035f65df -j RETURN: iptables: No chain/target/match by that name. (exit status 1)) 就重启docker #重启docker sudo systemctl restart docker...
-
centos系统安装docker
CentOS系统安装 Docker 操作手册 前置条件 ● CentOS 7+ 操作系统 ● 需要 root 权限或 sudo 权限 ● 已连接网络 安装步骤 1. 检查系统信息 uname -a 执行此命令可查看系统版本和架构信息,确保系统兼容。 2. 安装必要的系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 这一步会安装: ● yum-utils:提供 yum-config-manager 工具 ● device-mapper-persistent-data:设备映射工具 ● lvm2:逻辑卷管理器 3. 添加 Docker 软件源(使用阿里云镜像源) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4. 更新软件包索引 yum makecache fast 5. 安装 Docker yum install -y docker-ce docker-ce-cli containerd.io 此命令会安装: ● docker-ce:Docker 引擎 ● docker-ce-cli:Docker 命令行工具 ● containerd.io:容器运行时 6. 启动并设置开机自启 # 启动 Docker 服务 systemctl start docker # 设置开机自启 systemctl enable docker ...
-
关于宝塔面板部署JAVA项目的教程(避免踩坑)
第一步:购买云服务器 首先需要一台云服务器,我这里演示的是一台腾讯云的轻量应用服务器 腾讯云官网地址:https://cloud.tencent.com/ 购买时会提示安装操作系统,我这里安装的操作系统是centos7,服务器用户默认:root,服务器登陆密码:自定义 购买后,会分配公网ip和内网ip,这里公网ip待会我们需要用到。 第二步:开启防火墙/配置安全组 在腾讯云中,轻量应用服务器是配置防火墙,ECS服务器是配置安全组,这里我们配置好防火墙。 我这里测试(偷懒)端口一键全部放开 第三步:安装宝塔面板 宝塔面板官网地址:bt.cn 因为我这里装的是centos系统,所以选用的是宝塔linux面板。 安装页面:https://www.bt.cn/new/download.html 填入你的服务器公网ip及密码,端口默认:22 不要关闭当前页面,等待部署!!! 部署完成后会弹窗告诉您的宝塔登陆地址及账号密码 第四步:登陆宝塔面板 登陆宝塔面板后,会提示登陆宝塔的账号密码,方便管理! 如果没有的话可以按提示页面注册登陆。 第五步:安装nginx、jdk、tomcat、mysql、php 打开软件管理,搜索上述需要安装的程序,一键安装。 安装完成后就可以开始部署java项目了, 第六步:本地运行java项目 使用idea配置好项目相关数据参数,然后打包。 打包完成后会产生一个war包或jar包 第七步:宝塔新建站点 新建站点之前,首先在/www/wwwroot目录下创建个目录用于存放你的项目,例如你的域名或者ip是abc.com或1.1.1.1,最好就以域名或者ip新建目录。 创建目录之后,把前面idea打包后的war包上传到您创建的目录下 然后新建选了java项目,添加java项目,我这里选择的是内置项目,根据自己需求来创建。 填写项目域名,没有域名也可以填ip,这个无所谓。 项目路径选择刚才创建的目录。 tomcat选择最开始部署的版本,根据自己需求来。 点击创建之后就可以看到自己的站点了。 常见问题: 1、创建项目后无法访问网站 首先确定服务器的防火墙端口有没有放开,然后确定宝塔面板中,安全中心,或者防火墙有没有放开端口,因为每次宝塔面板启动的时候都会默认开启安全中心。 2、添加ssl证书问题 添加证书可以使用宝塔一键获取的证书,只有90天时间,到期记得自己续签。 java项目添加证书不是和php一样的,是先需要开启外网映射。 代理目录为根目录 然后在去添加ssl,才可以访问。 如果添加之后还是没办法https访问,就需要勾选强制https ...
-
物联网中lpm是什么作用
在物联网(IoT)中,LPM(Low - Power Mode,低功耗模式)有以下重要作用: 一、延长设备电池寿命 原理 物联网设备通常由电池供电,如各种无线传感器节点。这些设备可能部署在难以触及的位置,频繁更换电池成本高且不现实。LPM 通过降低设备在空闲或非关键任务期间的功耗来延长电池使用时间。例如,一个典型的物联网传感器,在正常工作模式下可能消耗数毫安(mA)的电流,而进入 LPM 后,电流消耗可以降低到微安(μA)级别。 许多物联网设备大部分时间处于空闲状态,等待特定事件触发,如环境监测传感器等待温度或湿度变化达到阈值。在这些空闲时段,开启 LPM 可以大幅减少不必要的能量损耗。 实际应用案例 以智能水表为例,它主要功能是定期(如每天一次)读取和传输水表读数。在两次读数之间的大部分时间,水表可以进入 LPM。通过这种方式,电池可以持续使用数年,而不是几个月,减少了维护成本和设备停机时间。 二、优化能源利用效率 原理 物联网系统通常包含大量设备,能源的有效利用对于整个系统的可持续性至关重要。LPM 允许设备根据任务的优先级和时间要求,灵活地调整功耗。例如,当设备只需要进行简单的本地数据处理,如对传感器数据进行初步滤波,而不需要进行高能耗的无线通信时,可以进入低功耗模式,降低处理器和通信模块的能耗。 对于采用能量收集技术(如太阳能、振动能等)的物联网设备,LPM 有助于确保设备在能量收集有限的情况下,仍能维持基本功能。通过合理安排高能耗和低能耗模式的切换,设备可以更好地匹配能量收集和消耗的节奏。 实际应用案例 在一些偏远地区的气象监测站,设备采用太阳能电池板供电。在夜间或阴天,太阳能收集能量有限。此时,气象监测设备可以进入 LPM,降低功耗,只保留最基本的传感器数据记录功能。当太阳重新出现,能量充足时,设备再恢复到正常工作模式,进行数据传输等功能。 三、提升系统的可靠性和稳定性 原理 在复杂的物联网环境中,设备可能会受到电源波动、电磁干扰等因素的影响。通过进入 LPM,设备可以减少因这些因素导致的故障风险。例如,在电源电压不稳定的情况下,降低设备功耗可以降低对电源的要求,使设备能够在更宽的电压范围内正常工作。 同时,LPM 有助于防止设备因过热而出现故障。由于低功耗模式下设备产生的热量减少,这对于一些对温度敏感的物联网组件(如高精度传感器)是非常重要的,可以提高它们的可靠性和测量精度。 实际应用案例 在工业物联网环境中,一些位于工厂车间的设备监测传感器,周围可能存在大量的电机等设备产生电磁干扰。这些传感器在进入 LPM 后,对电磁干扰的敏感度降低,并且由于自身功耗降低,散热减少,能够在恶劣的工业环境中更稳定地工作,持续准确地监测设备状态,如机器的振动、温度等参数。 ...
-
Linux系统安装EMQX Broker
下载地址 官方下载页面:https://www.emqx.com/zh configure配置文件详解:http://nginx.org/en/docs/configure.html linux命令行执行以下代码即可下载: wget https://www.emqx.com/zh/downloads/broker/4.3.9/emqx-centos7-4.3.9-amd64.zip 解压安装包 unzip emqx-centos7-4.3.9-amd64.zip 常用命令 移动目录 mv emqx /opt/ 进入解压后的目录 cd /opt/emqx 启动 ./bin/emqx start 查看状态 ./bin/emqx_ctl status 停止 ./bin/emqx stop 重启 ./bin/emqx restart 访问控制面板 http://localhost:18083/默认用户名:admin 密码: public 安全组或者防火墙放开端口:18083 Docker安装 下载镜像 docker pull emqx/emqx:4.3.9 启动容器 docker run -d --name emqx --privileged=true -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:4.3.9 ...
-
2024年湖南省数据恢复赛题
https://bolg.xs357.com/content/uploadfile/202311/8c781701060417.rar...
-
NTFS笔记
NTFS: 总结构: MBR DBR $MFTmirr $MFT DBR备份 重点就是DBR中的BPB部分,这是重建DBR必须回填的数据 偏移 解释 备注 00-02 跳转指令 固定EB5290 0B-0C 每扇区字节数 固定0002 0D 蔟大小 大部分为08 1C-1F 起始扇区 分区开始的位置也就是DBR 28-2B 扇区总数 也就是容量 30-33 $MFT起始簇号 DBR向下第16扇区中的$MFT中80属性簇流描述中有记录 FE-FF 结束标志 固定55AA(极其重要) DBR重建BPB部分的回填: 簇大小:大部分为08、 容量:可通过DBR向下找到的$MFTmirr中$MFT起始簇号跳转至$Bitmap,通过有数据的倒数第二行计算容量($Bitmap起始=$MFT起始簇号✖簇大小+起始扇区+12) 重建$MFT:①通过格式化(要与原分区容量一样大) ②找到最后一个$MFT项查看2C-2F目录项号。 用最后一个$MFT项起始位置-2*2C-2F目录项号得到原$MFT的起始位置,复制一个好的$MFT至$MFT起始位置。 需要回填: 偏移(80属性相对偏移) 解释 备注 10-17 $MFT起始项 固定为0 18-1F $MFT结束项 ☆要记得-1 28-2F 30-37 38-3F $MFT项总字节数 三个偏移结果相同 ☆最后一个$MFT项的2C-2F目录项号*2/8=$MFT项的大小。 短流记录(80属性向下第五行)怎么看: 例子:32 80 62 00 00 0C 第一字节32 前一位描述的是起始簇号所占的字节数,后一位描述的是$MFT项的大小 即起始簇号为 00 00 0C $MFT项的大小为 80 62 ★其中的文件目录项的短流看法相同 MFT的跳转指令:46 49 4C 45 如果知道文件的后缀名时,可直接在bitmap后面查找文本直接搜索后缀名(要用Unicodec查询)即可看到文件记录项。 文件记录项: 找到文件记录项看30属性可知道该文件记录的文件名,再看80属性(该属性为该文件记录的数据) 文件起始扇区=文件起始簇号✖簇大小+分区起始(DBR) 通过30属性可知该文件记录记录的是11.doc 深蓝:文件大小(字节数)在短流前十六字节(共八字节) 黑色:一个描述 橙色:$MFT项的大小 红色:文件起始簇号 绿色:结束 容量计算: 跳转至$Bitmap簇位图的80属性描述的大小(倒数第二行数据)乘以64 跳转至$BadClus坏簇文件的簇流运行的$MFT项大小再加上一后,乘以簇大小可得到大概的容量值 跳转至$Bitmap簇位图的数据,以最后一个00 80结束,所选中的字节乘以8得到该分区有多少个簇,再乘以簇大小可以得到容量 (由于簇位图一个字节描述的是八个簇的记录,所以先将大小乘8得到该分区有多少个簇,然后再乘以簇大小就可以得到大概的容量) 文件夹快速恢复(文件夹的开头标志为49 4E 44 58) $RECYCLE.BIN这是单个盘符回收站。(直接打开ntfs的目录,可在里面看见$RECYCLE.BIN,里面就是文件夹。) ...
-
FAT32笔记
FAT32: 总结构: MBR DBR 备份 FAT表1 FAT表2 数据区 DBR重要偏移描述: 偏移 解释 备注 00-02 跳转指令 固定EB5890 0B-0C 每扇区字节数 固定0002 0D 簇大小 具体算法☆ 0E-0F DBR保留扇区 具体算法★ 10 FAT表个数 固定为02 1C-1F 起始扇区 DBR 20-23 扇区总数 容量○ 24-27 FAT表大小 具体算法● FE-FF 结束标志 固定55AA 重建FAT32的DBR:从其他分区复制一个完好的FAT32的DBR ①☆簇大小={(扇区总数-2✖FAT表大小-DBR保留扇区)/512}✖4 ②★DBR保留扇区=FAT表1起始-DBR(向下搜索F8FFFF0F找到FAT表1的起始) ③●FAT表大小=FAT表2起始-FAT表1起始(再次向下搜索F8FFFF0F找到FAT表2起始) ④○容量=DBR下一扇区的E8-EC的数据✖簇大小(得到的是大概值,向上下搜索!00即可) 根目录重要偏移描述: 相对偏移 解释 备注 00-07 文件名 没用到的为20 08-0A 扩展名 0B-0B 文件属性 14-15 文件起始簇号 高位 1A-1B 文件起始簇号 低位 1C-1F 文件大小 字节数 文件属性解析: 00000000(读/写)、00000001(只读)、00000010(隐藏)、00000100(系统)、00001000(卷标)、00010000(子目录)、00100000(存档) 下图为根目录的某个文件描述结构图: 手工提取文件: 找到根目录:固定在2号簇 根目录起始扇区=FAT表大小✖2+DBR保留扇区+DBR起始扇区 根目录中每32字节描述一个文件记录,记录中相对偏移14-15为文件起始 簇号的高位,1A-1B为文件起始簇号的低位,偏移1C-1F为文件大小(字节数)。 例子: 所以该文件为1.doc,起始簇号为00 00 00 0C(高位从右往左读,低位一样) 文件大小为00 26 00 00(16进制字节数) 文件起始位置=(文件起始簇号-2)✖簇大小+DBR+根目录起始扇区 如何 在没有FAT表的情况下提取碎片: 首先看DOC文件头的最后一个扇区分配表,然后所得的值MOD 128(一个配置表可以记录128个扇区),再乘以4后,向下搜索FDFFFFFF,且偏移为512=取余后乘以4的值。 ...
-
exfat笔记
exFAT: 总结构: DBR DBR保留扇区 FAT 簇位图文件 大写转换表 用户文件数据区 注释:DBR向下12个扇区为DBR的备份。 BPB部分参数偏移描述: 偏移 解释 备注 00-02 跳转指令 固定EB 76 90 40-47 起始 48-4F 容量* 50-53 FAT表起始扇区号 ① 54-57 FAT扇区数(FAT表大小)② 58-5B 首簇起始扇区号③ 数据区的开始(DBR到BITMAP的大小) 5C-5F 分区总簇数④ 60-63 根目录首簇号⑤ 一般为4 6C-6C 扇区字节数 固定512(29) 6D-6D 簇大小⑥ 描述n(xn) DBR: 主要需要回填的: 容量*:根目录中的81属性中的相对偏移18-1F乘以8再乘以簇大小可得到大概的容量值( 理解为:81属性记录的是簇位图的数据,相对偏移18-1F描述的是该簇位图的大小{字节数},由于簇位图一个字节描述的是八个簇的记录,所以先将大小乘8得到该分区有多少个簇,然后再乘以簇大小就可以得到大概的容量) 偏移50-53 ①FAT表起始扇区号(向下搜索F8FFFFFF) 偏移54-57 ②FAT表大小(③数据区起始扇区号-①FAT表起始扇区号) 偏移58-5B ③首簇起始扇区号/簇位图(数据区起始扇区号)(计算:⑦大写转 换表-⑥簇大小-DBR起始)(所在簇号:2号簇) 偏移5C-5F ④卷内总簇数[分区总簇数](计算:(容量-③数据区起始扇区号)/ 簇大小) 偏移60-63 ⑤根目录首簇号(一般为4,但不是固定值) 偏移6D-6D ⑥簇大小(每簇扇区数)(计算:⑧根目录起始扇区号-⑦大写转换 表) ⑦大写转换表(向下搜索00000100)(所在簇号:3号簇) ⑧根目录起始扇区号(向下搜索83——81——82)(所在簇号:4号 簇) 根目录:③首簇起始扇区号+(⑤根目录首簇号-2)*⑥簇大小 根目录: 黑色:根目录文件记录的三个属性。 红色:C0属性中的相对偏移08-0F为文件大小(字节数),14-17为文件起始簇号。 蓝色:C1属性中的文件名。...
-
文件误删除并覆盖数据恢复视频
...