首页
关于
文章打赏记录
Search
1
项目一:Revit电缆自动布置
54 阅读
2
如何使用 LoRA 微调 DeepSeek R1
13 阅读
3
revit二次开发入门
10 阅读
4
Dynamo 连缀属性
5 阅读
5
第十四章结课考试
4 阅读
linux
AI
Dynamo
Python
C#编程技术基础
C#实战项目
随笔
登录
Search
标签搜索
CSharp
基础知识
Dynamo
数据应用
AI
BIM管理
TomHanck4
累计撰写
41
篇文章
累计收到
6
条评论
首页
栏目
linux
AI
Dynamo
Python
C#编程技术基础
C#实战项目
随笔
页面
关于
文章打赏记录
搜索到
12
篇与
的结果
2026-05-08
Ubuntu 系统定期备份说明(Timeshift)
Ubuntu 系统定期备份说明(Timeshift)本文档说明本机已配置的 Timeshift 备份方式:备份盘、自动任务、常用命令与恢复流程。 实际策略以系统内配置为准,修改后请同步更新本文或自行对照:主配置:/etc/timeshift/timeshift.json定时任务:/etc/cron.d/timeshift-hourly(Timeshift 通过 hourly cron 触发日/周/月计划)1. 备份盘与挂载项目说明分区/dev/sda1文件系统ext4(卷标 backup)UUID55de1be9-56b2-4a13-90da-aea09e3d2884挂载点/mnt/backup开机自动挂载已在 /etc/fstab 中配置,nofail 表示磁盘未接时仍可正常启动检查挂载与空间:df -h /mnt/backup lsblk -f /dev/sda12. 备份内容与模式项目说明工具Timeshift模式RSYNC(增量 + 硬链接,需 ext4/btrfs 等支持硬链接的文件系统)典型范围根分区 / 及配置中纳入的主目录内容(具体见下节「排除规则」)注意: NTFS 不适合作为 Timeshift 的 RSYNC 目标盘(硬链接行为不符合预期),本机备份盘已格式化为 ext4。3. 计划与保留策略当前 timeshift.json 中的计划与保留(若你改过,以文件为准):每日:启用,保留约 5 个每周:启用,保留约 3 个每月:启用,保留约 2 个每小时 / 开机备份:未启用Timeshift 会按策略自动删除超出数量的旧快照。4. 排除规则(重要)排除列表在 /etc/timeshift/timeshift.json 的 exclude 字段。 常见项包括(示例,以你机器上实际内容为准):用户缓存:/home/*/.cache/**回收站:/home/*/.local/share/Trash/**部分浏览器缓存、Snap 缓存/var/cache/apt/archives/**、/var/log/**.gz 等务必打开 timeshift.json 核对: 若存在整段类似 /home/你的用户名/** 的排除,则该用户主目录不会被完整备份。需要「系统 + 个人数据」时,应去掉这类整目录排除,仅保留缓存等子路径排除。5. 常用命令均需 root(sudo)。# 列出所有快照 sudo timeshift --list # 立即创建快照(建议大改系统/升级内核前执行) sudo timeshift --create --comments "升级内核前" # 按名称删除某一快照(名称来自 --list) sudo timeshift --delete --snapshot '2026-05-08_11-12-29' # 删除全部快照(慎用) sudo timeshift --delete-all图形界面(本机有桌面时):sudo timeshift-gtk6. 恢复6.1 系统仍能正常启动sudo timeshift --list sudo timeshift --restore --snapshot '快照目录名'按提示选择要还原的目标分区(通常为 / 与 /home,以界面/命令行说明为准)。恢复前建议再保留一份当前重要数据。6.2 无法进入系统(建议用 Ubuntu Live USB)用 Ubuntu 安装 U 盘 选「试用 Ubuntu」进入 Live 环境。安装 Timeshift:sudo apt update && sudo apt install -y timeshift挂载备份盘: sudo mkdir -p /mnt/backup && sudo mount /dev/sda1 /mnt/backup打开 Timeshift,将快照位置指向该挂载点,选中快照执行恢复。 或在 Live 下使用 timeshift --restore(需先正确识别根分区与备份盘)。7. 维护建议定期查看磁盘空间:df -h /mnt/backup大版本升级或换硬件后:手动做一次快照并确认列表里时间正确。备份盘物理安全:拔掉或离线时,fstab 的 nofail 可避免启动失败,但也就没有自动备份直到重新连接。仅靠本机一块盘不够防火灾/偷盗:极其重要的数据建议再复制到 NAS 或云端(可另配 rclone、restic 等,不在本文范围)。8. 配置与日志位置速查路径说明/etc/timeshift/timeshift.json计划、备份盘 UUID、排除列表/etc/cron.d/timeshift-hourly定时入口/mnt/backup/timeshift/snapshots/快照数据目录(实际以 Timeshift 挂载路径为准)文档生成于本机 Timeshift 部署说明,修改系统备份策略后请更新本文相应章节。
2026年05月08日
0 阅读
0 评论
0 点赞
2026-02-26
如何在 Linux 中设置 SSH 免密码登录
第一步:在A中生成密钥在A进入~/.ssh文件夹,执行以下命令:ssh-keygen -t rsa一路回车后,在~/.ssh下会生成 id_rsa,和 id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。第二步:把在 A 机生成的 id_rsa.pub 拷贝到 B 机上。怎么跨主机复制文件呢,下面的命令可以做到:(假设放在 B 的 tmp 目录中)scp id_rsa.pub root@B:/tmp //scp -r是拷贝文件夹 # 举个例子:将服务器的/www/api/ 复制到本地的~/www(在本地执行) scp -r root@101.200.52.143:/www/api/ ~/www 第三步:将刚才拷贝的 id_rsa.pub 公钥文件拷贝到 B 的 authorized_keys 目录中(没有就创建,注意权限不能是777,可以设置成700或者400):cd ~/.ssh cat /tmp/id_rsa.pub>>authorized_keys
2026年02月26日
1 阅读
0 评论
0 点赞
2026-02-24
vLLM双卡配置说明
双卡配置说明(3080 Ti 20G + 1070 8G)重要结论vLLM 不支持 GTX 1070:需要 Compute Capability 7.0+,1070 为 6.1,无法用 vLLM 跑推理或放 KV cache。推荐用法:仅用 3080 Ti 跑 vLLM,通过 CUDA_VISIBLE_DEVICES=0 指定(假设 3080 Ti 为 0 号卡)。1070:可留给 Ollama / 其他支持老显卡的推理、或桌面/显示用;当前方案下不参与 vLLM。指定使用 3080 Ti先确认哪张是 3080 Ti(通常 20G 的那张):nvidia-smi --query-gpu=index,name,memory.total --format=csv假设 3080 Ti 是 0,则所有 vLLM 命令前加:export CUDA_VISIBLE_DEVICES=0 # 然后正常启动 vllm serve ...或在 Python 里(在 import vllm 之前):import os os.environ["CUDA_VISIBLE_DEVICES"] = "0"16G 内存注意vLLM 主要吃 显存,16G 系统内存一般够用。避免同时开太多占内存的应用(浏览器、多个大模型服务等),否则易 OOM 或卡顿。推荐本地 Agent 模型(20G 显存)模型显存约说明Qwen2.5-7B-Instruct~16GB FP16通用、工具调用/agent 支持好Qwen2.5-14B-Instruct~28GB FP16 → ~18GB 量化能力更强,需 AWQ/GPTQ 等 4bitDeepSeek-R1-7B~16GB推理/思考链、agent 向Qwen2.5-1.5B/3B-Instruct很低轻量 agent/路由建议:主 agent 用 Qwen2.5-7B-Instruct 或 DeepSeek-R1-7B,20G 可轻松跑;若上 14B,需量化(如 TheBloke/Qwen2.5-14B-Instruct-AWQ)。再「挂一个 DeepSeek」若指再跑一个 DeepSeek(如 R1/CoT 等):同卡 3080 Ti:两个模型不能同时加载进 20G,可起两个 vLLM 服务不同端口、按需启停,或一个 vLLM + 一个用 API 调远程。1070:不能用 vLLM;可用 Ollama 在 1070 上跑小模型(如 qwen2.5:3b),与 3080 Ti 上的 vLLM 分工。一键只让 vLLM 用 3080 Ti 的示例# 仅用 0 号卡(请按 nvidia-smi 确认 3080 Ti 的 index) export CUDA_VISIBLE_DEVICES=0 source /home/fsy/Desktop/VLLM/.venv/bin/activate vllm serve Qwen/Qwen2.5-7B-Instruct --trust-remote-code --port 8000#!/usr/bin/env python3 """vLLM 本地离线推理示例。首次运行会从 HuggingFace 拉取模型。""" # 仅用 3080 Ti 时,在 import vllm 前设置(或在终端 export CUDA_VISIBLE_DEVICES=0) # import os; os.environ["CUDA_VISIBLE_DEVICES"] = "0" from vllm import LLM from vllm.sampling_params import SamplingParams # Agent 推荐(20G):Qwen/Qwen2.5-7B-Instruct、deepseek-ai/DeepSeek-R1-7B # 14B 需量化:如 TheBloke/Qwen2.5-14B-Instruct-AWQ MODEL = "Qwen/Qwen2.5-7B-Instruct" def main(): # 初始化引擎(首次会加载模型到 GPU) llm = LLM(model=MODEL, trust_remote_code=True) sampling_params = SamplingParams(temperature=0.7, max_tokens=256) prompts = ["你好,请用一句话介绍你自己。", "1+1=?"] outputs = llm.generate(prompts, sampling_params) for out in outputs: print("输入:", out.prompt) print("输出:", out.outputs[0].text) print("-" * 40) if __name__ == "__main__": main()#!/bin/bash # 仅用 3080 Ti(0 号卡)启动 vLLM,供 agent 使用 # 先运行: nvidia-smi 确认 3080 Ti 是 0 还是 1,再改下面 CUDA_VISIBLE_DEVICES export CUDA_VISIBLE_DEVICES=0 cd /home/fsy/Desktop/VLLM source .venv/bin/activate # 主 agent 模型:Qwen2.5-7B(可换成 DeepSeek-R1-7B 等) MODEL="${VLLM_MODEL:-Qwen/Qwen2.5-7B-Instruct}" PORT="${VLLM_PORT:-8000}" echo "Using GPU 0 only (3080 Ti). Model: $MODEL, port: $PORT" exec vllm serve "$MODEL" --trust-remote-code --port "$PORT" "$@"# 建议环境变量(GLM-4.7-Flash MoE 相关) export VLLM_USE_DEEP_GEMM=0 export VLLM_USE_FLASHINFER_MOE_FP16=1 export VLLM_USE_FLASHINFER_SAMPLER=0 export OMP_NUM_THREADS=4‵‵‵bash从 ModelScope 或 Hugging Face 下载到本地后,指向该路径vllm serve /path/to/cyankiwi/GLM-4.7-Flash-AWQ-4bit \ --max-model-len 65536 \ --gpu-memory-utilization 0.9 \ --tool-call-parser glm47 \ --reasoning-parser glm45 \ --trust-remote-code \ --host 0.0.0.0 \ --port 8000
2026年02月24日
1 阅读
0 评论
0 点赞
2026-02-24
GLM-4.7 部署 + llama.cpp 双卡
GLM-4.7 部署 + llama.cpp 双卡(3080 Ti 推理 / 1070 cache)一、GLM-4.7 有没有能部署的版本?有。GLM-4.7-Flash 已开源,适合本地部署:架构:30B MoE,约 3B 活跃参数,推理显存约等于 3B 级显存:4-bit 量化约 16–18GB,3080 Ti 20G 足够能力:200K 上下文、工具调用、思考链,适合 agent获取 GGUF(给 llama.cpp 用):lmstudio-community/GLM-4.7-Flash-GGUF:Q4_K_M / Q6_K / Q8_0bartowski/zai-org_GLM-4.7-Flash-GGUF:更多量化(Q2_K~Q8_0、IQ 系列等)推荐 20G 显存用 Q4_K_M 或 Q5_K_M。二、用 llama.cpp 实现「3080 Ti 推理 + 1070 做 cache」llama.cpp 支持多卡时:-ts / --tensor-split:按比例把模型层分到多张卡(如 -ts 1,0 = 全部在 GPU0)--main-gpu / -mg:指定哪张卡放 KV cache 和小张量(中间结果)因此可以:模型权重全部放在 3080 Ti(推理算力在这张卡)KV cache 和小张量放在 1070(--main-gpu 指向 1070)前提:3080 Ti 建议为 GPU 0,1070 为 GPU 1(用 nvidia-smi 看顺序,必要时在 BIOS/系统里调)。下面按 0=3080Ti、1=1070 写。1. llama.cpp 编译(CUDA)克隆与基础编译:git clone https://github.com/ggml-org/llama.cpp cd llama.cpp mkdir build && cd build cmake .. -DGGML_CUDA=ON cmake --build . --config Release -j可执行文件在 build/bin/,例如 llama-cli、server。若编译时出现 nvcc: Terminated / Compilation terminated,多为内存不足,改用少并行数:cmake --build . --config Release -j2 # 或 -j1若 CMake 报 CUDA Toolkit not found / Could not find nvcc,按下面处理。1.1 确认本机是否有 nvccwhich nvcc # 或 ls /usr/local/cuda*/bin/nvcc 2>/dev/null || ls /usr/bin/nvcc 2>/dev/null有输出则记下该路径的上一级目录(如 /usr/local/cuda 或 /usr/local/cuda-12.6),用作下面的 CUDAToolkit_ROOT。1.2 有 nvcc:指定 CUDAToolkit_ROOT 再配置cd ~/Desktop/llama.cpp/build rm -rf * # 把 /usr/local/cuda 换成你本机 CUDA 实际路径 cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda cmake --build . --config Release -j2若 CUDA 在其它路径,例如 /usr/local/cuda-12.6:cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda-12.61.3 没有 nvcc:安装 CUDA Toolkit# 先看驱动支持的 CUDA 版本 nvidia-smi # 右上角 "CUDA Version: 12.x" 表示驱动支持到该版本 # Ubuntu 安装 CUDA 12(按你系统选对应 repo) wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6装好后可设置环境变量(可写入 ~/.bashrc):export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH再回到 llama.cpp/build 执行:cd ~/Desktop/llama.cpp/build rm -rf * cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda cmake --build . --config Release -j21.4 使用 conda 里的 CUDA若 nvcc 来自 conda 环境:which nvcc # 若类似 /home/xxx/miniconda3/bin/nvcc,则 CUDAToolkit_ROOT 设为上一级 cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/home/xxx/miniconda32. 双卡启动(3080 Ti 推理,1070 做 cache)适用:GPU 0 = 20G 主卡(推理)、GPU 1 = 1070(8G,做 cache)。用 nvidia-smi 确认顺序。内容放在哪张卡参数模型权重GPU 0(3080 Ti)-ts 1,0(1 份在 0,0 份在 1)KV cache / 小张量GPU 1(1070)--main-gpu 1命令行示例(按本机路径改 -m、-c):# 交互 ./llama-cli -m /path/to/GLM-4.7-Flash-xxx-Q4_K_M.gguf \ -ts 1,0 \ --main-gpu 1 \ -c 8192 \ -p "你好"Server 模式(OpenAI 兼容 API):./server -m /path/to/GLM-4.7-Flash-xxx-Q4_K_M.gguf \ -ts 1,0 \ --main-gpu 1 \ -c 8192 \ --host 0.0.0.0 \ --port 8080-ts 1,0:模型全在 GPU 0,GPU 1 不占权重--main-gpu 1:KV cache 和临时缓冲在 GPU 1(1070)-c 8192:上下文长度,显存够可改为 32768 等结果:3080 Ti 负责算力,1070 负责 cache,适合 20G+8G 双卡。3. 若 1070 是 0 号、3080 Ti 是 1 号把「推理」放在 3080 Ti 上更合理,则:用环境变量把「逻辑 GPU 0」映射到物理 3080 Ti,例如先只暴露 3080 Ti:CUDA_VISIBLE_DEVICES=1 ./server -m model.gguf ...这样只用到 3080 Ti,1070 不参与。若坚持双卡且 1070=0、3080Ti=1,则:模型放 3080 Ti:-ts 0,1(0 份在 0,1 份在 1)cache 放 1070:--main-gpu 04. 1070 与 llama.cppllama.cpp 对老显卡(如 1070,Compute 6.1)的支持比 vLLM 宽松,一般可以跑;若遇到不兼容再考虑只用 3080 Ti(CUDA_VISIBLE_DEVICES=0 或 1 单卡)。三、GLM-4.7-Flash 快速用上(单卡 3080 Ti)若先不折腾双卡,只验证 GLM-4.7 + 3080 Ti:下载 GGUF(任选其一)lmstudio-community/GLM-4.7-Flash-GGUFbartowski/zai-org_GLM-4.7-Flash-GGUF单卡运行(仅 3080 Ti,假设为 0 号卡)CUDA_VISIBLE_DEVICES=0 ./server -m GLM-4.7-Flash-xxx-Q4_K_M.gguf -c 8192 --port 8080用 vLLM 跑 GLM-4.7-Flash 若你更习惯 vLLM,也可用 vLLM 加载 HF 格式的 zai-org/GLM-4.7-Flash(需 20G 左右显存,3080 Ti 单卡可行),但此时无法把 1070 当 cache 用(vLLM 不支持 1070)。四、小结需求方案部署 GLM-4.7用 GLM-4.7-Flash 的 GGUF(Q4_K_M 约 16–18GB)3080 Ti 推理 + 1070 做 cache用 llama.cpp:-ts 1,0 + --main-gpu 1(0=3080Ti,1=1070)仅 3080 Ti、最简单vLLM 或 llama.cpp 单卡均可;GGUF 用 llama.cpp,HF 用 vLLM把上面命令里的 -m、-c、端口和 GPU 顺序按你本机改一下即可直接用。
2026年02月24日
1 阅读
0 评论
0 点赞
2026-02-24
通过 frp + SSH 远程操作本系统
通过 frp + SSH 远程操作本系统1. 前置本机已安装 frp 客户端 frpc,且服务端 vc.fangsiyuan.top:10070 已部署 frps 并允许你的 token。本机 SSH 服务 已安装并监听 22 端口(sudo systemctl status ssh)。2. 配置文件客户端配置:frp/frpc.toml(放在 frp 客户端目录中)当前包含:ssh — TCP 代理,服务端端口 10022 → 本机 127.0.0.1:22若本机 SSH 不在本机 22,或 NAS 的 IP/端口不同,在 frpc.toml 里改对应 localIP/localPort。3. 启动 frp 客户端# 前台运行(调试用) frpc -c /usr/local/bin/frpc.toml建议用 systemd 常驻(见下节)。4. 远程 SSH 连接frpc 正常连上服务端后,在任意一台能访问 vc.fangsiyuan.top 的电脑上执行:ssh -p 10022 你的本机用户名@vc.fangsiyuan.top例如本机用户名为 fsy:ssh -p 10022 fsy@vc.fangsiyuan.top即通过 frp 的 10022 端口连到本机 22,实现远程操作本系统。5. systemd 常驻(可选)若 frpc 安装在 PATH 中,可建服务:sudo tee /etc/systemd/system/frpc.service << 'EOF' [Unit] Description=frp client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frpc -c /usr/local/bin/frpc.toml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now frpc sudo systemctl status frpc若 frpc 不在 /usr/bin/frpc,把 ExecStart 里的路径改成 which frpc 的结果。6. 注意服务端需在 frps 中开放 10022(或你用的 remotePort),否则 SSH 隧道不通。token 和端口仅作示例,实际部署注意安全与权限。
2026年02月24日
2 阅读
0 评论
0 点赞
1
2
3