<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.662662.xyz/feed/rss/category/Linux/">
<title>无名的小宇宙 - Linux</title>
<link>https://blog.662662.xyz/category/Linux/</link>
<description>Linux</description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.662662.xyz/archives/45/"/>
<rdf:li resource="https://blog.662662.xyz/archives/42/"/>
<rdf:li resource="https://blog.662662.xyz/archives/41/"/>
<rdf:li resource="https://blog.662662.xyz/archives/40/"/>
<rdf:li resource="https://blog.662662.xyz/archives/39/"/>
<rdf:li resource="https://blog.662662.xyz/archives/38/"/>
<rdf:li resource="https://blog.662662.xyz/archives/37/"/>
<rdf:li resource="https://blog.662662.xyz/archives/27/"/>
<rdf:li resource="https://blog.662662.xyz/archives/26/"/>
<rdf:li resource="https://blog.662662.xyz/archives/25/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.662662.xyz/archives/45/">
<title>Linux一键检测服务器三网回程路由｜粤沪京全覆盖，AS 号精准识别线路品质</title>
<link>https://blog.662662.xyz/archives/45/</link>
<dc:date>2026-04-11T13:31:00+00:00</dc:date>
<description>Linux一键检测服务器三网回程路由｜粤沪京全覆盖，AS号精准识别线路品质在选购海外VPS、服务器时，回国回程路由直接决定了国内访问速度、延迟和稳定性。电信CN2、联通9929、移动CMIN2等精品线路，和普通163/CMI线路体验天差地别。今天给大家分享一款全自动Shell脚本，无需手动配置环境，一行命令直接运行，一键检测服务器到广东、上海、北京三大核心城市的电信、联通、移动三网回程路由，通过AS号精准识别线路类型，彩色输出、结果一目了然！脚本核心亮点✅ 全系统兼容：支持 Debian / Ubuntu / CentOS / Rocky / AlmaLinux 所有主流Linux发行版✅ 自动安装依赖：一键检测并安装 mtr 路由追踪工具，无需手动操作✅ 粤沪京全覆盖：覆盖国内三大核心节点，三网9个目标地址全面测试✅ AS号精准识别：自动识别精品线路/普通线路/中转隐藏路由✅ 彩色可视化：绿=优质、黄=普通、红=一般，直观判断线路质量✅ 结果自动汇总：检测完成自动生成汇总表，方便截图、对比、记录关键AS号线路对照表AS号线路类型等级颜色AS4809电信CN2 精品回程优质绿色AS9929联通9929 精品回程优质绿色AS58807移动CMIN2 精品回程优质绿色AS4134电信163 普通回程常规黄色AS4837联通169 普通回程常规黄色AS58453移动CMI 普通回程常规黄色超简单使用教程全程仅需复制一行命令，粘贴到服务器终端直接运行，全自动完成所有检测！wget https://git.662662.xyz/linux/check_backhaul.sh &amp;&amp; chmod +x check_backhaul.sh &amp;&amp; ./check_backhaul.sh脚本执行流程自动下载脚本：无需手动创建文件，一行命令直接拉取最新版脚本依赖检查安装：自动识别系统，安装mtr路由追踪工具多节点路由测试：依次检测粤沪京三网9个核心节点AS号智能匹配：自动识别线路类型并彩色标注最终结果汇总：输出清晰汇总表，快速判断服务器线路质量结果颜色解读🟢 绿色：精品线路（CN2/9929/CMIN2）延迟低、速度快、丢包率低，最推荐🟡 黄色：普通线路（163/169/CMI）满足日常使用，速度中等，稳定性一般🔴 红色：中转/路由隐藏线路不稳定，可能绕路、高延迟、不推荐注意事项建议使用 root 权限 运行，避免依赖安装失败检测结果为实时回程路由，受网络波动影响，可多次检测取平均值脚本仅支持 IPv4 检测脚本轻量化运行，无残留文件，不影响服务器正常使用总结这款回程路由检测脚本是挑选VPS、测试服务器、排查网络问题的必备工具，彻底告别复杂操作，一行命令就能测出服务器真实回国线路，轻松避开商家虚假宣传，站长、运维、VPS玩家必备！总结全程仅需一行命令，无需代码、无需配置，小白也能轻松用粤沪京三网全覆盖，AS号精准识别，彩色结果直观易懂全Linux系统兼容，自动处理依赖，安全无残留</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/42/">
<title>WebDAV备份脚本</title>
<link>https://blog.662662.xyz/archives/42/</link>
<dc:date>2025-09-18T04:31:27+00:00</dc:date>
<description>高效WebDAV备份解决方案：Shell与Python双版本脚本详解📌 方案概述这是一套专为WebDAV服务器设计的备份脚本工具，包含Shell和Python两个版本，支持本地备份创建、WebDAV远程上传、备份文件数量管理、大文件处理及完整性校验等核心功能。无论是个人文件归档还是服务器数据备份，均可通过简单配置实现自动化流程，兼顾稳定性与灵活性。🌟 WebDAV服务推荐若您需要稳定的WebDAV存储服务，优先推荐以下方案：InfiniCloud：注册即享20GB基础存储空间，输入推荐码 QXPSY 可额外获得5GB，总计25GB免费容量，满足中小型备份需求。  🔗 立即注册📋 环境要求与下载方式一、🐚 Shell版本（适用于Linux/macOS/WSL）环境依赖操作系统：支持Bash的环境（Linux全版本、macOS 10.14+、Windows Subsystem for Linux 2+）工具依赖：curl（≥7.19.0，需支持-C -断点续传参数）tar（使用tar.gz格式时必备，建议tar 1.30+以支持压缩优化）zip（使用zip格式时必备，zip 3.0+兼容性更佳）权限要求：对源目录有读权限、本地备份目录有读写权限、WebDAV服务器有访问+上传+创建目录权限。下载方式国内环境（Gitee镜像，速度更快，规避网络波动）wget https://gitee.com/wmwlwmwl/pagoda-happy-edition/raw/master/Linux/WebDAV_Backup/webdav_backup.sh国外环境（GitHub原生地址，适合海外服务器）wget https://raw.githubusercontent.com/wmwlwmwl/WebDAV_Backup/refs/heads/main/webdav_backup.sh二、🐍 Python版本（适用于跨平台场景）环境依赖Python版本：3.6及以上（推荐3.8+，兼容新特性且稳定性更好）库依赖：requests（用于WebDAV通信，需requests 2.25.0+以支持断点续传）内置库：smtplib、email（Python标准库自带，无需额外安装）权限要求：与Shell版本一致，需对应目录读写权限及WebDAV访问权限。下载方式国内环境（Gitee镜像，速度更快）wget https://gitee.com/wmwlwmwl/pagoda-happy-edition/raw/master/Linux/WebDAV_Backup/webdav_backup.py国外环境（GitHub原生地址）wget https://raw.githubusercontent.com/wmwlwmwl/WebDAV_Backup/refs/heads/main/webdav_backup.py⚙️ 核心配置参数详解使用前需在脚本头部修改关键参数，以下为完整配置示例（以Shell版本为例，Python版本参数含义完全一致），建议按注释逐行核对：# ==================== 基础备份配置 ====================
SOURCE_DIR=&quot;/path/to/source/directory&quot;          # 要备份的源目录（必填，例：/data/wwwroot）
WEBDAV_BASE_URL=&quot;https://your-webdav-server.com&quot; # WebDAV服务器基础地址（必填，例：https://dav.infini-cloud.net）
WEBDAV_UPLOAD_DIR=&quot;backups/docs&quot;                # WebDAV上的上传目录（相对于基础地址，例：backups/server1）
WEBDAV_USER=&quot;your_username&quot;                     # WebDAV用户名（必填，注册时的账号）
WEBDAV_PASS=&quot;your_password&quot;                     # WebDAV密码（必填，建议后续通过环境变量存储，避免明文）
LOCAL_BACKUP_DIR=&quot;/path/to/local/backups&quot;       # 本地备份保存目录（必填，需足够空间，例：/backup/local）
BACKUP_PREFIX=&quot;backup&quot;                          # 备份文件前缀（自定义，例：server1_backup）
MAX_REMOTE_BACKUPS=5                            # WebDAV保留的最大备份数量（建议3-10，避免占用过多远程空间）
MAX_LOCAL_BACKUPS=3                             # 本地保留的最大备份数量（建议2-5，平衡空间与冗余）
BACKUP_FORMAT=&quot;tar.gz&quot;                          # 备份文件格式（可选：tar.gz（压缩率高）、zip（跨平台））

# ==================== 文件上传参数 ====================
USE_SEPARATE_FILE_PARAMS=true                   # 是否区分大文件和非大文件（true=区分，false=统一用大文件参数）
LARGE_FILE_THRESHOLD=100                        # 大文件定义（MB，仅USE_SEPARATE_FILE_PARAMS=true时生效）
CONNECT_TIMEOUT=30                               # 所有文件的连接超时时间（秒，建议30-60，避免无限等待）

# 非大文件上传参数（文件≤LARGE_FILE_THRESHOLD时生效）
SMALL_FILE_MAX_TIME=1800                         # 最大上传时间（秒，默认30分钟，小文件无需过长）
SMALL_FILE_RATE_LIMIT=&quot;2M&quot;                        # 上传速度限制（格式：数字+单位，例：2M=2MB/s，空字符串&quot;&quot;=无限制）
                                                 # 【注意】Python版本暂不支持上传速度限制，此参数会被忽略

# 大文件上传参数（文件&gt;LARGE_FILE_THRESHOLD时生效）
LARGE_FILE_MAX_TIME=7200                         # 最大上传时间（秒，默认2小时，大文件需预留足够时间）
LARGE_FILE_RATE_LIMIT=&quot;1M&quot;                        # 上传速度限制（建议1-5M/s，避免占用全部带宽）
                                                 # 【注意】Python版本暂不支持上传速度限制，此参数会被忽略

# ==================== 完整性检测参数 ====================
ENABLE_INTEGRITY_CHECK=true                      # 是否启用上传后完整性检测（true=启用，建议开启）
INTEGRITY_CHECK_TIMEOUT=300                      # 完整性检测超时时间（秒，默认5分钟，避免检测耗时过长）
ENABLE_MD5_VERIFICATION=true                     # 是否启用MD5校验和验证（true=启用，进一步确保文件完整）
MD5_VERIFICATION_EXCLUDE_THRESHOLD=100           # 跳过MD5验证的文件大小（MB，例：100=100MB以上文件不校验，避免耗时）

# ==================== 邮箱通知参数（双版本均支持） ====================
ENABLE_EMAIL_NOTIFICATION=false                  # 是否启用邮箱通知（true=启用，建议开启以便及时知晓结果）
ENABLE_EMAIL_SUCCESS_NOTIFICATION=true           # 是否发送成功通知（true=发送，按需关闭）
ENABLE_EMAIL_FAILURE_NOTIFICATION=true           # 是否发送失败通知（true=发送，建议强制开启）
SMTP_SERVER=&quot;smtp.example.com&quot;                   # SMTP服务器地址（例：QQ邮箱=smtp.qq.com，网易=smtp.163.com）
SMTP_PORT=587                                    # SMTP端口（常用：25=无加密，587=TLS，465=SSL，需与SMTP_USE_TLS匹配）
SMTP_USERNAME=&quot;your_email@example.com&quot;           # SMTP用户名（通常是发件人邮箱地址）
SMTP_PASSWORD=&quot;your_email_password&quot;              # SMTP密码（注意：QQ/网易等需用「独立授权码」，而非登录密码）
SMTP_USE_TLS=true                                # 是否使用TLS加密（true=启用，配合587端口；false=不启用，配合25端口）
EMAIL_FROM=&quot;your_email@example.com&quot;              # 发件人邮箱（需与SMTP_USERNAME一致）
EMAIL_FROM_NAME=&quot;WebDAV备份系统&quot;                  # 发件人名称（邮件中显示，例：服务器A备份系统）
EMAIL_TO=&quot;recipient@example.com&quot;                 # 收件人邮箱（多个邮箱用逗号分隔，例：a@xxx.com,b@xxx.com）
EMAIL_SUBJECT_PREFIX=&quot;服务器&quot;                     # 邮件主题前缀（最终主题：[服务器]WebDAV备份结果）参数补充说明（易混淆点）易混淆参数常见错误示例正确配置建议WEBDAV_BASE_URLhttps://dav.example.com/末尾可带/或不带，脚本会自动兼容，但建议统一格式（如不带/）SMTP_PASSWORD用QQ邮箱登录密码需用QQ邮箱「独立授权码」（在邮箱设置-账户中开启）MD5_VERIFICATION_EXCLUDE_THRESHOLD设为00=所有文件校验，大文件会耗时，建议设为100-200🚀 快速使用指南一、🐚 Shell版本操作流程修改配置：用vim或nano打开脚本，按上述示例调整头部参数（重点核对SOURCE_DIR、WEBDAV账号、LOCAL_BACKUP_DIR）：vim webdav_backup.sh  # 编辑脚本
# 按「i」进入编辑模式，修改后按「Esc」+输入「:wq」保存退出赋予执行权限：首次使用需给脚本添加可执行权限，避免「权限不足」错误：chmod +x webdav_backup.sh手动执行测试：先手动运行一次，验证配置是否正确（若报错，可根据日志排查问题）：./webdav_backup.sh
# 执行后观察输出设置定时任务（自动化备份）：  若需每天凌晨2点自动备份，可通过以下两种方式添加到crontab（Linux/macOS自带定时任务工具）：方式1：手动编辑crontab（适合需要调整其他任务的场景）# 1. 打开crontab编辑器
crontab -e
# 2. 在末尾添加以下内容（替换实际路径，日志路径需提前创建）
# 格式说明：分 时 日 月 周 脚本路径 &gt;&gt; 日志路径 2&gt;&amp;1（2&gt;&amp;1=错误日志也写入文件）
0 2 * * * /path/to/webdav_backup.sh &gt;&gt; /var/log/webdav_backup.log 2&gt;&amp;1
# 3. 保存退出：vi编辑器按「Esc」+「:wq」，nano按「Ctrl+O」+「Enter」+「Ctrl+X」方式2：直接命令添加（无需手动编辑，更便捷，适合批量部署）# 替换「/path/to/webdav_backup.sh」和「/path/to/backup.log」为实际路径
(crontab -l 2&gt;/dev/null; echo &quot;0 2 * * * /path/to/webdav_backup.sh &gt;&gt; /path/to/backup.log 2&gt;&amp;1&quot;) | crontab -二、🐍 Python版本操作流程安装依赖库：首次使用需安装requests库（用于WebDAV通信），若系统有多个Python版本，建议指定pip3：# 通用安装命令
pip install requests
# 若有Python3和Python2共存，用：
pip3 install requests修改配置：与Shell版本一致，用文本编辑器打开webdav_backup.py，调整头部参数（参数含义完全相同，无需额外适配）：vim webdav_backup.py手动执行测试：运行脚本并验证配置（若报错，优先检查requests是否安装成功、Python版本是否≥3.6）：# 通用执行命令
python webdav_backup.py
# 若指定Python3，用：
python3 webdav_backup.py设置定时任务：与Shell版本逻辑一致，仅需修改「执行命令」和「脚本路径」：方式1：手动编辑crontabcrontab -e
# 添加以下内容（替换实际路径）
0 2 * * * python3 /path/to/webdav_backup.py &gt;&gt; /var/log/webdav_backup.log 2&gt;&amp;1方式2：直接命令添加# 替换「/path/to/webdav_backup.py」和「/path/to/backup.log」为实际路径
(crontab -l 2&gt;/dev/null; echo &quot;0 2 * * * python3 /path/to/webdav_backup.py &gt;&gt; /path/to/backup.log 2&gt;&amp;1&quot;) | crontab -🔧 核心功能解析1. 智能备份与清理机制时间戳命名：备份文件自动按「前缀_年月日_时分秒.格式」命名（例：server1_backup_20250917_020000.tar.gz），便于追溯备份时间，避免文件名冲突。双端自动清理：远程清理：当WebDAV上的备份数量超过MAX_REMOTE_BACKUPS时，自动删除最早的备份文件，避免远程空间耗尽。本地清理：同理，本地备份数量超过MAX_LOCAL_BACKUPS时，自动删除旧备份，释放本地磁盘空间。格式灵活选择：tar.gz压缩率高（节省存储），适合Linux服务器；zip格式跨平台（Windows可直接解压），适合需多系统访问的场景。2. 大文件优化处理（解决上传痛点）针对大文件（如数据库备份、视频文件）上传易超时、易中断的问题，脚本做了三重优化：动态参数切换：根据文件大小自动选择上传参数（大文件用更长超时、更低速率限制，小文件用更短超时、更高速率，兼顾效率与稳定性）。断点续传：基于curl（Shell）和requests（Python）的断点续传能力，若上传中断（如网络波动），再次执行脚本会从已上传部分继续，无需重新上传整个文件，大幅节省时间。速率可控：Shell版本支持限制上传速度（如1M/s），避免备份占用全部带宽，影响服务器其他业务（Python版本暂不支持此功能，需后续优化）。3. 完整性保障体系（避免文件损坏）为确保上传后的文件与本地一致，脚本提供「大小校验+MD5校验」双重保障：文件大小校验：上传完成后，自动对比本地文件与远程文件的大小，若不一致（如上传中断导致文件不完整），则标记为「上传失败」，并删除远程损坏文件，避免无效备份。MD5校验（可选）：启用后，脚本会计算本地文件的MD5值，上传后再计算远程文件的MD5值，两者一致则确认文件完整；同时支持跳过超大文件的MD5校验（通过MD5_VERIFICATION_EXCLUDE_THRESHOLD设置），避免耗时过长。4. 精准邮件通知（及时知晓结果）支持按备份结果发送通知，避免无效信息干扰，核心特性：开关独立控制：可分别开启/关闭「成功通知」和「失败通知」（例：仅接收失败通知，减少冗余信息）。内容详细完整：邮件包含「备份时间、源目录、备份文件大小、上传状态、耗时、错误信息（若失败）」，便于快速定位问题（如失败时可通过错误信息排查是WebDAV账号错误还是网络问题）。多邮箱支持：收件人可填写多个邮箱（用逗号分隔），适合团队协作场景（如运维组全员接收备份结果）。🛠️ 常见问题与解决方案（附排查步骤）问题1：大文件上传超时或中断原因排查（按优先级排序）上传时间不足（默认2小时，超大文件可能不够）；网络波动频繁（公网WebDAV易出现）；WebDAV服务器限制单文件大小或上传时间；本地磁盘空间不足（备份过程中磁盘满导致文件损坏）。解决方案延长大文件超时时间：将LARGE_FILE_MAX_TIME从7200（2小时）调整为14400（4小时）或21600（6小时）；关闭大小文件区分：将USE_SEPARATE_FILE_PARAMS设为false，所有文件统一用大文件参数（更稳定）；检查网络稳定性：在备份时段用ping your-webdav-server.com测试网络延迟，若波动大，建议更换备份时段（如凌晨）；验证服务器限制：联系WebDAV服务商，确认是否有单文件大小限制（如InfiniCloud免费版通常支持10GB以内文件）；检查本地磁盘：执行df</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/41/">
<title>Ubuntu 系统一键升级脚本：轻松实现 Ubuntu 18.04 到 24.04 LTS 的无缝过渡</title>
<link>https://blog.662662.xyz/archives/41/</link>
<dc:date>2025-09-13T07:40:34+00:00</dc:date>
<description>Ubuntu 系统一键升级脚本：轻松实现 Ubuntu 18.04 到 24.04 LTS 的无缝过渡对于仍在使用 Ubuntu 18.04 LTS 的用户而言，系统升级是保障安全与获取新特性的关键操作。然而，跨多个版本的手动手动升级流程繁琐且易出错。本文将详细介绍一款专为 Ubuntu 系统设计的一键升级脚本，助你轻松完成从 18.04 到 24.04 LTS 的逐步升级。脚本核心优势这款一键升级脚本凭借以下特性脱颖而出：全自动升级路径：无需手动干预各版本升级步骤，脚本会按序完成 18.04 → 20.04 → 22.04 → 24.04 的完整升级流程灵活源选择：提供官方源、中科大源、CERNET 校园网联合源三种选择，国内用户可根据网络环境挑选最优源协议自由切换：支持 HTTP/HTTPS 协议选择，适应不同网络环境需求智能冲突处理：自动配置 dpkg 以保留现有配置文件，避免升级中的配置冲突完善日志记录：所有操作均记录在 /var/log/ubuntu_upgrade.log，便于问题排查版本自适应：自动检测当前系统版本，仅执行对应阶段的升级操作脚本工作原理脚本采用模块化设计，主要包含以下核心功能模块：权限验证：确保脚本以 root 权限运行，保障升级操作顺利执行源配置管理：自动备份当前源配置，根据用户选择生成适配的 sources.list系统预处理：更新现有软件包、清理系统冗余文件、安装必要升级工具版本检测与升级：识别当前系统版本，调用对应升级流程，完成后自动重启异常处理：当自动升级失败时，提示用户进行手动干预一键升级操作步骤1. 获取并运行脚本通过以下单条命令即可下载、授权并启动升级脚本：主域名（江苏和四川部分地区可能被拦截）wget https://git.662662.xyz/linux/ubuntu/ubuntu_upgrade.sh &amp;&amp; chmod +x ubuntu_upgrade.sh &amp;&amp; ./ubuntu_upgrade.sh备用域名wget https://gitee.com/wmwlwmwl/pagoda-happy-edition/raw/master/Linux/Ubuntu/ubuntu_upgrade.sh &amp;&amp; chmod +x ubuntu_upgrade.sh &amp;&amp; ./ubuntu_upgrade.sh2. 交互式配置脚本启动后，会引导你完成两项关键配置：软件源选择：根据网络环境选择最合适的源（1.官方源 / 2.中科大源 / 3.CERNET源）协议选择：根据网络安全需求选择 HTTP 或 HTTPS 协议（默认 HTTP）3. 自动升级流程完成配置后，脚本将自动执行以下操作：系统准备阶段：备份当前软件源配置到 /etc/apt/sources.list.bak.时间戳执行 apt update 更新软件包列表运行 apt upgrade 和 apt dist-upgrade 升级现有软件清理无用软件包（autoremove）和缓存（autoclean）分阶段升级：从 18.04 升级到 20.04 LTS（focal），完成后系统自动重启重启后，再次执行 ./ubuntu_upgrade.sh 继续升级到 22.04 LTS（jammy），完成后再次自动重启再次重启后，第三次执行 ./ubuntu_upgrade.sh 完成到 24.04 LTS（noble）的升级关键技术细节脚本通过以下技术手段确保升级过程的稳定性：设置 DEBIAN_FRONTEND=noninteractive 实现非交互式升级配置 Dpkg::Options { &quot;--force-confold&quot;; } 自动保留现有配置文件采用 do-release-upgrade 命令的非交互模式（-f DistUpgradeViewNonInteractive）对升级命令进行双重尝试（标准命令 → 开发版选项），提高成功率自动禁用 Proposed Updates 源，避免不稳定软件包影响升级注意事项全程需三次运行：每次版本升级后系统会自动重启，重启后需重新执行 ./ubuntu_upgrade.sh 继续下一阶段升级时机选择：建议在非业务高峰期执行，整个过程可能持续数小时日志查询：若升级中断，可通过 cat /var/log/ubuntu_upgrade.log 查看详细过程手动干预方案：当自动升级失败时，可按提示运行 do-release-upgrade 进行交互式升级升级验证完成所有升级步骤后，使用以下命令验证结果：lsb_release -a成功升级到 24.04 LTS 后，将显示：No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04 LTS
Release:        24.04
Codename:       noble总结这款一键升级脚本将原本复杂的跨版本升级过程简化为几次命令执行，极大降低了操作难度。通过自动化处理软件源配置、冲突解决和分阶段升级等关键环节，既保证了升级的安全性，又提高了操作效率。对于需要批量升级多台服务器的管理员而言，该脚本更是省时省力的利器。升级完成后，你的系统将获得持续至 2030 年的长期支持，同时享受最新的安全补丁和功能改进。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/40/">
<title>Debian 系统一键升级脚本：轻松实现 10 到 13 版本的无缝过渡</title>
<link>https://blog.662662.xyz/archives/40/</link>
<dc:date>2025-09-13T07:40:11+00:00</dc:date>
<description>Debian 系统一键升级脚本：轻松实现 10 到 13 版本的无缝过渡在服务器管理中，系统版本升级是保持安全性和功能完整性的关键操作，但手动升级往往涉及繁琐的步骤和潜在风险。本文将介绍一个便捷的 Debian 自动化升级脚本，让你轻松实现从 Debian 10 到 11、12 直至 13 版本的平滑升级。一键部署与使用获取并运行脚本非常简单，只需在终端中执行以下命令：主域名（江苏和四川部分地区可能被拦截）wget https://git.662662.xyz/linux/debian/debian_upgrade.sh &amp;&amp; chmod +x debian_upgrade.sh &amp;&amp; ./debian_upgrade.sh备用域名wget https://gitee.com/wmwlwmwl/pagoda-happy-edition/raw/master/Linux/Debian/debian_upgrade.sh &amp;&amp; chmod +x debian_upgrade.sh &amp;&amp; ./debian_upgrade.sh这条命令会自动完成：下载脚本文件赋予执行权限启动升级流程脚本核心功能解析智能版本管理脚本最突出的特点是能自动检测当前系统版本，并根据 Debian 官方推荐路径选择合适的升级目标：Debian 10 (buster) → 11 (bullseye)Debian 11 (bullseye) → 12 (bookworm)Debian 12 (bookworm) → 13 (trixie)也支持手动指定目标版本，具体命令如下：从 Debian 10 升级到 11./debian_upgrade.sh bullseye从 Debian 11 升级到 12./debian_upgrade.sh bookworm从 Debian 12 升级到 13./debian_upgrade.sh trixie灵活的镜像源选择考虑到不同网络环境的访问速度，脚本提供多镜像源选项：官方源 (deb.debian.org)中国科学技术大学源 (mirrors.ustc.edu.cn)CERNET校园网联合源 (mirrors.cernet.edu.cn)同时支持 HTTP/HTTPS 协议切换，兼顾速度与安全性。安全升级机制自动备份：升级前会备份关键配置文件到 /root/debian_upgrade_backup_时间戳 目录，包括：软件源列表 (sources.list)源列表目录 (sources.list.d)网络配置 (interfaces)配置冲突处理：智能处理升级过程中的配置文件冲突，默认保留现有配置：# 非交互模式处理配置文件
DEBIAN_FRONTEND=noninteractive apt upgrade -y -o Dpkg::Options::=&quot;--force-confold&quot;完整日志记录：所有操作细节记录在 /var/log/debian_upgrade.log，便于问题排查。升级流程详解环境检测：验证系统版本和root权限镜像源选择：根据网络环境选择合适的软件源操作确认：提醒用户做好数据备份和准备工作系统准备：更新当前系统到最新状态并清理冗余包源配置更新：根据目标版本自动生成新的软件源配置分步升级：先执行最小升级，再进行完整系统升级重启确认：升级完成后提示用户重启系统注意事项使用前请确保：系统已备份重要数据网络连接稳定（建议有线连接）至少保留 10GB 空闲磁盘空间升级过程中避免断电（服务器建议使用UPS）总结这个自动化升级脚本通过标准化升级流程，大大降低了 Debian 版本升级的技术门槛。无论是个人用户还是企业运维人员，都可以通过简单的命令实现系统的安全升级。脚本采用模块化设计，后续可轻松扩展支持更高版本的 Debian 系统。建议首次使用时先在测试环境验证，再应用到生产系统，确保升级过程万无一失。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/39/">
<title>Linux 多发行版一键换源脚本：支持 Debian/Ubuntu/Rocky/Alma（含 DEB822 新格式）</title>
<link>https://blog.662662.xyz/archives/39/</link>
<dc:date>2025-09-09T18:44:00+00:00</dc:date>
<description>Linux 系统软件源一键切换工具：轻松配置国内镜像源在 Linux 系统使用过程中，软件源的选择直接影响包管理工具的下载速度和稳定性。对于国内用户而言，切换到国内镜像源往往能显著提升软件安装和更新效率。本文将介绍一款实用的 Shell 脚本工具，帮助你一键切换 Debian、Ubuntu、Rocky Linux 和 Alma Linux 系统的软件源，同时支持自定义镜像源配置。工具特点与优势这款软件源切换工具具备以下核心特性：多系统支持：兼容 Debian、Ubuntu、Rocky Linux 和 Alma Linux 主流发行版智能版本适配：自动识别系统版本，对 Ubuntu 24.04+ 和 Debian 12+ 采用新的 DEB822 格式源配置丰富镜像选择：内置官方源及多个国内优质镜像（中科大、南京大学、阿里云、华为云、CERNET 校园网联合源等）自定义源支持：允许用户添加和管理私有或第三方镜像源，满足个性化需求安全备份机制：自动备份当前源配置，支持历史备份管理与一键还原，防止配置丢失协议灵活选择：支持 HTTP/HTTPS 协议切换，适应不同网络环境操作简单直观：交互式菜单设计，无需手动编辑配置文件支持的镜像源说明镜像源特点推荐场景官方源最权威稳定国外服务器或需要严格兼容性的场景中国科技大学源学术机构镜像，更新及时教育网用户优先选择南京大学源镜像完整，速度稳定华东地区用户体验佳阿里云源国内访问速度快，覆盖广阿里云服务器或南方用户华为云源稳定性好，镜像同步及时华为云服务器用户CERNET 校园网联合源智能选择最佳镜像高校校园网用户江西理工大学源高校运维团队维护华南地区用户体验佳自定义源（兰州大学示例）按需配置，灵活扩展私有镜像或特殊需求场景说明：由于中国科技大学源暂不提供 Alma Linux 镜像支持，脚本为 Alma Linux 系统特别集成了江西理工大学源作为替代选择工具使用指南前提条件系统需为 Debian、Ubuntu、Rocky Linux 或 Alma Linux确保已安装 wget（可通过 apt install -y wget 或 dnf install -y wget 安装）需拥有 root 权限（可通过 sudo 执行）确保网络连接正常使用方法获取脚本主域名（江苏和四川部分地区可能被拦截）wget https://git.662662.xyz/linux/change_source.sh &amp;&amp; bash change_source.sh备用域名wget https://gitee.com/wmwlwmwl/pagoda-happy-edition/raw/master/Linux/change_source.sh &amp;&amp; bash change_source.sh操作流程运行脚本后，系统将自动检测当前发行版及版本从交互菜单中选择所需的镜像源（包括"自定义源"选项）选择适合网络环境的 HTTP/HTTPS 协议如需添加自定义源，选择对应选项后按提示输入镜像源地址和相关参数如需管理历史配置，可通过"备份管理"选项进行操作脚本自动完成备份、配置替换与缓存更新自定义镜像源配置说明工具支持添加和管理自定义镜像源，满足特殊场景需求：添加流程：在主菜单选择"自定义源"选项按提示输入镜像源名称（用于标识）输入镜像源基础 URL（如 https://mirrors.lzu.edu.cn/debian/）选择适用的系统组件或仓库类型确认配置后，脚本将自动生成对应格式的源配置文件备份管理功能说明工具内置完善的备份管理机制，为系统源配置提供安全保障：自动备份：每次更换源配置前，自动将当前配置备份至带时间戳的专用目录备份路径：Debian/Ubuntu 系统：/etc/apt/backup_时间戳Rocky/Alma Linux 系统：/etc/yum.repos.d/backup_时间戳交互管理：通过"备份管理"菜单可实现：查看所有历史备份记录（按时间排序）选择指定版本一键还原清理过期备份文件释放空间版本追溯：每个备份包含精确时间戳，便于追溯配置变更历史注意事项切换源后若出现 GPG 密钥错误，可尝试导入对应仓库的公钥（通常镜像站文档会提供导入命令）部分镜像源可能存在软件包不全的情况，若遇缺失可尝试切换其他源系统版本升级（如 Ubuntu 22.04 → 24.04）后，建议重新运行脚本更新源配置校园网用户优先选择 CERNET 源，可自动匹配最优镜像节点企业内网环境建议选择 HTTP 协议，避免证书验证问题添加自定义源时，请确保源地址的正确性和安全性，避免使用不可信的第三方源通过这款工具，即使是 Linux 新手也能轻松完成软件源配置，同时支持高级用户通过自定义源功能满足特殊需求，告别缓慢的下载速度，提升系统使用体验。工具源码开源可查，便于二次开发和功能扩展。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/38/">
<title>Linux修改SSH端口</title>
<link>https://blog.662662.xyz/archives/38/</link>
<dc:date>2024-07-04T10:55:00+00:00</dc:date>
<description>如何修改SSH默认端口修改SSH默认端口（22）可以提高服务器安全性，以下是两种常用方法：方法一：使用sed命令自动修改（推荐）通过命令行直接替换配置文件中的端口，无需手动编辑。执行以下命令，将[新端口]替换为你需要设置的端口（如2222）：# 替换注释掉的端口配置（#Port 22）
sed -i &#039;s@#Port 22@Port [新端口]@g&#039; /etc/ssh/sshd_config
# 替换已启用的端口配置（Port 22）
sed -i &#039;s@Port 22@Port [新端口]@g&#039; /etc/ssh/sshd_config重启SSH服务使配置生效：systemctl restart sshd
# 或
systemctl restart ssh方法二：手动编辑配置文件适合习惯可视化编辑的用户，步骤如下：打开SSH配置文件：vi /etc/ssh/sshd_config找到端口配置行：若显示 #Port 22（带注释），删除 # 并将 22 改为新端口；若显示 Port 22（已启用），直接将 22 改为新端口。（提示：按 i 进入编辑模式，修改后按 Esc 退出编辑）保存并退出：输入 :wq! 后按回车（强制保存并退出）。重启SSH服务使配置生效：systemctl restart sshd
# 或
systemctl restart ssh注意事项新端口建议选择1024-65535之间的未占用端口，避免与其他服务冲突；修改后需通过新端口连接SSH（如 ssh 用户名@IP地址 -p 新端口）；若服务器启用防火墙，需开放新端口的访问权限。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/37/">
<title>Ubuntu18.04LTS升级到20.04LTS升级到22.04LTS升级到24.04LTS</title>
<link>https://blog.662662.xyz/archives/37/</link>
<dc:date>2024-06-15T12:40:00+00:00</dc:date>
<description>Ubuntu 系统版本升级完整教程（含操作截图指引）准备工作：系统更新与清理在进行版本升级前，需先确保当前系统软件包为最新状态，避免因依赖问题导致升级失败：更新软件包列表并升级已安装软件：sudo apt update -y
sudo apt upgrade -y移除不再需要的依赖包和冗余文件，释放磁盘空间：sudo apt autoremove -y升级步骤（含交互提示与截图对应）1. 安装升级管理工具Ubuntu 版本升级依赖 update-manager-core 工具，执行以下命令安装：sudo apt install update-manager-core -y2. 启动版本升级过程输入核心升级命令，触发系统版本迭代流程：sudo do-release-upgrade3. 升级过程中的交互提示处理（截图对应操作）提示1：SSH 备用端口确认若通过 SSH 远程连接服务器升级，会提示“在 1022 端口启动额外 SSH 守护进程（防止主连接中断）”，对应截图如下：  操作：输入 y 继续。提示2：信息确认回车出现“To continue please press [ENTER]”提示，对应截图如下：  操作：按下回车键继续。提示3：继续升级确认显示“Continue [yN]  Details [d]”选项，对应截图如下：  操作：输入 y 确认继续升级。提示4：服务重启配置进入“Configuring libc6”界面，提示“Restart services during package upgrades without asking?”，对应截图如下：  操作：按 TAB 键切换到 &lt;Yes&gt; 选项，按下回车键确认。提示5：crontab 配置文件选择出现“* crontab (Y/I/N/O/D/Z) [default=N] ?”提示（选择是否使用新版本 crontab 配置），对应截图如下：  操作：全新系统/无自定义配置：输入 y 使用新版本有自定义 crontab 规则：输入 n 保留原版本提示6：sshd_config 配置文件处理提示“modified configuration file sshd_config”（本地修改过 SSH 配置文件，需选择处理方式），对应截图如下：  操作：按 ↓ 键选择第 2 项（通常为“保留本地修改版本”），按下回车键。提示7：升级继续确认再次出现“Continue [yN]  Details [d]”提示，对应截图如下：  操作：输入 y 继续。提示8：系统重启确认升级完成后提示“System upgrade is complete. Restart required”，对应截图如下：  操作：输入 y 自动重启系统。提示9：升级成功验证系统重启后重新连接，若显示“Welcome to Ubuntu 20.04.6 LTS”，对应截图如下：  说明：此时已成功升级到 Ubuntu 20.04 LTS 版本。升级到更高版本（如 20.04 → 22.04 → 24.04）Ubuntu 版本升级需逐级迭代（无法跨版本直接升级），若需继续升级到更高版本：重复上述“准备工作”（更新软件包、清理冗余文件）再次执行核心升级命令：sudo do-release-upgrade按照相同的交互提示流程操作，直至升级到目标版本。关键注意事项数据备份：升级前务必备份重要文件（如配置文件、业务数据），避免意外中断导致数据丢失。磁盘空间：确保系统空闲磁盘空间≥10GB，不足时可通过 df -h 查看并清理冗余文件。网络稳定性：升级过程需持续下载软件包，建议使用有线网络或稳定的无线网络，避免中断。时间预估：升级耗时取决于网络速度和系统配置，通常为 30 分钟~2 小时，请勿中途强制关机。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/27/">
<title>Linux设置登录提示</title>
<link>https://blog.662662.xyz/archives/27/</link>
<dc:date>2024-06-11T16:53:00+00:00</dc:date>
<description>如何在 Linux 登录时显示自定义提示或图案在 Linux 系统中，你可以通过编辑 /etc/motd 文件（Message of the Day，即日提示信息），设置用户登录后看到的欢迎信息、提示内容或趣味图案。配置方法编辑或创建 motd 文件：vi /etc/motd（如果文件不存在，此命令会自动创建）在文件中添加你想要显示的内容（文字或图案），按 i 进入编辑模式，完成后按 Esc，输入 :wq 保存退出。无需重启服务，下次登录时即可看到效果。关于 /etc/motd 的说明motd 是 "Message of the Day" 的缩写，内容会在用户成功登录后显示该文件通常是普通文本文件，但部分系统中可能是软链接（如链接到 /var/run/motd）支持纯文本格式，可包含 ASCII 字符组成的图案、系统提示、欢迎语等实用示例：有趣的登录图案以下是几个常用的 ASCII 艺术图案示例，可直接复制到 /etc/motd 中使用：示例 1：佛祖保佑图案                   _ooOoo_
                  o8888888o
                  88&quot; . &quot;88
                  (| -_- |)
                  O\  =  /O
               ____/`---&#039;\____
             .&#039;  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  &#039;&#039;\---/&#039;&#039;  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .&#039;  /--.--\  `. . __
      .&quot;&quot; &#039;&lt;  `.___\_&lt;|&gt;_/___.&#039;  &gt;&#039;&quot;&quot;.
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-&#039;======
                   `=---=&#039;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           佛祖保佑       永不宕机示例 2：奋斗激励图案          __   _,--=&quot;=--,_   __
         /  \.&quot;    .-.    &quot;./  \
        /  ,/  _   : :   _  \/` \
        \  `| /o\  :_:  /o\ |\__/
         `-&#039;| :=&quot;~` _ `~&quot;=: |
            \`     (_)     `/
     .-&quot;-.   \      |      /   .-&quot;-.
.---{     }--|  /,.-&#039;-.,\  |--{     }---.
 )  (_)_)_)  \_/`~-===-~`\_/  (_(_(_)  (
(              GO GO GO GO              )
 )                                     (
&#039;---------------------------------------&#039;扩展技巧可以在图案中添加系统信息，例如使用脚本动态生成当前时间、负载等（需结合 update-motd 机制）避免使用过多特殊字符，部分终端可能无法正常显示如需临时关闭提示，可清空文件内容：echo &quot;&quot; &gt; /etc/motd通过自定义 motd，既能增加登录时的趣味性，也能添加实用的系统提示信息，适合个人服务器或团队使用的 Linux 环境。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/26/">
<title>Linux修改系统主机名</title>
<link>https://blog.662662.xyz/archives/26/</link>
<dc:date>2024-06-11T16:46:00+00:00</dc:date>
<description>如何修改 Linux 系统的主机名修改 Linux 系统的主机名有两种常用方法，操作简单且效果持久，以下是详细步骤：方法一：使用 hostnamectl 命令（推荐）hostnamectl 是 systemd 系统中专门用于管理主机名的工具，修改后无需重启即可生效。执行以下命令，将 [新主机名] 替换为你想要设置的名称（如 wuming）：hostnamectl set-hostname [新主机名]示例（将主机名改为 wuming）：hostnamectl set-hostname wuming修改后立即生效，可通过 hostname 命令验证：hostname  # 输出新设置的主机名方法二：手动编辑配置文件通过直接修改 /etc/hostname 文件来设置主机名，适合习惯手动编辑配置的场景。打开主机名配置文件：vi /etc/hostname编辑文件内容：按 i 进入编辑模式删除原有内容，输入新的主机名（如 wuming）按 Esc 退出编辑模式保存并退出：输入 :wq! 后按回车（强制保存并退出）。重启系统使修改生效：reboot注意事项主机名建议使用字母、数字、连字符（-）或下划线（_），避免特殊字符修改后，可通过 hostname 或 hostnamectl 命令确认是否生效部分系统可能还需要同步修改 /etc/hosts 文件（将旧主机名替换为新主机名），以避免本地解析问题两种方法均可永久修改主机名，推荐优先使用 hostnamectl 命令，操作更简便且无需重启。</description>
</item>
<item rdf:about="https://blog.662662.xyz/archives/25/">
<title>docker执行容器内的脚本</title>
<link>https://blog.662662.xyz/archives/25/</link>
<dc:date>2024-05-21T08:02:00+00:00</dc:date>
<description>Docker容器操作指南：执行命令与设置开机自启一、连接并操作正在运行的Docker容器1. 查看容器信息直接获取需操作的容器ID或名称（无需额外权限）：docker ps命令会列出所有运行中容器，重点关注两列信息：列名示例值CONTAINER ID212cfc09b7edNAMES1Panel-php7-3T4d2. 连接到容器通过docker exec以交互式方式进入容器，方便后续操作：docker exec -it &lt;容器ID或名称&gt; /bin/sh说明：-it确保交互式连接（可输入命令）；&lt;容器ID或名称&gt;替换为实际标识（如212cfc09b7ed或1Panel-php7-3T4d）；/bin/sh为容器默认shell（部分容器需用/bin/bash）。二、在容器中执行PHP任务（以彩虹聚合DNS为例）1. 方法一：通过脚本执行（适合需延迟/复杂逻辑）在宿主机目标目录创建脚本文件（如dns.sh）：vi /www/sites/dns/index/dns.sh写入脚本内容（延迟20秒确保数据库启动，无需可删除）：sleep 20  # 适配彩虹聚合DNS依赖的数据库启动时间
cd /www/sites/dns/index/ &amp;&amp; php think dmtask给脚本添加执行权限：chmod +x /www/sites/dns/index/dns.sh让容器执行脚本：docker exec -it &lt;容器ID或名称&gt; /bin/sh /www/sites/dns/index/dns.sh2. 方法二：直接执行PHP命令（简化操作）无需创建脚本，直接在容器内运行PHP任务，支持后台执行：docker exec &lt;容器ID或名称&gt; sh -c &quot;php /www/sites/dns/index/think dmtask&quot;优势：省略脚本步骤，docker会自动后台运行，退出终端不影响任务执行。三、设置开机自启动（用cron @reboot 实现）通过cron的@reboot选项，让系统重启后自动执行容器内的PHP任务，比rc.local更灵活稳定。1. 编辑当前用户的crontab配置执行以下命令打开crontab编辑界面：crontab -e首次编辑会提示选择编辑器（如nano或vi），按提示选择常用编辑器即可（如输入2选择vi）。2. 添加开机自启任务在crontab文件末尾添加以下内容（根据实际场景选择命令）：场景1：直接执行PHP命令（推荐）@reboot sleep 20; docker exec &lt;容器ID或名称&gt; sh -c &quot;php /www/sites/dns/index/think dmtask&quot;示例（用容器名称1Panel-php7-3T4d，更稳定）：@reboot sleep 20; docker exec 1Panel-php7-3T4d sh -c &quot;php /www/sites/dns/index/think dmtask&quot;场景2：执行脚本文件若用之前创建的dns.sh脚本，可添加：@reboot docker exec &lt;容器ID或名称&gt; /bin/sh /www/sites/dns/index/dns.sh说明：若脚本内已包含sleep 20，此处无需重复添加延迟。3. 保存并退出crontab若用vi编辑器：按Esc，输入:wq回车保存退出；若用nano编辑器：按Ctrl+O回车保存，再按Ctrl+X退出。4. 验证crontab配置执行以下命令查看当前用户的crontab任务，确认配置已生效：crontab -l若输出中包含刚才添加的@reboot任务，说明配置成功。四、注意事项容器标识选择：优先用容器名称（如1Panel-php7-3T4d），而非容器ID——容器重建后ID会变化，名称通常不变，避免频繁修改配置。延迟时间调整：sleep 20（20秒）需根据实际环境调整，确保系统重启后，docker服务、容器及依赖的数据库完全启动后，再执行PHP任务（可根据实际启动速度改为30或40秒）。权限问题：若执行docker命令提示权限不足，需确认当前用户已加入docker用户组（可联系管理员执行usermod -aG docker 用户名添加，添加后需重新登录生效）。日志排查：若开机后任务未执行，可查看cron日志排查问题（Debian/Ubuntu系统日志路径：/var/log/syslog，搜索关键词CRON；CentOS系统日志路径：/var/log/cron）。</description>
</item>
</rdf:RDF>