脚本说明
仅支持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
保存退出。
好家伙,不错不错
ψ(`∇´)ψ
想想你的文章写的特别好
怎么收藏这篇文章?
不错不错,我喜欢看 https://www.237fa.com/
不错不错,我喜欢看 https://www.237fa.com/
想想你的文章写的特别好https://www.ea55.com/
想想你的文章写的特别好https://www.ea55.com/
想想你的文章写的特别好www.jiwenlaw.com