Linux 大文件管理与 Hugging Face 模型下载实践:解决磁盘空间与大文件传输的全攻略20241226

news2025/2/12 23:19:45

Linux 大文件管理与 Hugging Face 模型下载实践:解决磁盘空间与大文件传输的全攻略

引言

在 Linux 系统中管理大文件是一项常见但不容忽视的任务,尤其是在处理复杂场景时,比如磁盘空间不足、断点续传下载模型文件、管理日志文件等。通过实际操作和优化工具组合,我们可以在保证效率的同时避免系统资源浪费。本文将分享从大文件定位到 Hugging Face 模型文件断点续传,以及日志文件高效清理的完整实践。

在这里插入图片描述

核心观点

  1. 高效管理大文件:
    • 通过 du 和 find 快速定位大文件。
    • 使用 truncate 清理日志内容,同时保持服务稳定。
  2. 优化文件传输与下载:
    • 采用 aria2c 实现 Hugging Face 大文件的断点续传。
    • 结合 scp 和 rsync,解决因磁盘不足导致的文件传输问题。
  3. 系统资源利用最大化:
    • 灵活使用日志切割工具(如 logrotate)防止日志文件过大。
    • 通过扩展磁盘空间和启用 Swap 应对内存不足问题。

1. Linux 大文件管理:快速定位与清理

1.1 大文件定位

当磁盘空间不足时,快速找出占用资源的文件至关重要。以下工具和命令可快速完成定位:

  • 按目录大小排序:
du -sh /path/to/directory/* | sort -h
  • 寻找大于指定大小的文件:
find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'

1.2 大文件清理

对于不便删除的大文件(如日志文件),可以使用 truncate 清空内容,而不影响服务运行:

truncate -s 0 /path/to/large-file.log

2. Hugging Face 模型文件下载:多线程与断点续传

2.1 为什么选择 aria2c

Hugging Face 的大模型文件(如 model.safetensors)通常需要较长时间下载,aria2c 支持多线程和断点续传,非常适合这类场景。

2.2 使用 aria2c 下载 Hugging Face 模型

linux centos安装 aria2

sudo yum install aria2 -y

以下是标准下载命令的模板:

aria2c -x 16 -s 16 -k 1M \
  -o model.safetensors \
  -d /path/to/destination \
  --header "Authorization: Bearer $HF_TOKEN" \
  "https://huggingface.co/模型路径"

参数详解:

  • -x 16:设置最多 16 个并发连接。
  • -s 16:设置最多 16 个分段。
  • -k 1M:每个分段的大小为 1MB。
  • -o model.safetensors:指定保存的文件名。
  • -d /path/to/destination:指定下载目标目录。
  • –header “Authorization: Bearer $HF_TOKEN”:添加授权信息,用于访问私有或受限资源。
  • “https://huggingface.co/模型路径”:替换为实际的 Hugging Face 文件链接。

封装为 Shell 脚本

#!/bin/bash

# 参数检查
if [ "$#" -ne 3 ]; then
  echo "用法: $0 <模型下载链接> <文件名> <目标目录>"
  echo "示例: $0 https://huggingface.co/your-model-path model.safetensors /path/to/destination"
  exit 1
fi

# 参数变量
MODEL_URL=$1           # 模型下载链接
OUTPUT_FILE=$2         # 文件名
DESTINATION_DIR=$3     # 目标目录

# Hugging Face API Token (在环境变量中设置,或直接修改为固定值)
HF_TOKEN=${HF_TOKEN:-"your_huggingface_token"}

# 确保目标目录存在
mkdir -p "$DESTINATION_DIR"

# 下载模型文件
aria2c -x 16 -s 16 -k 1M \
  -o "$OUTPUT_FILE" \
  -d "$DESTINATION_DIR" \
  --header "Authorization: Bearer $HF_TOKEN" \
  "$MODEL_URL"

# 检查下载结果
if [ $? -eq 0 ]; then
  echo "模型下载成功: $DESTINATION_DIR/$OUTPUT_FILE"
else
  echo "模型下载失败,请检查网络或参数!"
fi

设置 Hugging Face Token

export HF_TOKEN=your_huggingface_api_token

2.3 下载失败的续传download_model.sh

如果下载过程中断,只需重新运行同一命令即可完成续传。

3. 磁盘不足时的文件名处理

当磁盘空间不足时,通过 scp 或 ftp 可能会出现仅传输文件名但大小为 0 的问题。以下是有效解决方案:

3.1 临时转移路径

将文件传输到其他分区(如 /tmp):

scp source_file user@target:/tmp/
mv /tmp/source_file /home/user/

3.2 批量记录文件名

若仅需保存文件名而非内容:

ls > file_list.txt
scp file_list.txt user@target:/path/

3.3 清理无用文件

查找并删除大小为 0 的文件:

find /path/to/files -type f -size 0 -exec rm -f {} \;

4. 日志文件切割与自动清理

4.1 使用 logrotate 管理日志

logrotate 是 Linux 系统中管理日志的最佳工具。以下是 catalina.out 的示例配置:

/path/to/catalina.out {
    daily
    rotate 7
    compress
    copytruncate
    missingok
    notifempty
}

运行以下命令立即切割日志:

logrotate -f /etc/logrotate.d/catalina

5. 综合解决方案

通过以下工具的组合,可以高效解决各种大文件与下载问题:

工具/方法用途命令示例
du 和 find快速定位大文件du -sh *find / -type f -size +100M
truncate清空日志文件内容truncate -s 0 /path/to/log.log
aria2c下载 Hugging Face 模型文件见 2.2 部分
scp 和 rsync文件传输与断点续传scp source targetrsync --partial
logrotate自动切割日志文件见 4.1 部分

结论

大文件管理和下载优化不仅关乎资源利用效率,更是系统稳定运行的重要保障。通过合理使用工具如 aria2c、truncate 和 logrotate,我们不仅可以有效解决磁盘空间不足和下载中断问题,还能提升系统运维效率,为复杂场景提供稳定支持。

附录:参考命令清单

# 定位大文件
du -sh /path/to/directory/* | sort -h
find / -type f -size +100M -exec ls -lh {} \;

# 清空日志文件
truncate -s 0 /path/to/large-file.log

# 下载 Hugging Face 模型文件
aria2c -x 16 -s 16 -k 1M --header "Authorization: Bearer $HF_TOKEN" "下载链接"

# 切割日志文件
logrotate -f /etc/logrotate.d/catalina

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

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

相关文章

TOGAF之架构标准规范-业务架构

TOGAF标准规范中&#xff0c;业务架构阶段的主要工作是开发支持架构愿景的业务架构。 如上所示&#xff0c;业务架构&#xff08;Business Architecture&#xff09;在TOGAF标准规范中处于B阶段&#xff0c;该阶段的主要内容包括阶段目标、阶段输入、流程步骤、架构方法。 阶段…

aPaaS是什么?有何特点?以及aPaaS核心优势有哪些?

​aPaaS是什么&#xff1f; aPaaS&#xff0c;Application Platform as aService&#xff0c;应用程序平台即服务。国际知名咨询机构 Gartner 对aPaaS所下的定义是&#xff1a;“这是基于PaaS(平台即服务)的一种解决方案&#xff0c;支持应用程序在云端的开发、部署和运行&…

【网络分析工具】WireShark的使用(超详细)

网络分析工具——WireShark的使用 简介WireShark软件安装Wireshark 开始抓包示例WireShark抓包界面WireShark 主要分为这几个界面TCP包的具体内容Wireshark过滤器设置wireshark过滤器表达式的规则Wireshark抓包分析TCP三次握手Wireshark分析常用操作 简介 WireShark是非常流…

前端js验证码插件

相关代码,在最上方的绑定资源

URDF文件中inertial数据的描述坐标系说明

这件事的来源是这样的&#xff1a;结构手动把连杆坐标系下描述的惯性张量数据写入了urdf中&#xff0c;给我到以后发现有问题&#xff0c;给我搞懵了&#xff0c;以为我错了这么多年&#xff0c;于是有了本次的深度调研&#xff0c;先上结论&#xff0c;感兴趣的可以参考后文。…

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中&#xff0c;如果说有什么领域能够逆势而上&#xff0c;宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时&#xff0c;宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员&#xff0c;更是情感的寄托和生活的调剂。然而&#xff0c;随着行业…

Web前端基础知识(三)

表单的应用非常丰富&#xff0c;可以说&#xff0c;每个网站都会用到表单。下面首先介绍表单中的form标签。 --------------------------------------------------------------------------------------------------------------------------------- <form></form&g…

学习C++:程序的注释

一&#xff0c;注释 作用&#xff1a;在代码种加一些说明和解释&#xff0c;方便自己或其他程序员阅读代码 1&#xff0c;单行注释&#xff1a;// 描述信息 通常放在一行代码的上方&#xff0c;或者一条语句的末尾&#xff0c;对该行代码说明。 2&#xff0c;多行注释&#x…

LAION-SG:一个大规模、高质量的场景图结构注释数据集,为图像-文本模型训练带来了革命性的进步。

2024-12-03&#xff0c;由浙江大学、江南大学、北京大学、阿里巴巴集团和蚂蚁集团联合创建的LAION-SG数据集&#xff0c;通过提供高质量的场景图&#xff08;SG&#xff09;结构注释&#xff0c;显著提升了复杂场景图像生成的性能&#xff0c;为图像-文本模型训练带来了革命性的…

低压降稳压器(LDO)典型特性压降

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、什么是压降 压降电压 VDO 是指为实现正常稳压&#xff0c;输入电压 VIN 必须高出所需输出电压 VOUT(nom) 的最小压差。请…

01 - 初识 Spring

初识Spring 企业级应用 企业级应用是指那些为商业组织、⼤型企业而创建并部署的解决⽅案及应用。这些⼤型的企业级应用结构复 杂、涉及的外部资源众多&#xff0c;事务密集&#xff0c;数据规模⼤&#xff0c;用户数量多&#xff0c;有较强的安全性考虑和较⾼的性能要求。 …

NLP 中文拼写检测纠正论文-04-Learning from the Dictionary

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法&#xff0c;如果提升 100W 倍的性能&#xff1f; NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正&#xff1f;可我只会写 CRUD 啊&#xff01; 一个提升英文单词拼…

【CSS in Depth 2 精译_091】15.4:让 CSS 高度值过渡到自动高度 + 15.5:自定义属性的过渡设置(全新)+ 15.6:本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 15 章 过渡】 ✔️ 15.1 状态间的由此及彼15.2 定时函数 15.2.1 定制贝塞尔曲线15.2.2 阶跃 15.3 非动画属性 15.3.1 不可添加动画效果的属性15.3.2 淡入与淡出 15.4 过…

PMP项目管理考试模拟真题及答案(中文版)

1、赶工一个任务时&#xff0c;你应该关注: A 尽可能多的任务。 B 非关键任务。 C 加速执行关键路径上的任务。 D通过成本最低化加速执行任务。 正确答案:C 2、“在对软件编码前我不能进行软件测试。”这句话说明了哪种依赖关系? A 随意的 B软逻辑关系 C 优先 D 强制…

CentOS7下的vsftpd服务器和客户端

目录 1、安装vsftpd服务器和ftp客户端&#xff1b; 2、配置vsftpd服务器&#xff0c;允许普通用户登录、下载、上传文件&#xff1b; 3、配置vsftpd服务器&#xff0c;允许anonymous用户登录、下载、上传文件&#xff1b; 4、配置vsftpd服务器&#xff0c;允许root用户登录…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——12使用YOLO-Bin

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——12使用YOLO-Bin ​ 根据前面内容&#xff0c;所有的子任务已经基本结束&#xff0c;接下来就是调用转化的bin模型进行最后的逻辑控制了 1 .YOLO的bin使用 ​ 对于yolo其实有个简单的办法&#xff0c;也…

109.【C语言】数据结构之求二叉树的高度

目录 1.知识回顾&#xff1a;高度&#xff08;也称深度&#xff09; 2.分析 设计代码框架 返回左右子树高度较大的那个的写法一:if语句 返回左右子树高度较大的那个的写法二:三目操作符 3.代码 4.反思 问题 出问题的代码 改进后的代码 执行结果 1.知识回顾&#xf…

STM32学习(一)

STM32是什么 STM32是意法半导体&#xff08;ST&#xff09;公司基于ARM Cortex-M内核开发的32位微控制器‌。他的名字是由&#xff1b;意大利SGS&法国Thomson共同研制的&#xff0c;中国人民取两家公司名称的首字母于是ST就是这样来的&#xff0c;M是单片机M-Micro Contro…

Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit

可以搭建属于公司内部或者个人的Git服务器&#xff0c;方便程序代码及文档版本管理。 官网&#xff1a;http://www.gitblit.com/ Windows环境下安装 提前已经安装好了JDK。 官网下载Windows版的GitBlit。 将zip包解压到自己想要放置的文件夹下。 建立版本库路径&#xff0c…

音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现

一、引言 通过FFmpeg命令可以获取到TS文件/TS流的音频压缩编码格式、音频压缩编码格式的profile、音频采样率、通道数、音频码率信息&#xff1a; ./ffmpeg -i XXX.ts 本文以音频为AAC为例讲述FFmpeg到底是从哪个地方获取到这些音频信息的。 二、音频压缩编码格式 FFmpeg获取…