当前位置: 首页 > article >正文

linux 定时将固态硬盘数据备份至机械硬盘

需求背景

为了加强公司数据的安全性和可靠性,我们将实施一项数据备份策略。该策略涉及将服务器上的固态硬盘(SSD)中的关键数据定期备份到机械硬盘(HDD)上。这一过程旨在保护数据免受意外删除、硬件故障或其他潜在风险的影响,确保业务连续性和数据完整性。

1.固态硬盘容量为2T (sda)
2.机械硬盘容量为6T (sdb)

在这里插入图片描述

一、使用 fdisk 在 /dev/sdb 设备上删除一个分区并创建一个新的分区

sudo fdisk /dev/sdb

在这里插入图片描述

  • 删除现有分区
    您首先删除了第一个分区(如果存在)。
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
  • 创建新的分区
    Command (m for help): n
  • 使用w命令将更改写入磁盘并退出fdisk
    Command (m for help): w

注:未标识的直接回车即可

二、格式话新分区,挂载新分区

  1. 格式化新分区:
    请确保 /dev/sdb 是正确的设备名,这可以通过 lsblk 或 fdisk -l 命令验证。
sudo mkfs.ext4 /dev/sdb

2.挂载新分区
可以将新分区挂载到一个目录以开始使用它。首先,创建一个挂载点:

sudo mkdir /backup

然后,挂载分区:

sudo mount /dev/sdb /backup

在这里插入图片描述
此时即挂载成功,但是这种挂载方式一旦服务器重启挂载的backup目录会掉,所得设置开机自动挂载

三、开机自动挂载分区/backup

#编辑 /etc/fstab 文件
vi /etc/fstab 
#使用 blkid 获取分区的 UUID:
sudo blkid /dev/sdb
#将 UUID 添加到 /etc/fstab 文件中
UUID="57e44b8f-460f-4679-b07a-4dd3748d5c62" /backup ext4 defaults 0 1
#也可以写为
/dev/sdb /backup ext4 defaults 0 1

在这里插入图片描述

四、编写备份脚本

# 创建一个备份脚本,使用 rsync 来同步 /home 到 /backup。
sudo vi /backup.sh

#!/bin/bash
SOURCE="/home"  # 源目录
DEST="/backup"  # 目标目录
LOGFILE="/var/log/home_backup.log"  # 备份日志文件


# --progress:显示备份进度。
# --delete:删除目标目录中相对于源目录不存在的文件,确保目标目录是源目录的镜像。
# --exclude 排除文件

echo "Starting backup at $(date)" >> $LOGFILE
rsync -avh --progress --delete --exclude '.cache/*' 'anaconda3/*' $SOURCE $DEST >> $LOGFILE 2>&1
echo "Backup completed at $(date)" >> $LOGFIL

如果您已经保存了这个脚本为 backup.sh,您需要给予执行权限:

chmod +x backup_script.sh

可以手动运行这个脚本来执行一次备份:

./backup.sh

切换至目标目录backup下即可看到文件已在备份

五、给备份脚本设置定时,指定时间下定时备份,通常会把时间设置在凌晨1点或者2点的样子

1.要定时运行这个脚本,您可以将其添加到 crontab 中。编辑 crontab:

crontab -e

# 添加以下行以每天凌晨 2 点运行脚本:
0 2 * * * /backup.sh

在这里插入图片描述

2.确认 cron 任务
保存更改后,您可以列出当前用户的 cron 任务以确认任务已正确添加:

crontab -l

这将显示所有当前用户的 cron 任务。
在这里插入图片描述

3.检查 cron 服务状态
确保 cron 服务正在运行

sudo systemctl status cron

4.如果服务未运行,您可以使用以下命令启动它

sudo systemctl start cron

http://www.kler.cn/a/304448.html

相关文章:

  • 应用端sql慢查询监控分析
  • 自动驾驶控制算法-横向误差微分方程LQR前馈控制
  • MySQL表名传参SP
  • Pytorch | 从零构建AlexNet对CIFAR10进行分类
  • ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList
  • 将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版
  • 测试质量体系的风险评估和应对措施有哪些
  • UART 16550的使用
  • Git常用命令备忘
  • 【数据结构和算法实践-树-LeetCode110-平衡二叉树】
  • 【STM32 HAL库】IIC通信与CubeMX配置
  • InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE)
  • S32G EB tresos AutoCore下载和激活方法
  • GSEP 7级T2真题 [202312]纸牌游戏
  • [pytorch] 训练节省显存的技巧
  • Kizuna AI——AI驱动虚拟偶像,AI分析观众的反应和互动,应用娱乐、直播和广告行业
  • Linux(RedHat或CentOS)下如何开启telnet服务
  • 【时时三省】(C语言基础)指针进阶 例题7
  • SQLITE3数据库实现信息的增删改查
  • ensp—路由过滤、路由引入、路由策略
  • 【基础知识复习 - 随机练习题】
  • 1935. 公交换乘(transfer)
  • 常用环境部署(二十)——docker部署OpenProject
  • 基于华为云服务器的网页部署
  • 【Android】使用和风天气API获取天气数据吧!(天气预报系列之一)
  • ARCGIS PRO DSK MapTool