自建 Vaultwarden (原名bitwarden)密码管理器数据备份到腾讯云COS教程

Vaultwarden是一个开源的Bitwarden服务器实现,允许用户自己托管他们的密码管理服务。对于一个密码管理器来说,备份尤其重要,因为它涉及敏感数据。一旦丢失,可能导致无法访问许多重要账户和服务。而且,由于密码管理器通常涉及到用户的财务信息、个人身份信息以及其他敏感数据,任何数据丢失都可能有严重的后果。因此,确保通过备份保护这些信息是最佳实践。

docker ps
docker inspect vaultwarden_container_name    //vaultwarden_container_name容器ID或者名字,在输出中,你需要找到 "Mounts" 部分,这部分显示了卷或绑定挂载的源路径和目标路径。

例如:

    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "docker-default",
    "ExecIDs": null,
    "HostConfig": {
        "Binds": [
            "/vw-data/:/data/"

其中的 vw-data 就是宿主机的数据目录路径,接下来需要的就是做好备份。

安装pip命令(如果系统已经安装则可跳过):

sudo apt update
sudo apt install python3-pip
which pip3   //确认安装好

安装腾讯云的COS命令行工具了:

pip3 install coscmd

然后登录腾讯云控制台,获取您的SecretIdSecretKey。这些将用于身份验证。

使用您的凭证配置COSCMD:

更多命令请查看:https://cloud.tencent.com/document/product/436/10976

coscmd config -a AChT4ThiXAbpBDEFGhT4ThiXAbp**** -s WE54wreefvds3462refgwewe**** -b configure-bucket-1250000000 -r ap-chengdu

这些信息在腾讯云的API请求中非常重要,因为它们允许腾讯云服务验证您的身份并执行您请求的操作,比如将文件备份到COS。

在使用COSCMD或其他工具进行配置时,您需要用这些具体的信息替换掉尖括号及其内容。

请注意,不要将这些敏感信息泄露出去,特别是您的SecretID和SecretKey,因为如果有人获取了这些信息,他们可以访问您的腾讯云资源。

接下来创建一个备份脚本backup_to_cos.sh,它将打包您的文件夹并上传到COS:

vim backup_to_cos.sh

单目录备份:

#!/bin/bash

# 配置您的COS信息
COSCMD_PATH=/usr/local/bin/coscmd
COS_BUCKET=<your-bucket-name>
COS_REGION=<your-region>
COS_TARGET_PATH="your/target/directory/"

# 需要备份的目录路径
DIRECTORY="/path/to/your/directory"

# 当前日期,用于创建文件名
DATE=$(date +"%Y%m%d%H%M")

# 创建备份文件名
BACKUP_NAME=$(basename "$DIRECTORY")_$DATE.tar.gz

# 打包和压缩目录
tar -czf $BACKUP_NAME $DIRECTORY

# 使用COSCMD上传到COS的指定目录
$COSCMD_PATH -b $COS_BUCKET -r $COS_REGION upload $BACKUP_NAME $COS_TARGET_PATH$BACKUP_NAME

# 检查上传是否成功
if [ $? -eq 0 ]; then
  echo "Backup and upload of $DIRECTORY to $COS_TARGET_PATH completed successfully."
else
  echo "Upload of $BACKUP_NAME to COS failed."
fi

echo "Backup process has been completed."

然后 wq 保存退出。可以先测试下是否能正常备份:

chmod +x backup_to_cos.sh
./backup_to_cos.sh

登陆cos查看是否成功,如果成功则执行:

crontab -e
0 1 * * * /root/backup_to_cos.sh   // 替换 /root/backup_to_cos.sh 为脚本实际所在的路径,每天凌晨一点执行!
crontab -l   //检测命令是否正常写入

多目录备份(记录一下这个命令):

#!/bin/bash

# 配置您的COS信息
COSCMD_PATH=/usr/local/bin/coscmd
COS_BUCKET=<your-bucket-name>
COS_REGION=<your-region>

# 需要备份的目录列表
DIRECTORY_LIST=(
"/path/to/directory1"
"/path/to/directory2"
"/path/to/directory3"
)

# 当前日期,用于创建文件名
DATE=$(date +"%Y%m%d%H%M")

# 循环目录列表
for DIRECTORY in "${DIRECTORY_LIST[@]}"; do
  # 用日期和目录名创建备份文件名
  BACKUP_NAME=$(basename "$DIRECTORY")_$DATE.tar.gz

  # 打包和压缩当前目录
  tar -czf $BACKUP_NAME $DIRECTORY

  # 使用COSCMD上传到COS
  $COSCMD_PATH -b $COS_BUCKET -r $COS_REGION upload $BACKUP_NAME $BACKUP_NAME

  # 检查上传是否成功
  if [ $? -eq 0 ]; then
    echo "Backup and upload of $DIRECTORY completed."
  else
    echo "Upload of $BACKUP_NAME to COS failed."
  fi
done

echo "All backups have been processed."

请记得替换脚本中的<your-bucket-name><your-region>以及DIRECTORY_LIST中的目录为您实际想要备份的文件夹路径。

重要提示:定期备份并保留本地副本是一个好习惯,但请确保您有足够的本地存储空间来保存这些备份。如果本地存储容量有限,您可能需要实施一些旧备份的清理策略。