在CentOS上备份Jellyfin数据可以通过多种方法实现,以下是几种常见的备份策略:
进入Jellyfin的数据和配置目录,使用 tar
命令进行完全备份。例如:
sudo tar -czvf jellyfin_backup.tar.gz /path/to/jellyfin
这将创建一个名为 jellyfin_backup.tar.gz
的压缩备份文件。
如果你需要定期进行增量备份,可以使用 -g
选项来创建增量备份。首先,创建一个快照文件:
sudo tar -czvf jellyfin_backup_snapshot.tar.gz /path/to/jellyfin
然后,每次备份时,使用相同的快照文件进行增量备份:
sudo tar -czvf jellyfin_backup_incremental.tar.gz -g jellyfin_backup_snapshot.tar.gz /path/to/jellyfin
Jellyfin官方提供了一个GitHub仓库,其中包含了一些用于管理Jellyfin的脚本。你可以使用这些脚本来简化备份和恢复过程。以下是使用这些脚本的基本步骤:
克隆仓库:
git clone https://github.com/Therkelsen/jellyfin_tools.git
赋予执行权限:
cd jellyfin_tools
sudo chmod +x create_jellyfin_backup.sh update_jellyfin_installation.sh restore_jellyfin_backup.sh restart_jellyfin start_jellyfin stop_jellyfin status_jellyfin
创建备份:
./create_jellyfin_backup.sh
恢复备份:
./restore_jellyfin_backup.sh
如果你已经在CentOS上配置了S3,可以将Jellyfin的数据备份到S3存储桶中。可以使用 s3fs-fuse
来挂载S3存储桶,然后将数据备份到S3中。以下是具体步骤:
安装依赖库:
sudo yum install automake fuse-devel gcc git libcurl-devel libxml2-devel make openssl-devel -y
下载并编译 s3fs-fuse
:
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure
make && sudo make install
创建S3访问密钥文件:
echo "YOUR_S3_ACCESS_KEY:YOUR_S3_SECRET_KEY" > /etc/passwd-s3fs
sudo chmod 600 /etc/passwd-s3fs
挂载S3存储桶:
mkdir -p /mnt/oss
s3fs YOUR_BUCKET /mnt/oss -o passwd_file=/etc/passwd-s3fs -o url=https://YOUR_S3_ENDPOINT -o use_path_request_style
将Jellyfin数据备份到S3:
cp jellyfin_backup.tar.gz /mnt/oss/
如果你需要更细粒度的控制或想要备份到其他位置,可以手动备份Jellyfin的数据库和媒体文件。备份数据库:
停止Jellyfin服务:
sudo systemctl stop jellyfin
备份数据库:
mysqldump -u your_username -p your_database_name jellyfin_backup.sql
启动Jellyfin服务:
sudo systemctl start jellyfin
备份媒体文件:
确定媒体文件存储位置:通常在 /var/lib/jellyfin/media
或 /opt/jellyfin/media
目录下。
复制媒体文件:
sudo rsync -av /var/lib/jellyfin/media /path/to/backup/location
或者:
sudo cp -R /var/lib/jellyfin/media /path/to/backup/location
通过以上方法,你可以在CentOS上有效地备份Jellyfin的数据,确保在需要时能够快速恢复服务。