Full progress of changing ArchLinux to Debian: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
No edit summary
No edit summary
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
ArchLinux 挺好的,不过我的电脑有点旧了,加上我需要 mediawiki,pacman -Syu 时常常因 mediawiki 而中断,导致启动项丢失,恰逢 Debian 13 发布,于是换回用了多年的 Debian。以下为切换过程的全记录。
ArchLinux 挺好的,不过我的电脑有点旧了,加上我需要 mediawiki,pacman -Syu 时常常因 mediawiki 而中断,导致启动项丢失,恰逢 Debian 13 发布,于是换回用了多年的 Debian。以下为切换过程的全记录。


# 从 USTC 下载 Debian 13 iso:https://mirrors.ustc.edu.cn/help/debian-cd.html
* 从 USTC 下载 Debian 13 iso:https://mirrors.ustc.edu.cn/help/debian-cd.html
# 校验下载文件的 sha512
* 校验下载文件的 sha512
# 用 Ventoy 制作安装盘
* 用 Ventoy 制作安装盘
# 备份浏览器书签及密码
* 备份浏览器书签及密码
# 备份 MediaWiki 数据库
* 备份 MediaWiki 数据库
# 备份 MediaWiki LocalSettings.php
 
# 备份 MediaWiki images 文件夹
<syntaxhighlight lang="bash" line>
# 转移 ArchLinux 内的文件至别的硬盘
grep wgDBname /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库名
grep wgDBuser /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库用户名
grep wgDBpassword /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库用户密码
 
mariadb-dump -u DBuser -p DBname > mysqlbackup20250815.sql # 导出数据库文件
先在新系统的 MariaDB 中创建同名数据库和用户
mysql -u DBuser -p DBname < mysqlbackup20250815.sql # 在新系统中导入数据库文件
</syntaxhighlight>
 
* 备份 MediaWiki LocalSettings.php
* 备份 MediaWiki images 文件夹
 
或直接使用 ChatGPT 写的这个脚本:
<syntaxhighlight lang="bash" line>
#!/bin/bash
# 一键备份 MediaWiki (ArchLinux MariaDB + Apache 安装方式)
# 运行时请确保 MariaDB 正在运行
 
# ===== 配置区 =====
BACKUP_DIR="$HOME/mediawiki_backup"
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="mediawiki_full_${DATE}.tar.gz"
 
# 从 LocalSettings.php 获取数据库名、用户和密码
CONFIG_FILE="/usr/share/webapps/mediawiki/LocalSettings.php"
DB_NAME=$(grep '^\$wgDBname' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')
DB_USER=$(grep '^\$wgDBuser' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')
DB_PASS=$(grep '^\$wgDBpassword' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')
 
# ===== 开始备份 =====
mkdir -p "$BACKUP_DIR"
 
echo ">>> 导出数据库: $DB_NAME"
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql"
if [ $? -ne 0 ]; then
    echo "!!! 数据库导出失败,请检查用户名/密码"
    exit 1
fi
 
echo ">>> 复制 MediaWiki 代码和配置"
cp -a /usr/share/webapps/mediawiki "$BACKUP_DIR/mediawiki_code"
cp -a /var/lib/mediawiki "$BACKUP_DIR/mediawiki_images"
 
echo ">>> 打包所有文件"
tar -czvf "$BACKUP_FILE" -C "$BACKUP_DIR" .
 
echo ">>> 备份完成:$BACKUP_FILE"
echo "你可以将这个文件复制到新服务器进行恢复"
</syntaxhighlight>
 
去新系统里,按以下方式解压:
<syntaxhighlight lang="bash" line>
tar -xzvf mediawiki_full_20250812_213045.tar.gz
</syntaxhighlight>
 
* 转移 ArchLinux 内的文件至别的硬盘

Revision as of 22:18, 15 August 2025

ArchLinux 挺好的,不过我的电脑有点旧了,加上我需要 mediawiki,pacman -Syu 时常常因 mediawiki 而中断,导致启动项丢失,恰逢 Debian 13 发布,于是换回用了多年的 Debian。以下为切换过程的全记录。

grep wgDBname /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库名
grep wgDBuser /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库用户名
grep wgDBpassword /usr/share/webapps/mediawiki/LocalSettings.php # 查清数据库用户密码

mariadb-dump -u DBuser -p DBname > mysqlbackup20250815.sql # 导出数据库文件
先在新系统的 MariaDB 中创建同名数据库和用户
mysql -u DBuser -p DBname < mysqlbackup20250815.sql # 在新系统中导入数据库文件
  • 备份 MediaWiki LocalSettings.php
  • 备份 MediaWiki images 文件夹

或直接使用 ChatGPT 写的这个脚本:

#!/bin/bash
# 一键备份 MediaWiki (ArchLinux MariaDB + Apache 安装方式)
# 运行时请确保 MariaDB 正在运行

# ===== 配置区 =====
BACKUP_DIR="$HOME/mediawiki_backup"
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="mediawiki_full_${DATE}.tar.gz"

# 从 LocalSettings.php 获取数据库名、用户和密码
CONFIG_FILE="/usr/share/webapps/mediawiki/LocalSettings.php"
DB_NAME=$(grep '^\$wgDBname' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')
DB_USER=$(grep '^\$wgDBuser' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')
DB_PASS=$(grep '^\$wgDBpassword' "$CONFIG_FILE" | sed -E 's/.*"([^"]+)".*/\1/')

# ===== 开始备份 =====
mkdir -p "$BACKUP_DIR"

echo ">>> 导出数据库: $DB_NAME"
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql"
if [ $? -ne 0 ]; then
    echo "!!! 数据库导出失败,请检查用户名/密码"
    exit 1
fi

echo ">>> 复制 MediaWiki 代码和配置"
cp -a /usr/share/webapps/mediawiki "$BACKUP_DIR/mediawiki_code"
cp -a /var/lib/mediawiki "$BACKUP_DIR/mediawiki_images"

echo ">>> 打包所有文件"
tar -czvf "$BACKUP_FILE" -C "$BACKUP_DIR" .

echo ">>> 备份完成:$BACKUP_FILE"
echo "你可以将这个文件复制到新服务器进行恢复"

去新系统里,按以下方式解压:

tar -xzvf mediawiki_full_20250812_213045.tar.gz
  • 转移 ArchLinux 内的文件至别的硬盘