HomeAssistant 使用插件备份
1.安装
集成:Auto Backup
加载项:
Alist https://gitcode.com/waxgourd/addons
Rclone Backup https://github.com/jcwillox/hassio-rclone-backup
2.Alist挂载阿里云网盘
网上有很多教程,比如挂载完得到一个webdav地址为:http://192.168.101.81:5244/dav ,挂载的名称为 AliYunPan
3.配置Rclone
3.1 在/config目录下,新建一个rclone.conf的文件,编辑内容为:
1 2 3 4
| [Alist] type = webdav url = http://192.168.101.81:5244/dav vendor = other
|
url填Alist的webdav地址。
3.2 在加载项页面,修改Rclone配置为
1 2 3 4 5 6 7 8 9
| - name: Sync Daily Backups schedule: 50 3 * * * command: sync sources: - /backup destination: Alist:/AliYunPan/haos自动备份 include: [] exclude: [] flags: {}
|
destination填写Alist的挂载的阿里云的路径
3.3 启动加载项,打开 WEB UI,点击左侧菜单栏 Configs,会出现一个Alist的配置,选择 Update。
- 第一步直接点击Next
- 第二步填写Alist的webdav的账户密码,如下图,填完继续Next,就配置完成了
- 这时候再打开3.1那里的rclone.conf文件,就已经自动生成user和pass,pass是加密的
这样Rclone就配置好了。
4.创建自动备份自动化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| alias: 自动备份 description: 每天晚上3点半,自动备份文件到本地,同时上传到云端 trigger: - platform: time at: "03:30:00" condition: [] action: - service: auto_backup.backup data: name: Automatic Backup {{ now().strftime('%Y-%m-%d') }} exclude_addons: - f1549655_koolsmart* - a0d7b954_zerotier - 15d21743_samba_backup - core_mariadb exclude_folders: - media keep_days: 5 mode: single
|
上面配置文件我排除了几个体积较大的不常用的加载项和media文件夹,这样就完成了,每天3点半系统备份,3点50同步到阿里云盘。
docker直接部署,没有基于ha来备份
注意:
在此之前要使用命令找到自己docker安装位置
1
| docker info | grep "Docker Root Dir"
|
将所有docker volume映射到一个文件夹,定时执行shell备份上传这个文件夹
docker的数据都映射到/usr/mydocker下
webdav挂载跟楼主的方式类似,但是我用的是davfs2
定时运行下面的shell就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # 本地目录变量 LOCAL_BACKUP_DIR="/mnt/mydisk/backup/mydocker" WEBDAV_MOUNT_POINT="/mnt/webdav/aliyun/备份/mydocker"
# 确保本地备份目录存在 mkdir -p "${LOCAL_BACKUP_DIR}" mkdir -p "${WEBDAV_MOUNT_POINT}"
# 创建今天的备份目录 TODAY=$(date +%Y-%m-%d)
# 压缩/usr/mydocker文件夹,排除photoprism tar -czvf "${LOCAL_BACKUP_DIR}/backup_${TODAY}.tar.gz" --exclude='/usr/mydocker/photoprism' --exclude='/usr/mydocker/emby2Alist/nginx/embyCache' /usr/mydocker
# 将压缩包拷贝到WebDAV rsync -ah --progress "${LOCAL_BACKUP_DIR}/backup_${TODAY}.tar.gz" "${WEBDAV_MOUNT_POINT}"
# 在WebDAV目录中删除超过30天的旧备份文件 find "${WEBDAV_MOUNT_POINT}" -name 'backup_*.tar.gz' -type f -mtime +30 -exec rm {} \;
# 在本地备份目录中也删除超过30天的旧备份文件 find "${LOCAL_BACKUP_DIR}" -name 'backup_*.tar.gz' -type f -mtime +30 -exec rm {} \;
|
自己参考更改的shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # 本地目录变量 DOCKER_ROOT_DIR="/mnt/share/docker-lib/docker" LOCAL_BACKUP_DIR="/mnt/share/mydisk/backup/mydocker" #WEBDAV_MOUNT_POINT="/mnt/webdav/aliyun/备份/mydocker"
# 确保本地备份目录存在 mkdir -p "${LOCAL_BACKUP_DIR}" #mkdir -p "${WEBDAV_MOUNT_POINT}"
# 创建今天的备份目录 TODAY=$(date +%Y-%m-%d)
# 压缩/usr/mydocker文件夹,排除photoprism tar -czvf "${LOCAL_BACKUP_DIR}/backup_${TODAY}.tar.gz" --exclude='${DOCKER_ROOT_DIR}/photoprism' --exclude='${DOCKER_ROOT_DIR}/emby2Alist/nginx/embyCache' ${DOCKER_ROOT_DIR}
# 将压缩包拷贝到WebDAV #rsync -ah --progress "${LOCAL_BACKUP_DIR}/backup_${TODAY}.tar.gz" "${WEBDAV_MOUNT_POINT}"
# 在WebDAV目录中删除超过30天的旧备份文件 #find "${WEBDAV_MOUNT_POINT}" -name 'backup_*.tar.gz' -type f -mtime +3 -exec rm {} \;
# 在本地备份目录中也删除超过30天的旧备份文件 find "${LOCAL_BACKUP_DIR}" -name 'backup_*.tar.gz' -type f -mtime +30 -exec rm {} \;
|
相关链接(侵删)
- 自动备份到阿里云盘
- 查看Docker安装路径
=================我是分割线=================
欢迎到公众号来唠嗑: