emby自动备份脚本
侧边栏壁纸
  • 累计撰写 17 篇文章
  • 累计收到 525 条评论

emby自动备份脚本

syqman
2022-06-06 / 2 评论 / 1,322 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月06日,已超过718天没有更新,若内容或图片失效,请留言反馈。
脚本说明

仅支持docker版emby的数据备份,自动删除7天以前的备份文件。

使用说明

root 目录下新建 embybackup.sh ,填入内容:

#!/bin/bash

# Emby主程序相关目录
embyserver_dir="/home/emby"
# 备份文件存放目录
bak_dir="/mnt/syqman/公益服备份"
# 时间格式化,如 20220602
DATE=`date +%Y%m%d`
# 备份脚本保存的天数
DEL_DAY=7
targz(){
    if [[ `which pv` == "" ]]; then
        apt install pv -y || yum install pv -y
    elif [[ $1 = '' ]]; then
        exit 1
    fi
    tar -cf - $2 | pv -s $(du -sk $2 | awk '{print $1}') | gzip > $1
}
# 创建日期目录
mkdir -p $bak_dir/$DATE
# 停止Emby Server容器服务
docker stop emby
cd $embyserver_dir
targz $bak_dir/${DATE}/emby-server.tar.gz ./
echo "emby-server备份完成······"
# 启动Emby Server容器服务
docker start emby

# 遍历备份目录下的日期目录
LIST=$(ls $bak_dir)
# 获取7天前的时间,用于作比较,早于该时间的文件将删除
SECONDS=$(date -d  "$(date  +%F) -${DEL_DAY} days" +%s)
for index in ${LIST}
do
    # 对目录名进行格式化,取命名末尾的时间,格式如 20200902
    timeString=$(echo ${index} | egrep -o "?[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]")
    if [ -n "$timeString" ]
    then
        indexDate=${timeString//./-}
        indexSecond=$( date -d ${indexDate} +%s )
        # 与当天的时间做对比,把早于7天的备份文件删除
        if [ $(( $SECONDS- $indexSecond )) -gt 0 ]
        then
            rm -rf $index
        fi
    fi
done

给与脚本权限:

chmod +x embybackup.sh

手动执行下看有无报错:

bash embybackup.sh

指定的备份目录下,如有以日期命名的文件夹,如 20220606 ,并且文件夹下包含 emby-server.tar.gz 的文件,视为备份成功。
备份目录可设置为网盘挂载目录,即可以实现备份到云端。
加入定时备份,比如我每周一、四备份一次:

crontab -e

填入以下内容:

0 5 * * 1,4 /root/embybackup.sh > /dev/null

ctrl +x 保存退出。

1

评论 (2)

取消
  1. 头像
    Bryan
    Windows 10 · Google Chrome

    好家伙,不错不错

    回复
  2. 头像
    huiiikl
    Windows 10 · FireFox

    ψ(`∇´)ψ

    回复