linux服务器自动生成本地快照

简介: 【8月更文挑战第28天】本文介绍了在Linux服务器上通过两种常见方式创建本地快照的方法:Btrfs文件系统与LVM。Btrfs原生支持快照功能,操作简单快捷;LVM则提供了灵活的逻辑卷管理,可在不影响原始数据的情况下创建快照。文章详细列出了创建、查看、挂载及清理快照的具体步骤,并提供了一个自动化的Shell脚本示例,便于用户根据需求定期创建快照并清理过期快照。

在Linux服务器上创建本地快照通常涉及到文件系统的快照功能,如Btrfs或LVM(Logical Volume Manager)。这里我将给出两种常见的方法来创建快照:一种是使用Btrfs文件系统,另一种是使用LVM。

Btrfs 文件系统快照
Btrfs 是一种先进的文件系统,它原生支持快照功能。如果你的服务器使用了Btrfs文件系统,你可以非常容易地创建快照。

创建 Btrfs 快照的步骤:
检查文件系统:
bash

df -T /path/to/your/mountpoint
确认你的目标目录使用的是Btrfs文件系统。
创建快照:
bash

btrfs subvolume snapshot /path/to/source /path/to/destination
这里 /path/to/source 是你想快照的源目录,而 /path/to/destination 是存放快照的地方。注意这个路径不能与源路径相同。
查看快照:
bash

btrfs subvolume list /path/to/destination
LVM 快照
LVM 提供了逻辑卷管理器的功能,可以用于创建快照。LVM 的快照机制允许你在不影响原始数据的情况下对数据进行读取和修改。

创建 LVM 快照的步骤:
检查逻辑卷:
bash

lvdisplay
查看已有的逻辑卷。
创建快照:
bash

lvcreate --size --snapshot /dev// /dev//
其中 是快照的大小, 是卷组名, 是逻辑卷名, 是新快照的名称。
挂载快照:
bash

mkdir /mnt/snapshot
mount /dev// /mnt/snapshot
卸载并清除快照:
bash

umount /mnt/snapshot
rmdir /mnt/snapshot
lvremove /dev//
自动化脚本
为了自动化这些过程,你可以编写一个Shell脚本来定期创建快照,并利用cron定时任务来定期执行。

示例 Shell 脚本 (对于 Btrfs 或 LVM):
bash

!/bin/bash

设置源路径和目标路径

SOURCE=/path/to/source
DESTINATION=/path/to/destination

创建快照

if [[ $(df -T $SOURCE | tail -n 1 | awk '{print $2}') == "btrfs" ]]; then

# Btrfs 快照
btrfs subvolume snapshot $SOURCE $DESTINATION

elif [[ $(vgdisplay | grep "Volume group name" | awk '{print $4}') ]]; then

# LVM 快照
VG=$(vgdisplay | grep "Volume group name" | awk '{print $4}')
LV=$(lvdisplay | grep $VG | grep $SOURCE | awk '{print $3}')
SNAPSHOT=$DESTINATION
lvcreate --size 1G --snapshot /dev/$VG/$LV /dev/$VG/$SNAPSHOT
mkdir -p /mnt/snapshot
mount /dev/$VG/$SNAPSHOT /mnt/snapshot

fi

清理旧快照

find $DESTINATION -mtime +7 -exec rm -rf {} \;

exit 0
添加到 cron
将上述脚本保存为可执行文件,例如 create_snapshot.sh,然后添加到 cron 定时任务中。

bash

crontab -e
在编辑器中添加一行,例如每晚午夜执行:

crontab

0 0 * /path/to/create_snapshot.sh
这将每天午夜执行 create_snapshot.sh 脚本,创建新的快照并清理一周前的老快照。

目录
相关文章
|
4天前
|
Ubuntu Linux 网络安全
Linux服务器上安装软件
Linux服务器上安装软件
26 2
|
3天前
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
24 2
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
12天前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
28 3
java读取linux服务器下某文档的内容
|
3天前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
15 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
23天前
|
Ubuntu Linux
Linux服务器的自动启动可以在哪里进行配置?
Linux服务器的自动启动可以在哪里进行配置?
93 3
|
1天前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
1天前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
3天前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
21 0
|
2月前
|
Linux
Linux 服务器下载百度网盘文件
本教程指导如何使用 `bypy` 库从百度网盘下载文件。首先通过 `pip install bypy` 安装库,接着运行 `bypy info` 获取登录链接并完成授权,最后将文件置于指定目录并通过 `bypy downdir /Ziya-13b-v1` 命令下载至本地。
52 1
Linux 服务器下载百度网盘文件
|
4天前
|
存储 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统网站服务器,该服务器上部署了几十个网站,使用一块SATA硬盘。 服务器故障&原因: 服务器在工作过程中突然宕机。管理员尝试重新启动服务器失败,于是将服务器上的硬盘拆下检测,发现很多坏扇区。联系当地的一家数据恢复公司处理,但是没有成功。