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
然后登录腾讯云控制台,获取您的SecretId
和SecretKey
。这些将用于身份验证。
使用您的凭证配置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
中的目录为您实际想要备份的文件夹路径。
重要提示:定期备份并保留本地副本是一个好习惯,但请确保您有足够的本地存储空间来保存这些备份。如果本地存储容量有限,您可能需要实施一些旧备份的清理策略。