<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunhaobo2的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sunhaobo2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sunhaobo2]]></copyright><item><title><![CDATA[Windows搭建并运行NTP服务]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/163629927</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/163629927</guid><author>sunhaobo2</author><pubDate>Mon, 10 Aug 2026 10:31:15 +0800</pubDate><description><![CDATA[Windows 自带​ 服务就能当 NTP Server 用，不用装第三方软件。下面给你一套可用的标准做法（Win10/11、Windows Server 通用）。]]></description><category></category></item><item><title><![CDATA[各种串口升级固件]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/163135620</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/163135620</guid><author>sunhaobo2</author><pubDate>Thu, 23 Jul 2026 15:18:46 +0800</pubDate><description><![CDATA[本文概述了嵌入式系统中常见的串口固件升级方法，包括UART、RS485、I²C、SPI和CAN接口。核心架构基于BootLoader机制，通过判断升级标志位，从不同串行接口接收固件数据并写入Flash。文章详细介绍了每种接口的特点和实现方案：UART支持Ymodem协议；RS485复用UART方案但需控制方向；I²C适合板内主从架构；SPI可用于高速通信或外挂存储；CAN遵循UDS标准且复杂度最高。最后给出了选型建议和通用注意事项，强调地址偏移、校验机制和安全防护的重要性，适用于不同场景的固件升级需求。]]></description><category></category></item><item><title><![CDATA[服务器——看门狗]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/163134863</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/163134863</guid><author>sunhaobo2</author><pubDate>Thu, 23 Jul 2026 14:53:45 +0800</pubDate><description><![CDATA[看门狗是服务器系统的自动恢复机制，通过定时器监控系统状态。硬件看门狗（如BMC）独立于主系统，在死机时强制重启；软件看门狗依赖系统运行。典型应用包括内核崩溃恢复、无人值守节点维护等。Linux中需合理配置超时时间（30-120秒）和高优先级喂狗程序。最佳实践是结合硬件和软件看门狗形成双重保障，实现分钟级故障自愈，减少人工干预。注意避免误触发和喂狗程序失效等问题。]]></description><category></category></item><item><title><![CDATA[硬盘种类区分完全指南]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/162297268</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/162297268</guid><author>sunhaobo2</author><pubDate>Thu, 25 Jun 2026 10:50:19 +0800</pubDate><description><![CDATA[本文全面解析硬盘分类与选购要点，涵盖机械硬盘（HDD）和固态硬盘（SSD）两大类别： 核心分类 HDD分为空气盘（WUS/HUS开头）和氦气盘（WUH/HUH开头），12TB+多为氦气盘；按技术分CMR（推荐）和SMR（慎用，RAID禁用） SSD分SATA（550MB/s）和NVMe（PCIe 3.0-5.0，最高14000MB/s） 关键识别技巧 HDD看型号第3位字母（S=空气/H=氦气） SSD速度判断：PCIe 3.0＜4GB/s，4.0≈7GB/s，5.0＞12GB/s NAS必选CMR硬盘（希]]></description><category></category></item><item><title><![CDATA[再生龙还原OS-单个]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/156082989</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/156082989</guid><author>sunhaobo2</author><pubDate>Fri, 19 Dec 2025 15:19:40 +0800</pubDate><description><![CDATA[还原时间约为8分钟左右(根据镜像文件大小以及U盘的读写速率有关），若是还原时间过久，可能是卡在哪一步，需要重启再来一遍就好了。2.选择home-> partimag，并将封装好的镜像文件放入文件夹内。2.开机进BIOS，选择SAVE&EXIT->USB，就会自动还原。3.放好镜像文件后，回到前两个目录，并选择syslinux文件夹。5.用记事本打开这个文件，按Ctrl+F搜索，搜索内容为2024。1.搭好环境，准备好系统盘和制作好的再生龙U盘。（可以根据需求选择语言，此外我选中文）1.打开再生龙系统U盘。]]></description><category></category></item><item><title><![CDATA[再生龙批量还原OS—上：服务端]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/155694466</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/155694466</guid><author>sunhaobo2</author><pubDate>Mon, 08 Dec 2025 10:16:07 +0800</pubDate><description><![CDATA[6）稍等进入桌面，上面有多个应用程序图标，常用的有“启动 DRBL”和“再生龙服务器”，用于整个机房的备份和批量还原；1）双击桌面上的“再生龙服务器”，先出来一个设置IP，按下方向键选择“static”固定，然后按回车键；2）按回车键继续，接下来的设定服务器IP，按下方向键选“static”固定IP，按回车键继续；6）接下来选择文件夹，直接用根目录即可，按回车键继续，提示需要一定的时间启动 DRBL；4）其他的网络设定，直接按回车使用默认设定即可，然后启动各个套件，耐心等待即可；]]></description><category></category></item><item><title><![CDATA[再生龙批量还原OS—下：客户机端]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/155693586</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/155693586</guid><author>sunhaobo2</author><pubDate>Mon, 08 Dec 2025 10:03:17 +0800</pubDate><description><![CDATA[4）接下来的再龙模式中，直接按回车键选择“Beginner 初学者模式：接受默认的选择”；12）接下来设定等待时间，默认是300秒，在超过这个时间后会自动开始复制，按回车键继续；2）直接按回车键，选择第一项 All 选择所有的客户端，出来模式选择面板；7）接下来出来选择镜像文件对话框，选择上次备份的文件，按回车键继续；11）接下来设定客户机数量，根据自己的机房数量设定，按回车键继续；8）接下来选择分区，一般是第一个 sda1 ，按回车键继续；9）接下来询问群播方式，按回车键选择第一个继续；]]></description><category></category></item><item><title><![CDATA[父子shell]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/139229320</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/139229320</guid><author>sunhaobo2</author><pubDate>Mon, 27 May 2024 16:11:32 +0800</pubDate><description><![CDATA[source和.，执行脚本，只在当前的shell环境中执行生效
	指定bash sh解释器运行脚本，是开启subshell，开启子shell运行脚本命令
	./script，都会指定shebang,通过解释器运行，也是开启subshell运行命令
	pstree查看父子shell环境状态（若没有安装pstree,请先安装pstree,命令如下：yum -y / apt -y install psmisc
	ps进程管理命令，查看（-f 显示UID，PID，PPID；-e 列出所有进程的信息，）
	创建进]]></description><category></category></item><item><title><![CDATA[shell中的扩展变量]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/137137427</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/137137427</guid><author>sunhaobo2</author><pubDate>Fri, 24 May 2024 16:44:29 +0800</pubDate><description><![CDATA[若sh变量值为空，返回word字符串，赋值给result变量
	若sh变量值为空，则word替代变量值，且返回其值
	若sh变量为空，word当作stderr（异常报错输出信息）输出，否则输出变量值用于设置变量为空导致错误时，返回的错误信息
	若sh变量为空，什么都不做，否则word返回
	实际应用：数据备份，删除过期数据的脚本: 公式：find 需要搜索的目录 -name 你要搜索的文件名字 -type 文件类型 -mtime +7 | xargs rm -f







]]></description><category></category></item><item><title><![CDATA[金融量化分析——Numpy-Array通用函数]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136511830</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136511830</guid><author>sunhaobo2</author><pubDate>Wed, 27 Mar 2024 16:36:21 +0800</pubDate><description><![CDATA[对比两数组中每项的最大值。c为随机生成数据的形状。]]></description><category></category></item><item><title><![CDATA[金融量化分析——Numpy——ndarray-数据类型，索引，切片]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136483144</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136483144</guid><author>sunhaobo2</author><pubDate>Wed, 06 Mar 2024 15:32:19 +0800</pubDate><description><![CDATA[对array数组来说，切片相当于引用，列表来说就是赋值。根据指定边长和dtype创建单位矩阵。]]></description><category></category></item><item><title><![CDATA[Ipython中的魔术命令]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136478946</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136478946</guid><author>sunhaobo2</author><pubDate>Tue, 05 Mar 2024 16:36:28 +0800</pubDate><description><![CDATA[命令
				说明
			%quickref
				显示ipython的快速参考
			%magic
				显示所有魔术命令的详细文档
			%debug
				从最新的异常跟踪的底部进入交互式调试器
			%host
				打印命令的输入（可选输出）历史
			%pdb
				在异常发生后自动进入调试器
			%paste
				执行剪贴板中的python代码
			%cpaste
				打开一个特殊提示符以便手工粘贴待执行的python代码
			%reset
				删除intera]]></description><category></category></item><item><title><![CDATA[ipython中的快捷键]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136369718</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136369718</guid><author>sunhaobo2</author><pubDate>Thu, 29 Feb 2024 14:13:47 +0800</pubDate><description><![CDATA[命令
			说明
		ctrl+P或上箭头
			后向搜索命令历史中以当前输入的文本开头的命令
		ctrl+N或下箭头
			前向搜索命令历史中以当前输入的文本开头的命令
		ctrl+R
			按行读取的反向历史搜索（部分匹配）
		ctrl+shift+v
			从剪贴板粘贴文本
		ctrl+C
			终止当前执行中的代码
		ctrl+A
			将光标移到行首
		ctrl+E
			将光标移到行尾
		ctrl+K
			删除从光标开始至行尾的文本
		ctrl+U
			清除当前行的所有文本
]]></description><category></category></item><item><title><![CDATA[统计变量子串的长度及相关命令执行效率对比]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136210256</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136210256</guid><author>sunhaobo2</author><pubDate>Thu, 29 Feb 2024 10:45:49 +0800</pubDate><description><![CDATA[总结：shell编程，尽量使用linux内置的命令，内置的操作和内置的函数，效率最高。因为这些命令和函数都是用C语言编写的，尽量减少管道符——"|"的使用，因为管道符属于在前置命令的执行结果的基础上二次加工；real——实际执行时间；user——用户态执行时间；sys——内核态执行时间。]]></description><category></category></item><item><title><![CDATA[shell编程中的子串变量的用法]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136187010</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136187010</guid><author>sunhaobo2</author><pubDate>Wed, 21 Feb 2024 12:23:06 +0800</pubDate><description><![CDATA[替换。]]></description><category></category></item><item><title><![CDATA[bash中的简单内置shell命令]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/136149581</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/136149581</guid><author>sunhaobo2</author><pubDate>Tue, 20 Feb 2024 11:25:51 +0800</pubDate><description><![CDATA[n 不换行输出-e 解析字符串中的特殊符号\n 换行\r  回车\t  制表符，四个空格\b 退格printf命令自动识别\n,\t等特殊命令，并且在结尾处不会自动换行。]]></description><category></category></item><item><title><![CDATA[shell——特殊变量]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/135955638</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/135955638</guid><author>sunhaobo2</author><pubDate>Sun, 18 Feb 2024 12:14:25 +0800</pubDate><description><![CDATA[$0  获取shell脚本文件名，以及脚本路径
	$n  获取shell脚本的第n个参数，n在1~9之间，如$1,$2,$9,大于9则需要写${10},参数空格隔开
	$#  获取执行的shell脚本后面的参数总个数
	$*  获取shell脚本所有参数，不加引号等同于$@作用，加上引号"$*"作用是接收所有参数为单个字符串，"$1 $2....
	$@ 不加引号，效果同上，加引号，是接收所有参数为独立字符串，如"$1" "$2" "$3" ......
	$*与$@的区别，实例如图]]></description><category></category></item><item><title><![CDATA[shell学习笔记]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/135954900</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/135954900</guid><author>sunhaobo2</author><pubDate>Wed, 31 Jan 2024 15:52:45 +0800</pubDate><description><![CDATA[Awk是一种用于文本处理的强大工具，它可以用于从文件或管道中提取和处理数据。它可以进行文本搜索、数据提取、格式化输出等操作。]]></description><category></category></item><item><title><![CDATA[父子shell的面试题]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/135950442</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/135950442</guid><author>sunhaobo2</author><pubDate>Wed, 31 Jan 2024 15:16:26 +0800</pubDate><description><![CDATA[单引号无法识别特殊语法，双引号可以识别特殊语法，例如：
	不同的执行方式，不同的shell变量：
每次调用bash都会开启一个子shell，因此不保留当前的sell变量，通过pstree命令检查进程树
	调用source是在当前shell环境加载脚本，因此保留变量
在Linux中反引号中的命令执行结果会被保留下来，如图所示：
]]></description><category></category></item><item><title><![CDATA[jmeter上传文件时常见的MIME类型]]></title><link>https://blog.youkuaiyun.com/sunhaobo2/article/details/134895792</link><guid>https://blog.youkuaiyun.com/sunhaobo2/article/details/134895792</guid><author>sunhaobo2</author><pubDate>Sat, 09 Dec 2023 15:31:55 +0800</pubDate><description><![CDATA[jmeter上传文件时常见的MIME类型
	超文本标记语言文本 .html
			text/html
		普通文本 .txt
			text/plain
		RTF 文本 .rtf
			application/rtf
		GIF 图形 .gif
			image/gif
		JPEG 图形 .jpeg、.jpg
			image/jpeg
		au 声音文件 .au
			audio/basic
		MIDI 音乐文件 .mid、.midi
			audio/midi、audio/x-midi]]></description><category></category></item></channel></rss>