#!/bin/bash
# 定义备份的根目录
BACKUP_ROOT="/root/backup"
# 使用当前日期和时间创建备份目录,格式为 YYYYMMDD_HHMMSS
CURRENT_DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="$BACKUP_ROOT/$CURRENT_DATE"
# 确保备份目录存在
mkdir -p $BACKUP_DIR
# 获取所有正在运行的容器的卷
VOLUMES=$(docker inspect $(docker ps -q) --format '{{ range .Mounts }}{{ .Name }} {{ end }}' | tr ' ' '\n' | sort -u)
# 遍历每个卷并备份
for VOLUME in $VOLUMES; do
# 获取卷的挂载点
MOUNT_POINT=$(docker volume inspect $VOLUME | grep Mountpoint | cut -d '"' -f 4)
# 定义备份文件的名称
BACKUP_FILE="$BACKUP_DIR/$VOLUME.tar.gz"
# 使用 tar 命令备份卷
tar -czf $BACKUP_FILE -C $MOUNT_POINT .
echo "Backup for volume $VOLUME completed: $BACKUP_FILE"
done
echo "All backups completed in directory: $BACKUP_DIR"
自动备份运行状态中的docker容器卷
暂无评论,快来抢沙发

