linux 定时将固态硬盘数据备份至呆板硬盘

[复制链接]
发表于 2026-1-23 06:49:36 | 显示全部楼层 |阅读模式
需求配景

为了加强公司数据的安全性和可靠性,我们将实验一项数据备份战略。该战略涉及将服务器上的固态硬盘(SSD)中的关键数据定期备份到呆板硬盘(HDD)上。这一过程旨在掩护数据免受不测删除、硬件故障或其他埋伏风险的影响,确保业务一连性和数据完备性。
1.固态硬盘容量为2T   (sda)
2.呆板硬盘容量为6T      (sdb)

一、使用 fdisk 在 /dev/sdb 装备上删除一个分区并创建一个新的分区
  1. 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
注:未标识的直接回车即可
二、格式话新分区,挂载新分区


  • 格式化新分区:
    请确保 /dev/sdb 是准确的装备名,这可以通过 lsblk 或 fdisk -l 下令验证。
  1. sudo mkfs.ext4 /dev/sdb
复制代码
2.挂载新分区
可以将新分区挂载到一个目次以开始使用它。起首,创建一个挂载点:
  1. sudo mkdir /backup
复制代码
然后,挂载分区:
  1. sudo mount /dev/sdb /backup
复制代码

此时即挂载乐成,但是这种挂载方式一旦服务器重启挂载的backup目次会掉,所得设置开机自动挂载
三、开机自动挂载分区/backup
  1. #编辑 /etc/fstab 文件
  2. vi /etc/fstab
  3. #使用 blkid 获取分区的 UUID:
  4. sudo blkid /dev/sdb
  5. #将 UUID 添加到 /etc/fstab 文件中
  6. UUID="57e44b8f-460f-4679-b07a-4dd3748d5c62" /backup ext4 defaults 0 1
  7. #也可以写为
  8. /dev/sdb /backup ext4 defaults 0 1
复制代码

四、编写备份脚本
  1. # 创建一个备份脚本,使用 rsync 来同步 /home 到 /backup。
  2. sudo vi /backup.sh
  3. #!/bin/bash
  4. SOURCE="/home"  # 源目录
  5. DEST="/backup"  # 目标目录
  6. LOGFILE="/var/log/home_backup.log"  # 备份日志日志文件
  7. # --progress:显示备份进度。
  8. # --delete:删除目标目录中相对于源目录不存在的文件,确保目标目录是源目录的镜像。
  9. # --exclude 排除文件
  10. echo "Starting backup at $(date)" >> $LOGFILE
  11. rsync -avh --progress --delete --exclude '.cache/*' 'anaconda3/*' $SOURCE $DEST >> $LOGFILE 2>&1
  12. echo "Backup completed at $(date)" >> $LOGFIL
复制代码
如果您已经生存了这个脚本为 backup.sh,您须要给予实验权限:
  1. chmod +x backup_script.sh
复制代码
可以手动运行这个脚原来实验一次备份:
  1. ./backup.sh
复制代码
切换至目的目次backup下即可看到文件已在备份
五、给备份脚本设置定时,指定时间下定时备份,通常会把时间设置在破晓1点大概2点的样子

1.要定时运行这个脚本,您可以将其添加到 crontab 中。编辑 crontab:
  1. crontab -e
  2. # 添加以下行以每天凌晨 2 点运行脚本:
  3. 0 2 * * * /backup.sh
复制代码

2.确认 cron 任务
生存更改后,您可以列出当前用户的 cron 任务以确认任务已准确添加:
  1. crontab -l
复制代码
这将体现全部当前用户的 cron 任务。

3.查抄 cron 服务状态
确保 cron 服务正在运行
  1. sudo systemctl status cron
复制代码
4.如果服务未运行,您可以使用以下下令启动它
  1. sudo systemctl start cron
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表