脚本定时备份docker容器

给某用户加权限chown -R xxxx /opt/bak/

#!/bin/bash
# 设置 Docker 容器名称列表 第一个git 第二个禅道 
CONTAINER_NAMES=("4fb4255d02ab" "55792b54cb39")

# 设置本地备份文件路径 最后/路径 拼接有用
LOCAL_BACKUP_PATH="/opt/bak/file/"

# 远程服务器信息
REMOTE_USER="xx"
REMOTE_HOST="xxx"
REMOTE_DESTINATION="/opt/bak"

# 创建本地备份文件夹
mkdir -p $LOCAL_BACKUP_PATH

# 备份每个 Docker 容器
for CONTAINER_NAME in "${CONTAINER_NAMES[@]}"
do
    # 执行 Docker 备份
    docker commit $CONTAINER_NAME $CONTAINER_NAME"_snapshot"
    docker save -o $LOCAL_BACKUP_PATH$CONTAINER_NAME"_backup.tar" $CONTAINER_NAME"_snapshot"
    docker rmi $CONTAINER_NAME"_snapshot"
done

# 使用 SCP 传输备份文件到远程服务器
expect -c "
    spawn scp -r $LOCAL_BACKUP_PATH $REMOTE_USER@$REMOTE_HOST:$REMOTE_DESTINATION
    expect {
        \"yes/no\" {send \"yes\r\";exp_continue;}
        \"*password\" {set timeout 500;send \"xxxx\r\";}
    }
expect eof"

# 删除本地备份文件夹
rm -rf $LOCAL_BACKUP_PAT


定时执行
crontab -e
0 10 * * 5 /opt/bak/bak.sh
保存查看crontab -l

你可能感兴趣的:(docker,容器,运维)