ubuntu,linux下屏蔽坏块方法-240625-240702封存

在windows下的屏蔽坏道的方法
机械硬盘坏道的文件系统级别的屏蔽方法_硬盘如何屏蔽坏扇区-CSDN博客
https://blog.csdn.net/cyuyan112233/article/details/139408503?spm=1001.2014.3001.5502 【免费】磁盘坏道屏蔽工具磁盘坏道屏蔽工具_机械硬盘屏蔽坏扇区资源-CSDN文库 https://download.csdn.net/download/cyuyan112233/89391425 写文章-CSDN创作中心 机械硬盘坏道的文件系统级别的屏蔽方法_硬盘如何屏蔽坏扇区-CSDN博客 https://blog.csdn.net/cyuyan112233/article/details/1394085039:02 2024/7/2
从2024年5月25拿到一个坏道盘到现在240702已经一个多月了。
把这一个多月不停地连续的探索屏蔽方法和实验算是成功的结果,打算整理成资料封存。待有缘人拿去直接使用。
总结如下:只要磁头没断!能识别盘,能分区,那就还能继续用。哈哈哈~~~ 拼夕的9一个的320g的坏道盘。目前速度稳定,屏蔽之后无异常。7个坏道盘,目前就坏了一个,还是我使劲捏硬盘上下面,插入电源,我就发现,上面的铁壳,好像是和磁盘吱!的一声,,,剐蹭到了,这铁壳貌似有点柔。再次插入就不识别了,这个纯属人工误操作意外,
总结一下,那就是手要拿磁盘两边!!!再次声明是两边两侧,不要上下捏着插电!!!不然高速的磁盘就容易触碰到上面的铁壳。经个人测试半个多月连续工作,每日写入读出测试文件到另一个分区然后继续。目前依旧稳定中,事实证明,还是比较靠谱的。坏盘最怕的就是断电,万一不识盘那就真的凉了,所以,尽可能的运行后就运行不要断电了。这样经过屏蔽坏道的硬盘,可以用很久。在linux下屏蔽坏块的方法
这里的坏块取决于linux的磁盘格式的块大小
查看方法如下
sudo dumpe2fs /dev/sda  > /a/2/dd.txt
打开文件找到下面的
Block size:               4096
我这里是4096,意思就是块大小4096也就是4K有坏道的磁盘分区方法
可以用pe下的dg工具格式化成ext4 记得块大小4096,不管默认不默认都手动靠谱
linux分区使用fdisk
个人建议只要能分区然后格式化成功就可以
如果发现格式化不成功,那么方法如下
第一种分区方法,直接把整个磁盘格式化
linux下格式化
sudo mkfs.ext4 -b 4096 /dev/sdb
如果格式化失败,那就重新分区
第二种分区方法
使用fdisk
建立一个主分区,然后格式化
如果失败、
第三种分区方法
建立一个扩展分区,然后创建一个逻辑分区
sudo mkfs.ext4 -b 4096 /dev/sdb5
如果失败,使用winpe下的dg试试,总之,分区格式化成功就ok关于ext4日志文件
这个我前后从偶然发现日志文件可以外部存储后,我就突然发现,坏道盘,是可以安全的使用,前提就是两个条件
日志文件完整安全性,磁盘没彻底挂掉
于是就有了前几天的实验,折腾和查找资料的过程很艰辛,这个启示是关键字找到的
EXT4的data=journal模式能否避免用户数据丢失? - 知乎
https://www.zhihu.com/question/434318992
sudo dumpe2fs /dev/sdb
sudo mke2fs -O journal_dev /dev/sdc
sudo mkfs.ext4 -J device=/dev/sdc /dev/sdb5看完了上面的这个参考资料,我就突然很兴奋,因为我们分区格式化,日志都是写在坏盘上的
万一超级快不完整写到坏块上了,那就真灰飞烟灭了
如果把日志写在靠谱的文件系统上,日志文件不占太大
这样就保证了日志安全,具体操作如下这里测试方法两种,
第一种,使用磁盘设备当日志文件存储
第二种,使用文件设备当日志文件存储
测试一
1g
sudo mke2fs -b 4096 -O journal_dev /dev/sdb
sudo mkfs.ext4 -b 4096 -J device=/dev/sdb /dev/sdc
sudo dumpe2fs /dev/sdc  > /a/2/dd.txtlsblk -f
sdb                       jbd         1.0                                              6e737ca1-0e71-47e0-b608-df3e8c3b7a24                  
sdc                       ext4        1.0                                              6afb52ba-ce22-4d4f-9d00-7ebe900a1fd0 挂载方法
mount /dev/sdc /a/3
卸载方法
umount /dev/sdc
或者
umount /a/3使用文件当日志文件存储
dd if=/dev/zero of=/a/2/200M_01.img bs=1024 count=0 seek=200000
# 第一步:找出空闲的回环设备编号
losetup -f -l
挂载文件到设备
sudo losetup /dev/loop0 /a/2/200M_01.img
删除设备
sudo losetup -d /dev/loop0
继续前面把文件当日志文件
mke2fs -b 4096 -O journal_dev  /dev/loop0
创建文件系统
mkfs.ext4 -b 4096 -J device=/dev/loop0 /dev/sda5
查看系统日志
sudo dumpe2fs /dev/sda5  > /a/2/dd.txt
cat /a/2/dd.txt |less
测试挂载
mount /dev/sda /a/3tune2fs -O journal_dev -J device=/dev/loop0  /dev/sda5
trest!!!okok
tune2fs -j -J device=/dev/loop0  /dev/sda5
或添加给已存在的文件系统: tune2fs -O journal_dev  -J device=/dev/ext4-journal-device  /dev/ext4-device
okok
设置uuid
tune2fs -U 2fc3a081-4669-4d95-affa-d7f191ba77c5  /dev/sda5自动挂载
vi /etc/rc.local
添加
/a/r2.shvi r2.sh
#!/bin/bash
var=$(losetup -f)
losetup  $var /a/2/200M_01.img
tune2fs  -J device=$var  /dev/sda5
mount /dev/sda5 /a/sda5var=$(losetup -f)
losetup  $var /a/2/log_sda6_100M.img
tune2fs  -J device=$var  /dev/sda6
mount /dev/sda6 /a/sda6
8,将Ext3文件系统的日志功能独立:
1、创建200M的/dev/sdb1 格式化为ext3
2、dumpe2fs /dev/sdb1查看文件系统功能中包含的has_journal
3、Tune2fs –O ^has_journal /dev/sdb1 去掉默认原有的日志功能
4、再分一个200M的分区./dev/sdb2. 日志卷的block必须等于 /dev/sdb1
Mke2fs –O journal_dev –b 1024 /dev/sdb2
5、将/dev/sdb2作为/dev/sdb1的日志卷.
Tune2fs –j –J device=/dev/sdb2 /dev/sdb1!!!!!!!!!!!!!!
14:47 2024/7/2
50g 200m  日志占比
在这一步,mkfs.ext4 -b 4096 -J device=/dev/loop0 /dev/sda5
Ubuntu可以  
root@ccyy:~# mkfs.ext4 -V
mke2fs 1.47.0 (5-Feb-2023)Using EXT2FS Library version 1.47.0
root@ccyy:~#
树莓派不可以
root@raspberrypi:/a/2# mkfs.ext4 -V
mke2fs 1.46.2 (28-Feb-2021)Using EXT2FS Library version 1.46.2
root@raspberrypi:/a/2#打算更新一下这工具试试
tytso/e2fsprogs: Ext2/3/4 file system utilities
https://github.com/tytso/e2fsprogs看了一下版本1.47.1
【免费】e2fsprogs-1-47-1.tar.gz资源-CSDN文库  https://download.csdn.net/download/cyuyan112233/89507370?spm=1001.2014.3001.5503
git clone https://github.com/tytso/e2fsprogs.git
备份一下源码
tar -czvf e2fsprogs_1_47_1.tar.gz ./e2fsprogs
cd e2fsprogs
mkdir build
cd build
../configure
make
make installroot@raspberrypi:/a/2/e2fsprogs_1_47_1/e2fsprogs/build# mkfs.ext4 -V
mke2fs 1.47.1 (20-May-2024)Using EXT2FS Library version 1.47.1顺便找了一下别人的资料
e2fsprogs编译
export PATH=/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin:$PATH
cd e2fsprogs
mkdir build
cd build
../configure –host=aarch64-linux-gnu cc=arm-linux-gcc –prefix=/home/git/Tools/e2fsprogs/build
make
make install
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。    
原文链接:https://blog.csdn.net/lra2003/article/details/82685192mkfs.ext4 -b 4096 -J device=/dev/loop0 /dev/sda5根据sudo dumpe2fs /dev/sda  > /a/2/dd.txt
可以看到Journal UUID 这个就是ext4文件系统的日志文件对应的设备uuid
Required extra isize:     32
Desired extra isize:      32
Journal UUID:             fd54eb07-a4f9-4022-adca-2a694318aa5b
Journal device:           0x0700
Default directory hash:   half_md4
Directory Hash Seed:      0d330010-9c63-4f44-9cfd-d510cd8a6ff6
Checksum type:            crc32c
Checksum:                 0xbb5eee7c这里的参考资料EXT4外部日志设备:1,当日志设备丢失时:移除不可用的日志:tune2fs -O ^has_journal  /dev/ext4-device检查修复文件系统: fsck/repair(注: tune2fs -O has_journal /dev/ext4-device 会创建内部日志)2,创建ext4外部日志格式化日志设备:mke2fs -b 4096 -O journal_dev /dev/ext4-journal-device创建一个新的文件系统: mkfs.ext4 -J device=/dev/ext4-journal-device  /dev/ext4-device或添加给已存在的文件系统: tune2fs -O journal_dev  -J device=/dev/ext4-journal-device  /dev/ext4-device这样就创建了块大小4096的ext4文件系统参考资料如下
21:09 2024/6/26
linux查看文件系统格式
第一种方法
lsblk -f
16:06 2024/6/26
第二种方法
sudo file -sL /dev/sda1
#输出
/dev/sda1: Linux rev 1.0 ext4 filesystem data ...挂载ext4 
Linux File Systems for Windows | Paragon Software
https://www.paragon-software.com/home/linuxfs-windows/
windows开启测试模式
bcdedit /set testsigning on大概流程
一,坏块查找
二,屏蔽坏块下面就是坏块查找并记录到文件中参考资料
21:39 2024/6/25
e2fsck(8) - Linux 手册页  https://man7.org/linux/man-pages/man8/e2fsck.8.html
badblocks(8) - Linux manual page  https://man7.org/linux/man-pages/man8/badblocks.8.html
21:15 2024/6/25
e2fsck(8) - Linux manual page  https://man7.org/linux/man-pages/man8/e2fsck.8.html!!!use 正在使用的!!!
这里要设置块大小和磁盘相同
badblocks -b 4096 -s -c 1 -v -o /a/2/bads5.txt /dev/sda 78142805  10072565
查找坏块从17953845 到 17954070
badblocks -b 4096 -e 10 -s -c 1 -v -o /a/2/bads6.txt /dev/sda  17954070 17953845
检测完重新检测跳过之前的记录
badblocks -i /a/2/bads5.txt -b 4096 -s -c 2 -v -o /a/2/bads6.txt /dev/sda5
可以查看磁盘具体block总数和大小
sudo dumpe2fs /dev/sda5  > /a/2/dd.txt
e2fsck -l /a/2/bads4.txt /dev/sda5 -y
根据上面5和6生成的
e2fsck -l /home/administrator/2.txt /dev/sda5 -y
下面的这个命令有知道具体用途追加留言,谢谢!
fsck -l /a/2/bads2.txt /dev/sda1
可以使用 dd 命令使用 conv=noerror, sync 参数先备份目标区域的数据,在修复后用 dd 写回你其实不应该用badblock命令的,你直接用e2fsck -c就行了,这相当于先用badblock执行一次只读扫描,然后自动把坏块写进inode,或者你用e2fsck -cc,这等于先执行一次badblock -n(非破坏读写扫描)然后自动把坏块写进inode。上面的方法适用于,坏道不是非常多的,如果检测超过半天的,那就直接下面的方法检测坏块
之前检测坏,不对,应该是快报废的硬盘检测太慢用下面的在检测前使用screen这个工具,可以关闭ssh后,继续在screen运行
使用方法
创建  screen -S 会话名称
例如  screen -S mmmmmmmmmm
然后就自动进入了,如果销毁,输入 exit  回车 就出来了,之前的就没了
如果查看  screen -ls
如果进入  screen -r 会话名称
快捷的方法应该是  输入   screen -r 按两次以上的tab按键会自动补全会话
把当前的会话放后台使用按键组合键  screen+a 然后按d我用的下面脚本如果遇到错误就跳过100M为单位的扫描那是非常速度的。如果没坏道,速度不是特别快,毕竟是一个个的扫描错误不遗漏,这个跳过100M使用到的情景是,例如坏道临近的很多,那就没必要挨个扫描了,扫描到错误,直接跳100M的继续扫描遇到坏的就跳过100M的单位屏蔽也是这个原理,大概意思就是 屏蔽坏道为中心,前面100M后面100M都给屏蔽掉,因为遇到了坏块就跳过了单位100M,所以这个跳过节省的时间就是密集型的坏道磁盘,100M是25000个块一个块是4K=4096字节
如果一个块一个块的扫描如果都是坏的那就是100M要扫描25000次,一个大概扫描几秒,太可怕了想想
如果错误跳过25000 继续挨个扫描 遇到再次跳跃25000,还是比较快的如果磁盘基本没什么坏道整体扫描时间比较久。此屏蔽方法需要配合二次处理生成日志的软件使用,补充完整的屏蔽文件列表例如坏块扫描到的是125715 1500716  145351
那么,软件读入这三个数值,处理4k对齐方式,然后根据这两个数值处理屏蔽  之前处理windows级别的是扇区一个扇区512字节,4k对齐也就是4096/512=8个扇区,现在处理linux的块为单位,目前我格式化使用的是4096为block的单位,一个块4096, 如果不加-b 4096  默认的就是1024,所以,这里一定要注意的是
block全局要统一。不然,格式化的默认1024,检测坏块单位4096,这很明显,检测的跳过比1024大。如果按这个屏蔽好的也被屏蔽了。格式化不成功,的情况下,检查一下,日志文件的块大小,检查一下格式化文件系统的块大小,这里我就卡了2天,因为日志文件格式化是默认的,1024,ext4格式化使用的是指定的4096,结果死活格式化不成功,我还以为是mkfs.ext4文件版本的问题,升级了这工具集也没解决,后来发现是日志文件的块大小是1024是错误的,应该格式化日志文件加上-b 4096  格式化ext4分区加上 -b 4096这样两个相同一致,就不会出错了第一个和第二个数值属于连接在一起的,那么一个循环开始从第一个前面的N个块开始到第二个结束的N个屏蔽,有效区域大小预设为4个N,考虑到对齐是  1的前后  2的前后  所以占了1的两个,2的两个,总共为4个4k对齐,如果想更安全,把这个块对齐设置成跳过的块一样的大小,也就是100M,有效区域就是大于N*4=400M才算有效区域,例如总共650m,那么经过块取整屏蔽650-400=250m可用空间。中文不行,凑合看,看不懂的看源码可以。哈哈。。。具体的软件源码在下面链接,不明白的可以留言目前这样的方法非常速度。
建立一个 test.py
#!/usr/bin/env /bin/python3.9
#-*- coding:utf-8 -*-
import os
import time
import subprocess#240703 v03 修复遇到坏块,变量未赋值bug
#240702 v02 修复检测结束后为空,结束跳出
#查看块总数
#root@raspberrypi:/a/2# sudo dumpe2fs /dev/sda5  |grep "Block count"
#dumpe2fs 1.47.1 (20-May-2024)
#Block count:              13107200
#root@raspberrypi:/a/2# #badblocks -b 4096 -s -e 1 -c 1 -v -o /a/2/bads6.txt /dev/sda5
#sudo dumpe2fs /dev/sda5  > /a/2/dd.txt
#cat dd.txt |less#Checking blocks 0 to 78142805
#a=17950434
#a=18736084#1912902a=1910000
a_end=13107200
#a_end=10073565
#遇到坏块跳过的块
#100M
a_step_num=25000tmp_bad_txt="/a/2/tmp.txt"
bad_txt="/a/2/bad.txt"
device="/dev/sda6"#txt="head -n 1 "+tmp_bad_txt+""
#var=subprocess.getoutput(txt)
#print(var)
#time.sleep( 500 )#读取第一行文本,追加到另一个文本文件中
#txt="head -n 1 "+tmp_bad_txt
#var=subprocess.getoutput(txt)
#print(var)
#txt="echo "+var+" >> "+bad_txt
#var=subprocess.getoutput(txt)
#time.sleep( 500 )while a < a_end:#检测到坏块1个跳出txt="badblocks -b 4096 -s -e 1 -c 1 -v -o "+tmp_bad_txt+" "+device+" "+ str(a_end)+" "+str(a)print(txt)os.system(txt)#time.sleep( 50 )#读取坏块文件追加到坏块日志#读取第一行文本,追加到另一个文本文件中txt="head -n 1 "+tmp_bad_txtvar=subprocess.getoutput(txt)a=int(var)print(var)if(var==""):a=a_endbreaktxt="echo "+var+" >> "+bad_txtvar=subprocess.getoutput(txt)#time.sleep( 500 )print(a)#time.sleep( 50 )a=a+1a+=a_step_num
用上面的脚本跑完,得到一个/a/2/bad.txt这里得到的是一个粗略的坏块列表例如我们遇到坏块 1坏掉了,跳过了2500 然后从25002开始
但是1-25001坏块未知,所以写个小软件,原理如下
读入bad.txt
屏蔽坏块前后N个块的坏块完整的记录到日志
badblocks坏块日志工具源码
https://download.csdn.net/download/cyuyan112233/89484946
这个是易语言写的日志处理,如果有厉害点的看看给改成Python的发我一份,感谢~!屏蔽坏块
e2fsck -l /a/2/bads4.txt /dev/sda5 -y昨天经过屏蔽都是50G的空间,loop0是 sda5的日志文件 sda5 可使用空间46.6G 
loop1是 sda6的日志文件 sda6  可使用空间14.9G​​​​​​​
root@raspberrypi:~# lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINT
loop0       jbd    1.0          145ab1f2-03b1-420b-9860-3ec981f69c38                
loop1       jbd    1.0          85bdb8dd-b291-4aeb-8e4a-e904fe268161                
sda                                                                                 
├─sda1                                                                              
├─sda5      ext4   1.0          282d7a5e-22f1-41f0-baa4-3769eb0b9de9   46.6G     0% /a/sda5
└─sda6      ext4   1.0          9546e28e-3ed9-4847-a2fc-7a865ded1704   14.9G    65% /a/sda6
mmcblk0                                                                             
├─mmcblk0p1 vfat   FAT32 bootfs 1697-900D                             204.6M    20% /boot
└─mmcblk0p2 ext4   1.0   rootfs 6848c53e-95c6-4a65-bcf9-2e5ad58c3893  874.9M    83% /树莓派折腾的如下
mkfs.ntfs -f -Q /dev/sda1
给docker更换地方
mount /dev/sda1 /a/3
dd if=/dev/zero of=/a/3/20g bs=1024k count=0 seek=20000
docker文件存储20g
cp -R  /var/lib/docker /var/lib/docker_bak
mount /a/3/20g /var/lib/docker12:41 2024/6/21
sudo passwd root     #执行后会要求输入两次设置root的新密码
sudo passwd --unlock root  #解锁root账户
su root    #输入密码后切换到root账号
sudo sed -i "s/^#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config  #开启root账户的SSH权限
sudo systemctl restart ssh   #重启SSH服务,以后就可以用root账户直接SSH登入了。10:21 2024/6/21
https://gitee.com/wanfeng789/docker-hub
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://do.nark.eu.org"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker8:45 2024/6/21
制作一个docker用的镜像,用于安装lnmp环境
https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/ubuntu-core-22-armhf+raspi.img.xz
sudo mount -o loop /path/to/your/image.img /mnt/my_mount_point11:05 2024/6/11树莓派启动后安装向日葵客户端reated symlink /etc/systemd/system/multi-user.target.wants/phtunnel.service → /lib/systemd/system/phtunnel.service.
Installation, please later...
Successful installation of Phddns Service.+--------------------------------------------------+|           Oray Phtunnel Raspberry 5.1.0          |+--------------------------------------------------+|  SN: oray009d64ee39e2   Default password: admin  |+--------------------------------------------------+|    Remote Management Address http://b.oray.com   |+--------------------------------------------------+/var/lib/dpkg/info/phddns.postinst: line 13: [: too many arguments###########################################.............................................................] 
Created symlink /etc/systemd/system/multi-user.target.wants/phtunnel.service → /lib/systemd/system/phtunnel.service.
Installation, please later...
Successful installation of Phddns Service.+--------------------------------------------------+|           Oray Phtunnel Raspberry 5.1.0          |+--------------------------------------------------+|  SN: oray009d64ee39e2   Default password: admin  |+--------------------------------------------------+|    Remote Management Address http://b.oray.com   |+--------------------------------------------------+W: Repository is broken: phddns:armhf (= 5.1.0) has no Size informationps930882at6.vicp.fun:23312①树莓派3.0.3版本命令格式为:systemctl start phddns
其中start为命令操作,stop(停止)|restart(重启) |status(状态)|version(版本)|reset(重置)同理
树莓派3.0.0-3.0.2版本操作命令相同,具体如下:
卸载:dpkg -r phddns每小时自动重启花生壳
15:39 2024/6/12
crontab -e
0 */1 * * * /a/r1.sh
定时任务内的内容 
#!/bin/bash
sudo /bin/phddns restart
sudo /bin/phtunnel restart &共享放在sda1的启动挂载
administrator@raspberrypi:~ $ sudo blkid /dev/sda1
/dev/sda1: LABEL="320" BLOCK_SIZE="512" UUID="6818E4E518E4B36C" TYPE="ntfs" PARTUUID="24052501-01"sudo vi /etc/fstabproc            /proc           proc    defaults          0       0
PARTUUID=ab4e1900-01  /boot           vfat    defaults          0       2
PARTUUID=ab4e1900-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
PARTUUID=24052501-01  /a/3               ntfs    defaults  0       0sudo vi /etc/samba/smb.conf
[a_3]comment = a_3path = /a/3guest ok = nobrowseable = yescreate mask = 0600directory mask = 0700read only = nosudo smbpasswd -a root这样局域网windows使用
\\raspberrypi
或者
\\192.168.199.46下面安装树莓派唤醒功能,这样回家可以远程开局域网任何一台可以网卡唤醒的机器
用于唤醒其他物理电脑,里面可以安装todesk或者向日葵
3楼办公电脑
sudo apt install wakeonlan
wakeonlan <待唤醒计算机的MAC地址>00-E0-7B-68-11-62
192.168.199.54

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

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

相关文章

第一周题目总结

1.车尔尼有一个数组 nums &#xff0c;它只包含 正 整数&#xff0c;所有正整数的数位长度都 相同 。 两个整数的 数位不同 指的是两个整数 相同 位置上不同数字的数目。 请车尔尼返回 nums 中 所有 整数对里&#xff0c;数位不同之和。 示例 1&#xff1a; 输入&#xff1a…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示网络时间

LCD ST7735显示网络时间 文章目录 LCD ST7735显示网络时间1、硬件准备2、代码实现本文将介绍如何使用 ESP8266 NodeMCU Wi-Fi 板实现互联网时钟,其中时间和日期显示在 ST7735 TFT 显示屏上。 ST7735 TFT是一款分辨率为128160像素的彩色显示屏,采用SPI协议与主控设备通信。 1…

Python中的变量和数据类型:Python中有哪些基本数据类型以及变量是如何声明的

在Python中&#xff0c;变量是用来存储数据的容器&#xff0c;而数据类型则定义了这些数据的种类。Python是一种动态类型语言&#xff0c;这意味着你不需要在声明变量时指定其类型&#xff1b;Python解释器会在运行时自动确定变量的类型。 Python中的基本数据类型 Python中有…

SQL语句(DML)

DML英文全称是Data Manipulation Language&#xff08;数据操作语言&#xff09;&#xff0c;用来对数据库中表的数据记录进行增删改等操作 DML-添加数据 insert into employee(id, workno, name, gender, age, idcard) values (1,1,Itcast,男,10,123456789012345678);select *…

AI 与数据的智能融合丨大模型时代下的存储系统

WOT 全球技术创新大会2024北京站于 6 月 22 日圆满落幕。本届大会以“智启新纪&#xff0c;慧创万物”为主题&#xff0c;邀请到 60 位不同行业的专家&#xff0c;聚焦 AIGC、领导力、研发效能、架构演进、大数据等热门技术话题进行分享。 近年来&#xff0c;数据和人工智能已…

记录搭建一台可域名访问的HTTPS服务器

一、背景 近期公司业务涉及到微信小程序&#xff0c;即将开发完成需要按照微信小程序平台的要求提供带证书的域名请求服务器。 资源背景介绍如下&#xff1a; 1、域名 公司已有一个二级域名&#xff0c;再次申请新的二级域名并且实现ICP备案不仅需要花重金重新购买&#xff0c;…

Docker实现Redis主从,以及哨兵机制

Docker实现Redis主从,以及哨兵机制 目录 Docker实现Redis主从,以及哨兵机制准备Redis镜像创建Redis主节点配置文件启动Redis从节点确认主从连接哨兵主要功能配置哨兵文件创建Redis哨兵的Docker容器 要通过Docker实现Redis的主从&#xff08;master-slave&#xff09;复制&#…

汽车EDI: BMW EDI项目案例

宝马集团是全世界成功的汽车和摩托车制造商之一&#xff0c;旗下拥有BMW、MINI和Rolls-Royce三大品牌&#xff1b;同时提供汽车金融和高档出行服务。作为一家全球性公司&#xff0c;宝马集团在14个国家拥有31家生产和组装厂&#xff0c;销售网络遍及140多个国家和地区。 本文主…

什么是 Socks5 代理?了解和使用 SOCKS5 代理的终极指南

SOCKS5是什么以及它如何工作&#xff1f; 在网络和互联网协议领域&#xff0c;有多种工具和技术在确保安全高效的通信方面发挥着至关重要的作用。 SOCKS5 就是这样一个工具&#xff0c;它代表套接字安全版本 5。 在这篇博文中&#xff0c;我们将深入探讨 SOCKS5 的细节&…

CoAtNet(NeurIPS 2023, Google)论文解读

paper&#xff1a;CoAtNet: Marrying Convolution and Attention for All Data Sizes third-party implementation&#xff1a;https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/maxxvit.py 背景 自AlexNet以来&#xff0c;ConvNets一直是计算机…

【基于R语言群体遗传学】-5-扩展到两个以上等位基因及多基因位点

我们现在继续对于群体遗传学进行统计建模&#xff0c;书接上回&#xff0c;我们讨论了孤雌生殖的物种违反哈代温伯格遗传比例的例子&#xff0c;那我们现在来看多于两个等位基因的情况的计算。 如果没有看过之前文章的同学&#xff0c;可以先去看一下之前的文章&#xff1a; …

开源租房项目

项目名称项目地址描述体验地址后端代码前端代码小程序端代码gitHubstart租房或房屋交易项目https://github.com/saysky/manland?tabreadme-ov-filePC端 管理端http://manland.liuyanzhao.com/有有无房适–房屋租赁管理平台https://github.com/LiuXIn011/rightHouse开源房屋管理…

非对称加密算法原理与应用1——秘钥的生成

作者:私语茶馆 1.前言 非对称算法有非常多的用途,实现license管控,数字签名,加密内容等等,由于涉及场景和标准非常多,因此实际使用过程中还是存在一定门槛,这里记录一下利用非对称算法RSA的应用关键点,并提供实现license管理的案例。预计拆分为以下几个章节: (1)秘…

Apipost接口测试工具的原理及应用详解(三)

本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost凭…

【分布式数据仓库Hive】HivQL的使用

目录 一、Hive的基本操作 1. 使用Hive创建数据库test 2. 检索数据库&#xff08;模糊查看&#xff09;&#xff0c;检索形如’te*’的数据库 3. 查看数据库test详情 4. 删除数据库test 5. 创建一个学生数据库Stus&#xff0c;在其中创建一个内部表Student&#xff0c;表格…

ubuntu20.04在anaconda环境下不能使用catkin_make

ubuntu20.04在anaconda环境下不能直接使用catkin_make编译&#xff0c;报错显示需要安装python3-empy 这时候查询会发现该软件包已经安装了&#xff0c;但是是在ROS环境中&#xff0c;安装anaconda环境后python解释器的指向变了&#xff0c;所以需要在anaconda环境中再装pytho…

Unity udp通信详解

在Unity中实现UDP通信&#xff0c;需要使用C#的System.Net和System.Net.Sockets命名空间。UDP&#xff08;用户数据报协议&#xff09;是一种无连接的网络协议&#xff0c;它允许数据包在网络上发送和接收&#xff0c;但不保证数据包的到达顺序、完整性或可靠性。这使得UDP非常…

沃德校园助手丨校园跑腿-校园外卖-校园论坛三合一系统

校园跑腿项目其实由来已久&#xff0c;由于大学校园生活的特殊性&#xff0c;除了日常的课程学习之外&#xff0c;大学生的所有生活基本长期处于全模式形态下的校园封闭环境中&#xff0c;再加之当前大学生一部分学业繁忙&#xff0c;办事不便。另一部分自理能力较差&#xff0…

【kafka】可视化工具cmak(原kafka-manager)安装问题解决

众所周知&#xff08;反正不管你知不知道&#xff09;&#xff0c;kafka-maneger更名了&#xff0c;现在叫cmak&#xff01;原因是什么呢&#xff1f;据不可靠小道信息说&#xff0c;原kafka-manager这个名字涉及到kafka商标使用问题&#xff0c;应该是被律师函警告了&#xff…

如何批量创建、提取和重命名文件夹!!!

你是否还在一个一个手动创建文件名&#xff01; 你是否还在一个一个手动提取文件名&#xff01; 你是否还在一个一个手动修改文件名&#xff01; 请随小生一起批量自动创建、提取、重命名&#xff01; 1、批量创建文件夹 【案例】创建1日-31日共31个文件夹 【第一步】在A列…