百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

必知必会!4大数据备份命令,解锁数据安全新姿势

nanshan 2025-03-26 14:39 16 浏览 0 评论

在数据管理中,数据备份是保障数据安全的关键操作,熟练掌握各类备份命令,能有效提升数据管理效率,确保数据安全。

下面为你详细介绍常用的备份命令及其丰富的应用场景。

一、cp:简单直接的复制备份

cp 即 copy ,是Linux系统基础的文件复制工具,常用于简单全量备份,可将单个文件或整个目录递归复制到指定位置。

1、复制单个文件

将 /home/user/file.txt 复制到 /backup 目录,命令如下:

cp /home/user/file.txt /backup

2、复制目录

把/home/user/data 目录备份到 /backup 目录下,命令为:

cp -r /home/user/data /backup

参数 -r 代表递归复制,能将源目录下所有文件、子目录及其内容完整复制到目标路径,操作简单,适用于对数据一致性要求不高、规模较小的数据备份任务。

3、保留文件属性

如需保留文件权限、所有者、时间戳等属性,可使用 -p 参数:

cp -rp /home/user/data /backup

4、强制覆盖

复制时若目标文件已存在,使用 -f 参数可强制覆盖:

cp -rf /home/user/data /backup

5、交互模式

以交互模式复制,在覆盖目标文件前提示用户确认,使用 -i 参数:

cp -ri /home/user/data /backup

二、rsync:强大高效的同步备份

rsync即remote sync ,功能强大,支持本地与远程主机间的数据同步备份,能增量备份,大幅提升备份效率。

1、本地增量备份

对 /data 目录进行增量备份到 /backup 目录,命令为:

rsync -avzu /data /backup

-a 是归档模式,可保留文件权限、时间戳等属性;

-v 用于显示详细同步过程;

-z 启用压缩传输,减少数据传输量;

-u 确保目标目录中已有且较新的文件不会被覆盖,只传输更新过的文件。

2、远程备份

把本地 /data 目录备份到远程服务器 192.168.1.100 的 /backup 目录,用户名为 backup_user ,命令如下:

rsync -avz /data backup_user@192.168.1.100:/backup

1)排除特定文件或目录

备份时若要排除某些文件或目录,比如排除 /data 目录下的 temp 子目录和所有 .log 文件,命令可写成:

rsync -avz --exclude='temp' --exclude='*.log' /data /backup

2)指定端口

当远程服务器的SSH端口不是默认的22时,可通过 --port 参数指定端口,如端口为2222:

rsync -avz --port=2222 /data backup_user@192.168.1.100:/backup

3)限速传输

为避免备份过程占用过多带宽影响其他业务,可使用 --bwlimit 参数限速,单位为KB/s ,如限速100KB/s:

rsync -avz --bwlimit=100 /data /backup

4)删除目标多余文件

使用--delete 参数,可使目标目录和源目录文件保持一致,删除目标目录中源目录没有的文件:

rsync -avz --delete /data /backup

3、部分同步

通过 --partial 参数支持断点续传,若传输中断,下次可接着上次的进度继续:

rsync -avz --partial /data /backup

三、tar:文件归档压缩备份

tar 即 tape archive ,主要用于将多个文件或目录打包成一个归档文件,常结合压缩选项减少存储空间占用,方便数据长期存储与传输。

1、使用gzip压缩

将 /home/user/documents 目录下的所有文件归档并使用gzip压缩成 documents.tar.gz ,命令如下:

tar -zcvf documents.tar.gz /home/user/documents

其中, -z 表示使用gzip压缩; -c 是创建新的归档文件; -v 显示详细的归档过程; -f 用于指定归档文件名。

使用bzip2压缩:若想使用bzip2获得更高的压缩比,可将 -z 参数替换为 -j :

tar -jcvf documents.tar.bz2 /home/user/documents

2、使用xz压缩

xz压缩算法能提供更高压缩率,使用 -J 参数启用:

tar -Jcvf documents.tar.xz /home/user/documents

3、解归档

当需要恢复数据时,使用以下命令:

tar -zxvf documents.tar.gz -C /restore_path

-x 代表解归档, -C 后接解归档的目标路径,能够精准还原数据。

4、查看归档内容

在不解压的情况下查看归档文件包含的内容,可使用 -t 参数:

tar -ztvf documents.tar.gz

5、追加文件到归档

使用 -r 参数可以将新文件追加到已有的归档文件中,如将 new_file.txt 追加到 documents.tar.gz:

tar -zrf documents.tar.gz new_file.txt

四、dd:底层数据复制备份

dd 命令较为底层,常用于对磁盘、分区等进行精确复制,在系统备份、数据迁移等场景发挥重要作用。

1、备份磁盘

将整个硬盘 /dev/sda 备份成镜像文件 /backup/sda.img ,命令如下:

dd if=/dev/sda of=/backup/sda.img

if (input file)指定输入文件,即源设备; of (output file)指定输出文件,也就是备份的目标位置。

2、备份分区

若只想备份 /dev/sda1 分区,命令为:

dd if=/dev/sda1 of=/backup/sda1.img

1)指定块大小

通过 bs 参数可以指定每次读写的数据块大小,比如设置为4MB(4096KB)以提高备份速度:

dd if=/dev/sda of=/backup/sda.img bs=4M

2)显示进度

默认 dd 命令不显示复制进度,可通过安装 progress 工具并配合使用查看进度:

dd if=/dev/sda of=/backup/sda.img bs=4M | progress

在MacOS系统下,可以使用 gdd (GNU版本的 dd )并加上 --progress 参数来显示进度:

gdd if=/dev/sda of=/backup/sda.img bs=4M --progress

3)指定复制的块数

使用 count 参数可以指定复制的块数,如只复制100个块:

dd if=/dev/sda of=/backup/sda.img bs=4M count=100

4)跳过指定块数

利用 skip 参数可跳过源设备开头的指定块数,如跳过10个块:

dd if=/dev/sda of=/backup/sda.img bs=4M skip=10

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: