如何把qBittorrent数据迁移到其它电脑

如果你准备更换电脑,但 qBittorrent 存在很多正在做种或未下载完成的任务,需要把 qBittorrent 的任务迁移到新的电脑。但是 qBittorrent 并没有提供任务的导出导入功能,需要我们手动迁移对应的数据。

数据所在路径

在不同操作系统中,qBittorrent 数据存放的路径也不一样,按不同操作系统备份对应路径下的数据。

Windows

%LOCALAPPDATA%\qBittorrent\BT_backup

MacOS

~/Library/Application Support/qBittorrent/BT_backup

Linux

~/.local/share/qBittorrent/BT_backup

qBittorrent 其它相关配置所在路径可以参考 官方Wiki

备份脚本

Windows

将如下脚本保存为 backup.bat 然后执行,数据会备份到脚本所在的目录下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
IF NOT EXIST "%LocalAppData%\qBittorrent\BT_backup" GOTO CfgNotFound
PAUSE > NUL

IF EXIST ".\backup.zip" (
	IF EXIST ".\backup.old.zip" (
		RD /S /Q ".\backup.old.zip"
	)
	MOVE ".\backup.zip" ".\backup.old.zip"
	ECHO 上一次的备份已更名为backup.old.zip
)

zip -r backup.zip "%LocalAppData%\qBittorrent\BT_backup"

ECHO 备份完成,按任意键结束...
PAUSE > NUL
EXIT

:CfgNotFound
ECHO 没有找到qBittorrent的任务数据文件,无法进行备份,按任意键结束...
PAUSE > NUL

MacOS & Linux

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
data_path="${HOME}/.local/share/qBittorrent/BT_backup"
system=`uname`
if [ "$system" == "Darwin" ]; then
    data_path="${HOME}/Library/Application Support/qBittorrent/BT_backup"
fi

if [ ! -d "${data_path}" ]; then
    read -p "没有找到 qBittorrent 的任务数据文件,无法进行备份,按任意键结束..." -n 1 -r
    exit 0
fi

if [ -f "./backup.zip" ]; then
    if [ -f "./backup.old.zip" ]; then
        rm -rf "./backup.old.zip"
    fi

    mv "./backup.zip" "./backup.old.zip"
fi

zip -r backup.tar.gz "${data_path}"

read -p "备份完成,按任意键结束..." -n 1 -r

恢复脚本

Windows

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
IF NOT EXIST ".\backup.zip" GOTO SearchBakOld

unzip ".\backup.zip" -d "%LocalAppData%\qBittorrent\"

ECHO 成功从backup.zip还原任务数据,按任意键结束...
PAUSE > NUL
EXIT

:SearchBakOld
IF NOT EXIST ".\backup.old.zip" GOTO BakNotFound
PAUSE > NUL

unzip ".\backup.old.zip" -d "%LocalAppData%\qBittorrent\"

ECHO 成功从backup.old.zip还原任务数据,按任意键结束...
PAUSE > NUL
EXIT

:BakNotFound
ECHO 没有可以使用的备份,还原终止,按任意键结束...
PAUSE > NUL

MacOS & Linux

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data_path="${HOME}/.local/share/qBittorrent/"
system=`uname`
if [ "$system" == "Darwin" ]; then
    data_path="${HOME}/Library/Application Support/qBittorrent/"
fi

if [ ! -d "${data_path}" ]; then
    read -p "没有找到 qBittorrent 的任务数据文件,无法进行备份,按任意键结束..." -n 1 -r
    exit 0
fi

backup_file="./backup.zip"
if [ ! -f "${backup_file}" ]; then
    if [ -f "./backup.old.zip" ]; then
        backup_file="./backup.old.zip"
    else
        echo "没有可以使用的备份,还原终止,按任意键结束..."
        exit 0
    fi
fi

unzip "${backup_file}" -d "${data_path}"

read -p "成功从${backup_file}还原任务数据,按任意键结束..." -n 1 -r