Linux 文件管理、传输与系统调优指南

news/2025/3/20 0:35:35/
1. tar 实用程序的作用与使用

作用
tar(Tape Archive)是一个用于将多个文件或目录打包成单一文件的工具。它本身不压缩文件,但可以与其他压缩工具结合使用,生成压缩归档文件。

核心功能

  • 归档:将多个文件合并为一个文件(如将日志目录打包为 logs.tar)。

  • 保留元数据:保持文件的权限、时间戳等信息。

  • 支持压缩:通过参数调用不同压缩算法(如 gzipbzip2xz)。

常用命令示例

# 打包文件(不压缩)  
tar -cvf archive.tar /path/to/directory  # 打包并压缩为 gzip 格式  
tar -czvf archive.tar.gz /path/to/directory  # 解包  
tar -xvf archive.tar  
tar -xzvf archive.tar.gz  # 解压 gzip 压缩包

2. 不同压缩方式的区别

gzipbzip2xz 的对比

压缩工具压缩速度压缩率适用场景文件扩展名
gzip一般日常快速压缩.tar.gz
bzip2较慢需要较小文件的压缩.tar.bz2
xz最慢最高极致压缩(如发布软件包).tar.xz

选择建议

  • 速度优先:使用 gzip(例如压缩临时文件)。

  • 压缩率优先:使用 xz(例如分发大型安装包)。

示例

# 使用 gzip 压缩  
tar -czvf project.tar.gz project/  # 使用 xz 压缩  
tar -cJvf project.tar.xz project/  

3. 独立压缩与解压命令

压缩命令

  • gzip:快速压缩,生成 .gz 文件。

    gzip file.txt          # 压缩为 file.txt.gz
  • bzip2:高压缩率,生成 .bz2 文件。

    bzip2 file.txt         # 压缩为 file.txt.bz2  
  • xz:最高压缩率,生成 .xz 文件。

    xz file.txt            # 压缩为 file.txt.xz  

解压命令

  • gunzip:解压 .gz 文件。

    gunzip file.txt.gz     # 解压为 file.txt  
  • bunzip2:解压 .bz2 文件。

    bunzip2 file.txt.bz2  
  • unxz:解压 .xz 文件。

    unxz file.txt.xz  

注意

  • 这些命令默认会删除原始文件,如需保留,需添加 -k 参数(如 gzip -k file.txt)。


4. 文件传输工具对比

SFTP(SSH File Transfer Protocol)

  • 特点:基于 SSH 加密,支持交互式操作(如上传、下载、删除、目录浏览)。

  • 适用场景:需要安全传输且需交互操作的场景。

  • 示例

    sftp user@server_ip  
    sftp> put local_file.txt      # 上传文件  
    sftp> get remote_file.txt     # 下载文件  
    sftp> ls                      # 列出远程目录  

SCP(Secure Copy Protocol)

  • 特点:基于 SSH 加密,命令简单,适合脚本中使用。

  • 适用场景:快速传输单个文件或目录。

  • 示例

    scp file.txt user@server_ip:/remote/path   # 上传  
    scp -r directory/ user@server_ip:/remote/  # 递归上传目录  
    scp user@server_ip:/remote/file.txt ./     # 下载  

Rsync

  • 特点:增量传输(仅同步变化部分),支持断点续传,保留文件属性。

  • 适用场景:定期备份或同步大量数据。

  • 示例

    rsync -avz /local/dir/ user@server_ip:/remote/dir  # 同步目录  
    rsync -avz --delete /source/ /backup/             # 同步并删除目标端多余文件  

5. 系统调优(Tuned)

调优配置集的两种应用方式

  1. 静态调优:直接应用预设配置(如 throughput-performance),配置后立即生效,不随系统负载变化。

  2. 动态调优:根据系统负载自动调整参数(如 balanced 模式),适用于负载波动较大的场景。

配置文件 /etc/tuned/tuned-main.conf

  • 关键参数

    dynamic_tuning=1      # 启用动态调优(1=启用,0=禁用)  
    update_interval=60    # 动态调优检测间隔(秒)  

配置集分类

  • 性能型

    • throughput-performance:最大化吞吐量(禁用节能,CPU 高性能模式)。

    • network-latency:优化网络延迟(调整内核网络参数)。

  • 节能型powersave(降低 CPU 频率,减少功耗)。

  • 虚拟机专用virtual-guest(优化虚拟化环境下的资源分配)。

配置集存储位置

  • 系统预设/usr/lib/tuned/

  • 用户自定义/etc/tuned/

创建自定义配置集

  1. 在 /etc/tuned/ 下新建目录(如 my-profile)。

  2. 创建 tuned.conf 文件,定义调优参数。

    [main]  
    include=throughput-performance  # 继承现有配置集  [sysctl]  
    vm.swappiness=10                # 自定义内核参数  

恢复调优设置

tuned-adm profile throughput-performance  # 重新应用配置集  
tuned-adm active                          # 查看当前生效的配置集  

6. 进程优先级(Nice值)

Nice值的作用

  • 定义:调整进程的 CPU 调度优先级,范围从 -20(最高优先级)到 19(最低优先级)。

  • 通俗理解:类似排队时的 VIP 通道,Nice 值越小,进程越容易获得 CPU 资源。

修改 Nice 值

  • 启动时设置

    nice -n -10 /path/to/command   # 以高优先级(-10)运行命令  
  • 修改运行中进程

    renice -n -5 -p 1234          # 将 PID 1234 的 Nice 值改为 -5  

查看 Nice 值

ps -eo pid,ni,comm        # 显示所有进程的 Nice 值  
top                       # 在 `NI` 列查看实时 Nice 值  

http://www.ppmy.cn/news/1580463.html

相关文章

Springboot中的@ConditionalOnBean注解:使用指南与最佳实践

在使用Spring Boot进行开发时,大家应该都听说过条件注解(Conditional Annotations)。其中的ConditionalOnBean注解就很有趣,它帮助开发者在特定条件下创建和注入Bean,让你的应用更加灵活。今天就来聊聊这个注解的使用场…

svn-1.7.22安装

下载svn包: Index of /dist/subversion 编译: 安装依赖库:yum install sqlite sqlite-devel 否则编译的时候不通过:报错:configure:error :subversion requires SQLite #cd subversion-1.7…

Python学习记录 20250318

函数进阶 1.作用域:全局变量、局部变量 全局变量 局部变量 关键字global可以将 局部变量声明为全局变量 2.匿名函数 匿名函数相较于普通函数我认为只是减少了代码量,关键词 lambda lambda结合if判断,其实用到了三目运算符(代码…

IOS兼容 - uniapp ios固定定位失效与刘海屏的坑

问题描述 uniapp 一套代码,打包之后安卓可以正常显示版本号,IOS不可以 错误现象:IOS只有滚动到屏幕底部才能看到版本号 原因分析: IOS设计更希望屏幕跟随着用户滚动而滚动,所以无法实现相对浏览器窗口的固定定位。 I…

VLLM专题(二十六)—使用 Docker

1. 使用 vLLM 的官方 Docker 镜像 vLLM 提供了一个官方 Docker 镜像用于部署。该镜像可用于运行与 OpenAI 兼容的服务器,并可在 Docker Hub 上获取,名称为 vllm/vllm-openai。 docker run --runtime nvidia --gpus all \-v ~/.cache/huggingface:/root/.cache/huggingface …

【Nexus】Maven 私服搭建以及上传自己的Jar包

Nexus 安装 docker run -d -uroot --name nexus3 --restartalways -p 8081:8081 -v /data/nexus-data/blobs:/nexus-data/blobs -v /etc/localtime:/etc/localtime sonatype/nexus3这里也提供一下docker-composer的方法 .env 文件 VERSIONlatest CONTAINER_NAMECONTAINER_N…

harmonyOS NEXT开发与前端开发深度对比分析

文章目录 1. 技术体系概览1.1 技术栈对比1.2 生态对比 2. 开发范式比较2.1 鸿蒙开发范式2.2 前端开发范式 3. 框架特性对比3.1 鸿蒙 Next 框架特性3.2 前端框架特性 4. 性能优化对比4.1 鸿蒙性能优化4.2 前端性能优化 5. 开发工具对比5.1 鸿蒙开发工具5.2 前端开发工具 6. 学习…

基于Python+SQLite实现(Web)验室设备管理系统

实验室设备管理系统 应用背景 为方便实验室进行设备管理,某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录,查看现有的所有设备, 增加设备等功能。 开发环境 Mac OSPyCharm IDEPython3Flask&#xff…