Linux系统硬盘爆了?可能是因为Docker日志文件
Linux系统硬盘爆了?可能是因为Docker日志文件
定位问题
1df -h
1234567891011121314文件系统 大小 已用 可用 已用% 挂载点overlay 3.5T 3.4T 0 100% /var/lib/docker/overlay2/e45ac69ad614de49cc50e66d404e159e86532193608da7315ca33aa776e426ab/mergedoverlay 3.5T 3.4T 0 100% /var/lib/docker/overlay2/3943e7de3bee9fa4d6df1e2dfc41d6270d11d99e79869246763033361e47e2cb/mergedoverlay 3.5T 3.4T 0 100% /var/lib/docker/overlay2/2854576b609fd3e9ea2f2ce422fdc072dc336e75e ...
LMDeploy+Open Web UI部署DeepSeek
LMDeploy部署deepseek
Miniconda安装
1234mkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.shbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3rm -rf ~/miniconda3/miniconda.sh
1~/miniconda3/bin/conda init bash
1source ~/.bashrc
LMDeploy下载
123conda create -n lmdeploy python=3.8 -yconda activate lmdeploypip install lmdeploy
模型准备
1.下模地址
huggingface
https://huggingface.io
魔塔社区
https://www.modelscope.cn
找到模型后赋值其名称ID即可。
2. 模型下载
12 ...
Ollama+Open Web UI部署DeepSeek
前言
本文使用Docker、Ollama以及Open WebUI在Linux部署本地模型,实现web式访问大模型。
工具安装
Ollama
运行命令
1curl -fsSL https://ollama.com/install.sh | sh
Docker
1. 安装 Docker
步骤 1.1: 更新系统
在安装 Docker 之前,确保系统是最新的:
12sudo apt update sudo apt upgrade -y
步骤 1.2: 安装必要的依赖
安装一些必要的依赖包:
1sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
步骤 1.3: 添加 Docker 官方 GPG 密钥
1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
步骤 ...
ZeroTier One虚拟局域网实现Windows远程控制
使用 ZeroTier 搭建虚拟局域网实现 Windows 远程控制
在日常工作中,我们可能需要远程访问局域网内的 Windows 电脑,但由于设备分布在不同的网络环境中,传统的局域网远程控制方式(如 RDP)可能无法直接使用。通过 ZeroTier,我们可以轻松搭建一个虚拟局域网,将不同网络中的设备连接起来,实现远程控制。
本文将详细介绍如何使用 ZeroTier 搭建虚拟局域网,并通过 Windows 自带的远程桌面功能实现远程控制。
什么是 ZeroTier?
ZeroTier 是一款开源的虚拟局域网工具,它可以在不同的网络环境中创建一个虚拟局域网,让分布在全球的设备像在同一个局域网中一样互联互通。它的主要特点包括:
跨平台支持:支持 Windows、Linux、macOS、Android、iOS 等多种操作系统。
简单易用:无需复杂的网络配置,几分钟即可搭建虚拟局域网。
高效稳定:支持点对点连接,延迟低,性能高。
实现目标
通过 ZeroTier 搭建虚拟局域网,将两台 Windows 设备连接到同一个虚拟局域网中,并使用 Windows 自带的远程桌面功能(RDP)实 ...
Git 中清除历史记录中的大文件夹或大文件
在 Git 中清除历史记录中的大文件夹或大文件,可以通过以下步骤实现。这通常需要使用 git filter-repo 或 git filter-branch 工具。以下是推荐的方式:
方法 1:使用 git filter-repo(推荐)
git filter-repo 是一个更现代、更高效的工具,适合清理历史记录。
步骤:
安装 git filter-repo 如果尚未安装,可以通过以下方式安装:
1pip install git-filter-repo
备份当前仓库 在操作之前,建议备份当前仓库,以防误操作导致数据丢失:
1cp -r your-repo your-repo-backup
清除大文件夹 假设你要清除名为 large-folder 的文件夹:
1git filter-repo --path large-folder --invert-paths
--path 指定要操作的路径。
--invert-paths 表示删除指定路径的内容。
强制推送到远程仓库 清理完成后,需要强制推送到远程仓库以覆盖历史记录:
12bashgit push origin ...
使用 Inno Setup 打包和处理单个大文件
使用 Inno Setup 打包和处理单个大文件
在软件开发和分发过程中,尤其是涉及到大文件(如模型文件、数据文件等)的场景,如何高效地打包和处理这些文件是一个常见的问题。本文将介绍如何使用 Inno Setup 打包单个大文件,并在安装过程中对其进行处理(如合并分块文件)。
为什么需要分块和合并大文件?
在某些情况下,单个大文件可能需要被拆分成多个小文件进行分发,例如:
文件大小限制:某些文件系统或传输协议对单个文件的大小有限制。
压缩优化:分块文件可以更好地利用压缩算法的优势。
安装灵活性:分块文件可以按需加载或合并,减少安装包的复杂性。
通过 Inno Setup,我们可以轻松实现以下功能:
将分块文件打包到安装包中。
在安装过程中自动合并分块文件为原始大文件。
安装完成后清理分块文件,保持安装目录整洁。
准备工作
1. 拆分大文件
在打包之前,我们需要将大文件拆分为多个分块文件。以下是一个 Python 脚本,用于将大文件拆分为指定大小的分块文件。
Python 拆分脚本
12345678910111213141516171819202122232425262728 ...
Git subtree使用
1. 添加子仓库地址
1git remote add SubTree-origin http://192.168.50.200:3000/330/SubTree.git
2. 使用 subtree 添加子树
1git subtree add -P SubTree SubTree-origin master --squash
注意:--squash 会把所有提交合并成一条提交,如果使用了此选项,在后续的其他命令也应使用 --squash,以保持提交记录的线性,否则可能会出现分支落后的问题。
3. 从子仓库拉取更新
当子仓库有新的提交时,可以使用以下命令将最新的更改拉取到主仓库中:
1git subtree pull -P SubTree SubTree-origin master --squash
说明:
git subtree pull:从指定的远程仓库拉取子树的更新。
-P SubTree:指定子树的路径。
SubTree-origin:远程子仓库的名称。
master:子仓库的目标分支。
--squash:将所有拉取的提交压缩成一个提交,以保持主仓库的提交历史简洁。
...
Doxygen使用 - 自动生成文档
Doxygen 介绍
Doxygen 是一个用于生成文档的工具,主要用于 C++、C、Objective-C、C# 和其他类似语言的代码。它可以根据代码中的注释生成各种格式的文档,包括 HTML、LaTeX、RTF 等。Doxygen 支持多种注释风格,支持 JavaDoc 和 Qt 风格的注释。
通过在代码中添加特定格式的注释,如函数说明、参数说明、返回值说明等,Doxygen 可以根据这些注释生成易于阅读的文档,帮助开发人员更好地理解代码的结构和功能。它还可以生成调用图、继承图等可视化工具,帮助开发人员更好地理解代码之间的关系。
Doxygen 是一个功能强大且灵活的工具,广泛用于各种开源项目和商业项目中,帮助开发团队更好地管理和维护其代码库。
Doxygen的安装(通常只需要一台电脑安装进行文档的生成)
Doxygen官方文档
特定注释风格
这里介绍JavaDoc注释格式。写代码时应遵循以下特定格式进行注释。
JavaDoc注释格式
JavaDoc 注释块以 /** 开始,以 */ 结束,通常位于类、方法、字段、构造函数等的前面。以下是常用的 JavaDoc 标签 ...
git使用规范以及VS的Git图形化操作
团队有使用git的需求,这时我平时的一个流程,记录下来。
git使用规范
1. git clone仓库后应立即建立自己的开发分支,自己命名即可,例如
克隆仓库
1git clone xxxx.git
创建并切换分支
1git checkout -b develop
后续可以在自己分支上就行开发修改。!!!但是一定要注意就行任何操作之前一定要进行提交!!!,如以下命令提交所有文件
12git add .git commit -m "你的提交备注"
只有任何操作之前进行提交才能保证数据安全不会丢失,都可找回!!!
2. git 在本地合并上传自己的代码
!!!在合并之前最规范的行为应该是保证本地master/main分支(即克隆下来的默认分支)和远程仓库保持同步!!!
切换分支并拉取合并最新代码,pull命令会自动和本地合并,也可自己fetch在手动合并,在切换分支之前记得提交当前分支,如上
12git checkout mastergit pull
合并本地开发分支到本地master
1git merge develop
这时会发生冲突,如图
这个时候就需要到对应文件手动合并冲突,可以 ...
MFC中CString转换成C风格字符串宏和string
前言
在MFC中经常需要CString, const char *, string的转换,这里记录一种通过宏转换的方法。
宏函数
12345678#ifdef _UNICODE#define CString2C_Str(pStr, pC_Str) \ CT2A pszConvertedAnsiString##pStr(pStr); \ const char* pC_Str = pszConvertedAnsiString##pStr; #else #define CString2C_Str(pStr, pC_Str) \ const char* pC_Str = pStr.GetString(); #endif
使用
1234CString str = _T("测试");CString2C_Str(str, str_c_str);std::cout << str_c_str;std::string strCpp(str_c_str);
该封面图片由D Muller在Pixabay上发布
Oracle数据库通过oci插入和查询CLOB超长文本数据
前言
在处理大型文本数据时,Oracle 数据库的 CLOB(Character Large Object)类型非常有用。使用 Oracle Call Interface(OCI)可以高效地将超长文本插入到数据库中。本篇文章将展示如何使用 OCI 插入超长文本到 Oracle 数据库的 CLOB 字段中。
插入CLOB数据
建立表
1234CREATE TABLE Components ( name VARCHAR() clob_column CLOB);
插入数据代码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117#include < ...
C++调用Python程序
由于有用C++调用Python程序的需求,本文记录一种可行的方式,采用cpython打包库,在C++中加载解释器调用程序。
准备工作
安装CPython
1pip install cython
示例过程
建立一个.pyx文件用于暴露接口。如example.pyx
12345678# example.pyxcdef extern from "math.h": double sqrt(double x)def c_sqrt(double x): return sqrt(x)
创建一个setup.py文件,用于构建Cython代码成为一个可被C++调用的扩展模块
1234567from setuptools import setupfrom Cython.Build import cythonizesetup( ext_modules=cythonize("example.pyx"),)
构建生成拓展模块
1python setup.py build_ext --inplace
此时会产生如下文件结构,example.cp39-win_amd64.pyd这将是被 ...
Tensorflow lite for microcontroller keil编译处理
在用keil编译Tensorflow lite for microcontroller时,遇到了一些寻找依赖库的问题,现记录。
123456789$ make -f tensorflow/lite/micro/tools/make/Makefile third_party_downloads$ ls tensorflow/lite/micro/tools/make/downloads/flatbuffers/gemmlowp/kissfft/person_model_grayscale/person_model_int8/pigweed/ruy/
通过上述命令下载第三方抵赖并添加到keil包含目录中。但并未下载gemmlowp库导致编译报错missing include fixedpoint.h。可以通过手动下载gemmlowp储存库添加到包含目录解决。
下载地址可以到E:\tflite-micro\tensorflow\lite\micro\tools\make\third_party_downloads.inc找到。
该封面图片由Tonda Tran在Pixabay上发布
FDTD笔记
FDTD
FDTD简介
时域有限差分方法基本方程
麦克斯韦方程组
本构关系
把电流密度写成导体电流密度和施加电流密度之和,同样对磁流密度也就行分解,重写麦克斯韦方程:
上面的方程仅设计电磁场和,而为涉及通量密度矢量和。公式中出现了四个本构关系参量,所以只能描述任意线性、各向同性的媒质。虽然FDTD公式中未出现散度方程,但是可以用来检测仿真结果。
在三维空间中把方程分解为3个标量方程。得到:
导数的近似差分
前向差分公式
后向差分公式
中心差分公式
其中前向差分和后向差分公式具有一阶精度,但是中心差分公式具有二阶精度。
二阶导数的近似差分
中心差分公式
三维问题的FDTD更新方程
FDTD 技术将三维问题的几何结构分解为单元,以构成相应的网格。下图示出由()个Yee 单元构成的网格。使用矩形 Yee 单元,以单元的大小作为分辨率,用阶跃或阶梯形式来近似表面和内部几何结构。
下图示出了标志为的 Yee 单元方式中离散空间各场分量位置。电场分量放置在 Yee 单元各棱的中间,平行于各;磁场分量放置在 Yee 单元各面的中心,平行于各面的法线。
令Yee单元的尺寸分别为,,,可 ...
外网远程唤醒Windows--群晖
电脑平时虽然不关机,但有时候会因为一些原因关机了,之前设置了来电自启。但是短时间断电或者其他原因造成的关机并不会自动唤醒,故而打算通过群晖实现远程Wake-on-LAN。
准备
一、一台群晖
二、本文的步骤会很详细,但是仍然假设你有一定Windows和Linux使用经验。
BIOS开启WOL
具体操作根据主板厂商操作不同,可自行百度。
Windows设置
右击Windows徽标找到设备管理器
找到网络适配器,双击网卡-->电源管理-->打开图中设置
到这里,Windows的设置基本完成,有的还需要到电源计划里开启快速启动。
群晖通过docker部署WOL
群晖使用docker
1.打开群晖套件中心搜索下载图中软件(docker)。
注册表搜索下载wol,这里我用的jazzdd/wol。
下载好后直接到映像运行。
这里注意不要勾选启用自动重新启动
这里需要设置两个东西,一个是环境里的mac地址,一个是网络使用host网络(忘记标注了图片)
max地址直接打开cmd输入命令ipconfig /all就能看到,但是注意网卡,不要选到虚拟机什么的。
之后直接一直完成 ...
转发Windows远程桌面远程连接--群晖
由于教研室路由器烧了,用了老路由器,并不支持ipv6,但是想实现Windows远程桌面访问,想到还有一台群晖,故用dockers来部署frp实现。
准备
一、三台设备
设备 A, Windows, 为你用来远程连接的电脑。
设备 B, Linux, 有公网 IP,我这里用的是白群晖。
设备 C, Windows, 被远程连接的电脑。
如果不满足第二个条件,那么,拜拜~~
二、本文的步骤会很详细,但是仍然假设你有一定Windows和Linux使用经验。 FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,用于帮助用户快速地将本地服务暴露给互联网或其他网络。它主要用于内网穿透,允许从公网安全访问处于NAT或防火墙后的内网服务。FRP特别适合于个人或小型企业在没有公网IP或者无法进行复杂路由器配置的情况下,实现远程访问内网资源。
FRP的主要组件:
frps(Server端):部署在具有公网IP的服务器上,作为转发的中转。
frpc(Client端):部署在内网的机器上,用于连接frps,并将内网服务通过frps转发出去。
应该重点理解frpc和frps的作用, ...