首页
关于
友链
Search
1
ESXI 一些功能调整
626 阅读
2
天翼云网关3.0/4.0超管密码
564 阅读
3
SoftEther 客户端篇
528 阅读
4
SoftEther 服务端篇
440 阅读
5
Centos安装个人网盘Alist v3教程
384 阅读
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
Ai
登录
Search
标签搜索
python
esxi
git
SoftEther
linux
apscheduler
在线
rclone
飞牛
list
列表
idm
激活码
Charles
pdf
免安装
鲁大师
图片查看器
蜂蜜浏览器
honeyview
哥特式
累计撰写
111
篇文章
累计收到
15
条评论
首页
栏目
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
Ai
页面
关于
友链
搜索到
39
篇与
的结果
2025-11-20
git的一些操作
标签# 查看已有标签: git tag # 查看标签详情(备注): git tag -n # 创建标签: git tag -a v0.0.1 -m "标签的备注" # 推送标签: git push origin v0.0.1
2025年11月20日
5 阅读
0 评论
0 点赞
2025-11-17
Windows系统打包备份
它们能自动处理系统分区、引导分区,并自带一个可启动的恢复环境,直接生成一个能用来安装系统的U盘或ISO文件。以下是几个非常流行且强大的选择:AOMEI Backupper(傲梅轻松备份) - 强烈推荐这款软件对个人用户免费,功能强大且界面非常友好,是DiskGenius方案的最佳替代品。操作流程:在虚拟机中准备:启动您的Win10虚拟机。下载并安装 AOMEI Backupper Standard。(可选但推荐)运行磁盘清理,减少体积。依然建议运行 sysprep /oobe /generalize /shutdown 进行通用化,以确保系统可以部署到其他电脑。创建系统备份镜像:运行AOMEI Backupper。选择 “备份” -> “系统备份”。关键优势: 软件会自动选择所有系统启动所必需的分区(包括EFI分区和MSR分区),您无需手动选择。您只需要选择备份文件存放的位置(比如虚拟机里的D盘,或者一个网络位置)。点击“开始备份”。它会生成一个单一的、包含所有系统的镜像文件(.adi格式)和一些描述信息。创建可启动恢复介质:在软件主界面找到 “工具” -> “创建可启动媒体”。选择创建类型(推荐基于Linux或Windows PE的介质,兼容性更好)。选择输出方式为 “ISO文件”。程序会自动引导您生成一个.iso文件。这个ISO就是您的“自定义安装盘”!如何使用这个ISO安装系统?在任何一台新电脑(物理机或新虚拟机)上,用这个ISO启动。它会直接进入AOMEI Backupper的恢复界面。使用 “还原” 功能,选择您之前备份好的那个.adi系统镜像文件。软件会自动识别目标硬盘,您只需点击“开始还原”,它就会自动将整个系统(包括引导)写入硬盘。重启电脑,您熟悉的、带着所有设置和软件的Windows就出现了。
2025年11月17日
6 阅读
0 评论
0 点赞
2025-11-12
HBuilderX CLI注意事项
1. 官网地址:https://hx.dcloud.net.cn/cli/README2. 注意事项cli open./cli open -1 :open: 操作超时安装依赖apt install -y libgl1 libharfbuzz0b
2025年11月12日
4 阅读
0 评论
0 点赞
2025-09-11
飞牛遇到的一些问题
1. 个人空间与实际使用不符合#!/bin/bash btrfs quota rescan -w /vol12. 回收站内容不会自动清理比如我需要清理的是网络备份这个回收站目录下的文件#!/bin/bash # 定义要清理的目录 TRASH_DIR="/vol2/1000/.@#local/trash/网络备份" # 定义日志文件位置 LOG_FILE="/vol2/1000/网络备份/clean_network_back.log" # 获取当前时间,用于日志记录 echo "=== 清理任务开始于 $(date) ===" >> "$LOG_FILE" 2>&1 # 检查目标目录是否存在 if [ -d "$TRASH_DIR" ]; then # 计算清理前的目录大小 BEFORE_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) BEFORE_SIZE=${BEFORE_SIZE:-0} # 如果目录为空或不存在,设为0 # 执行删除操作,强制删除目录下的所有文件和子目录 # 使用 /bin/rm 的绝对路径以避免别名问题 /bin/rm -rf -- "$TRASH_DIR"/* >> "$LOG_FILE" 2>&1 # 计算清理后的目录大小 AFTER_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) AFTER_SIZE=${AFTER_SIZE:-0} # 如果目录为空或不存在,设为0 # 计算释放的空间(字节) FREED_SPACE=$((BEFORE_SIZE - AFTER_SIZE)) # 格式化显示空间大小 format_size() { local bytes=$1 if [ $bytes -ge 1073741824 ]; then echo "$(echo "scale=2; $bytes/1073741824" | bc) GB" elif [ $bytes -ge 1048576 ]; then echo "$(echo "scale=2; $bytes/1048576" | bc) MB" elif [ $bytes -ge 1024 ]; then echo "$(echo "scale=2; $bytes/1024" | bc) KB" else echo "${bytes} B" fi } FREED_SPACE_FORMATTED=$(format_size $FREED_SPACE) echo "成功清理目录 $TRASH_DIR 下的所有内容。" >> "$LOG_FILE" 2>&1 echo "释放空间: $FREED_SPACE_FORMATTED" >> "$LOG_FILE" 2>&1 echo "清理详情: 清理前 $(format_size $BEFORE_SIZE), 清理后 $(format_size $AFTER_SIZE)" >> "$LOG_FILE" 2>&1 else echo "错误:目录 $TRASH_DIR 不存在,清理任务已中止。" >> "$LOG_FILE" 2>&1 fi echo "=== 清理任务结束于 $(date) ===" >> "$LOG_FILE" 2>&1 echo "" >> "$LOG_FILE" 2>&1将脚本放到某个目录下,比如我的放到的是**/网络备份/clean_network_back.sh使用crontab来做定时任务# 查看当前任务 crontab -l # 编辑任务 crontab -e增加一行# 分别对应秒分时天月 0 8 * * * /vol2/1000/网络备份/clean_network_back.sh
2025年09月11日
14 阅读
0 评论
0 点赞
2025-08-07
Windows使用wsl开发
安装wsl1. 安装wsl --install2. 重启电脑使用可以直接在资源管理器里面输入这个链接\\wsl$\Ubuntu\home\你的用户名cmd里面使用wsl -d Ubuntu # 默认root用户 ubuntu config --default-user root
2025年08月07日
6 阅读
0 评论
0 点赞
2025-07-12
rclone 配置同步
配置 MinIO 连接示例:n) New remote name> myminio Storage> s3 provider> Other env_auth> false access_key_id> YOUR_MINIO_ACCESS_KEY secret_access_key> YOUR_MINIO_SECRET_KEY region> us-east-1 endpoint> http://your-minio-server:9000 location_constraint> acl> storage_class> 配置 AWS S3 连接示例:n) New remote name> mys3 Storage> s3 provider> AWS env_auth> false access_key_id> YOUR_AWS_ACCESS_KEY secret_access_key> YOUR_AWS_SECRET_KEY region> ap-northeast-1 endpoint> location_constraint> acl> storage_class> 基本同步命令单向同步(MinIO → S3)rclone sync myminio:bucket1 mys3:bucket2双向同步(保持两端一致)rclone bisync myminio:bucket1 mys3:bucket2高级同步选项增量同步(只传输变化的部分)rclone sync --update myminio:bucket1 mys3:bucket2
2025年07月12日
8 阅读
0 评论
0 点赞
2025-07-10
minio命令
客户端配置# 配置别名(连接远程MinIO服务器) mc alias set myminio http://localhost:9000 ACCESS_KEY SECRET_KEY # 示例: mc alias set myminio http://127.0.0.1:9000 username password # 列出所有配置的别名 mc alias list存储桶操作# 创建存储桶 mc mb myminio/mybucket # 列出所有存储桶 mc ls myminio # 删除空存储桶 mc rb myminio/mybucket # 强制删除非空存储桶 mc rb --force myminio/mybucket对象操作# 上传文件 mc cp localfile.txt myminio/mybucket/ # 下载文件 mc cp myminio/mybucket/remotefile.txt . # 列出存储桶内容 mc ls myminio/mybucket # 删除对象 mc rm myminio/mybucket/file.txt # 递归删除目录 mc rm --recursive myminio/mybucket/mydir策略管理# 设置存储桶为公开可读 mc anonymous set download myminio/mybucket # 设置存储桶为私有 mc anonymous set none myminio/mybucket # 添加用户 mc admin user add myminio newuser newpassword # 设置用户策略 mc admin policy set myminio readwrite user=newuser监控与维护# 查看服务器信息 mc admin info myminio # 查看服务健康状态 mc admin heal myminio # 查看存储桶使用情况 mc du myminio/mybucket高级功能# 设置对象保留策略 mc retention set --default GOVERNANCE 30d myminio/mybucket # 设置对象锁定(合规模式) mc retention set --default COMPLIANCE 30d myminio/mybucket # 启用版本控制 mc version enable myminio/mybucket # 列出对象版本 mc ls --versions myminio/mybucket管理用户mc admin user # 创建用户 mc admin user add <alias> <username> <password> # 示例:创建名为reports的用户 mc admin user add myminio reports user123456 # 列出所有用户 mc admin user list <alias> # 示例:列出myminio的所有用户 mc admin user list myminio # 查看用户信息 mc admin user info <alias> <username> # 示例:查看reports用户信息 mc admin user info myminio reports # 禁用用户 mc admin user disable <alias> <username> # 示例:禁用reports用户 mc admin user disable myminio reports # 启用用户 mc admin user enable <alias> <username> # 示例:重新启用reports用户 mc admin user enable myminio reports # 删除用户 mc admin user remove <alias> <username> # 示例:删除reports用户 mc admin user remove myminio reports用户策略管理# 为用户分配策略 mc admin policy attach <alias> <policy-name> --user=<username> # 示例:为reports用户分配readonly策略 mc admin policy attach myminio readonly --user=reports # 查看用户当前策略 mc admin policy info <alias> --user=<username> # 示例:查看reports用户的策略 mc admin policy info myminio --user=reports # 解除用户策略 mc admin policy detach <alias> <policy-name> --user=<username> # 示例:移除reports用户的readonly策略 mc admin policy detach myminio readonly --user=reports用户密钥管理# 修改用户密码 mc admin user update <alias> <username> <new-password> # 示例:修改reports用户密码 mc admin user update myminio reports newpassword123 # 生成临时访问密钥 mc admin user svcacct add <alias> <username> # 示例:为reports用户创建服务账户 mc admin user svcacct add myminio reports高级用户配置# 创建带策略的新用户(一步完成) mc admin user add <alias> <username> <password> --policy-name=<policy> # 示例:创建带writeonly策略的用户 mc admin user add myminio uploader upload123 --policy-name=writeonly # 设置用户描述信息 mc admin user update <alias> <username> --description="User description" # 示例:设置用户描述 mc admin user update myminio reports --description="Monthly reports generator"用户管理实际使用案例# 1. 创建管理员用户 mc admin user add myminio admin admin123 mc admin policy attach myminio consoleAdmin --user=admin # 2. 创建只读用户 mc admin user add myminio viewer view123 mc admin policy attach myminio readonly --user=viewer # 3. 创建特定存储桶权限用户 # 先创建自定义策略文件bucket-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": ["arn:aws:s3:::reports-bucket/*"] } ] } # 添加策略 mc admin policy create myminio reports-reader bucket-policy.json # 创建用户并附加策略 mc admin user add myminio report-reader reader123 mc admin policy attach myminio reports-reader --user=report-reader配置同步mc mirror -w old new
2025年07月10日
18 阅读
0 评论
0 点赞
2025-06-24
github代理地址
1. 使用方法直接在对应的GitHub地址前面加内容2. 维护的地址https://ghm.078465.xyz/
2025年06月24日
15 阅读
0 评论
0 点赞
2024-11-29
阿里云CDN使用
1. 阿里云配置一个cdn,一切默认就行新建一个cdn,域名就是,泛域名类型的.cdn.example.com源站,因为家里的80和443是没了的,所以使用的是65000,例如:test.example.com:650001.1 基本设置-->ipv6开关可以根据自己的需求设置是否打开1.2 回源配置-->IPv6回源优先使用IPv6-->已开启回源跟随-->未开启回源IPv4/IPv6轮询-->已开启1.3 性能优化-->忽略参数这里需要修改一下,要不然某些参数会被忽略忽略参数-->否2. 新建一个网站默认就行,监听的端口是65000,不是默认的80,配置一个反向代理反代到frps的端口号,比如650803. 对应的服务器上配置frp3.1 frps的配置bindAddr = "0.0.0.0" # 服务端监听端口 bindPort = 52101 # 服务端监听 KCP 协议端口,用于接收配置了使用 KCP 协议的 frpc 连接。 kcpBindPort = 52101 # 在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。 auth.token = "token.example" # http端口,不要设置80,否则和宝塔面板的端口号冲突 vhostHTTPPort = 65080 # https端口,不要设置443 vhostHTTPSPort = 65443 # 二级域名后缀 subDomainHost = "cdn.example.com" # 开启frps仪表盘可以检查frp的状态和代理的统计信息。 webServer.addr = "0.0.0.0" webServer.port = 65002 webServer.user = "example" webServer.password = "example" enablePrometheus = true # 日志配置文件 # 日志文件,不指定日志信息默认输出到控制台 log.to = "./logs/cdn-example.log" # 日志等级,可用等级“trace,debug,info,warn,error” log.level = "info" # 日志保存最大时间 log.maxDays = 3 log.disablePrintColor = false # 自定义默认的404页面 custom404Page = "./frp/404.html"3.2 frpc的配置# 用户名,设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突。 user = "daimaji" serverAddr = "127.0.0.1" serverPort = 52101 # 登录失败就退出 loginFailExit = true # 控制台日志文件 log.to = "./cdn-example.log" # trace, debug, info, warn, error log.level = "info" log.maxDays = 3 # 当log.to是控制台时禁用日志颜色,默认值为false log.disablePrintColor = false # 认证方式 auth.method = "token" # 令牌 auth.token = "token.example" # 控制面板设置 webServer.addr = "0.0.0.0" webServer.port = 65002 webServer.user = "example" webServer.password = "example" # 将提前建立连接,默认值为零 transport.poolCount = 5 #用于连接到服务器的通信协议 #现在支持tcp、kcp、quic、websocket和wss,默认为tcp transport.protocol = "tcp" #连接服务器时设置客户端绑定ip,默认为空。 #只有当protocol=tcp或websocket时,才会使用该值。 transport.connectServerLocalIP = "0.0.0.0" [[proxies]] name = "测试" type = "http" localIP = "127.0.0.1" localPort = 65003 subdomain = "test"4. 访问测试
2024年11月29日
42 阅读
0 评论
0 点赞
2024-11-12
远程桌面rustdesk使用说明
项目地址:https://github.com/rustdesk/rustdesk/1. 公网服务器上跑docker项目docker-compose.yml文件:networks: rustdesk-net: external: false services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command: hbbs -r 你的域名:21117 -k {key值,自己设定} volumes: - ./data:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root networks: - rustdesk-net restart: unless-stopped默认配置就行2. 配置客户端2.1 直接配置客户端电脑上:手机上:2.2. GitHub配置,自动编译版本{callout color="#80b8f5"}访问rustdesk的项目地址。点击Fork创建分支。(就是把别人的项目拉一份到你的项目库中){/callout}{callout color="#80b8f5"}默认配置就行{/callout}{callout color="#80b8f5"}配置环境变量{/callout}这里,分别创建两个变量RENDEZVOUS_SERVER 服务器IP或域名RS_PUB_KEY key值{callout color="#80b8f5"}点击Actions-General 勾选Allow all actions and reusable workflows后保存。{/callout}在没有变动情况下,默认都是勾选的。{callout color="#80b8f5"}接下来,选择Actions启用工作流。{/callout}刷新页面,便可以看到当前的任务。{callout color="#f0ad4e"}这里的任务需要很久,大概40-50分钟左右{/callout}创建完成后,在Releases中便可以看到对应的包了。{callout color="#80b8f5"}使用{/callout}这里以Windows为例。运行后在网络配置中,无需填写相关服务器信息。在无P2P直连环境,便可以直连了。删除下面代码 位置\rustdesk-master\src\ui\index.tis完成后,重新打包。界面就好看多了
2024年11月12日
384 阅读
1 评论
0 点赞
2024-07-31
acme更新ssl证书
acme实用技巧:稳妥的自动更新证书之宝塔面板_acme证书-CSDN博客acme实用技巧:稳妥的自动更新证书之宝塔面板1. 安装 acme.sh安装很简单, 一个命令:curl https://get.acme.sh | sh -s email=my@example.com把 my@example.com 改成自己的邮箱安装成功后,会为你自动创建定时任务, 如果快过期了, 需要更新, 则会自动更新证书。默认情况下,证书将每60天更新一次。*切换默认证书目前 acme.sh 支持 Let’s Encrypt、Buypass、ZeroSSL、SSL.com 和 Google Public CA,默认使用 ZeroSSL,如果需要更换可以使用下面命令:#切换 Let's Encrypt acme.sh --set-default-ca --server letsencrypt #切换 Buypass acme.sh --set-default-ca --server buypass #切换 ZeroSSL acme.sh --set-default-ca --server zerossl #切换 SSL.com acme.sh --set-default-ca --server ssl.com #切换 Google Public CA acme.sh --set-default-ca --server google2. 设置DNS验证文档:https://github.com/acmesh-official/acme.sh/wiki/dnsapi以 CloudFlare为例:使用全局API密钥准备:全局API密钥在 我的个人资料–API令牌–Global API Key 获得设置CloudFlare DNS自动验证使用下面命令:export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4" #API密钥 export CF_Email="123456@qq.com" #登录邮箱3. 生成证书如果之前安装过证书,后面加 --force 参数,acme.sh --issue --dns dns_cf -d xxx.com -d *.xxx.com成功之后,会在 ~/.acme.sh/目录生成以域名为名称的文件夹,里面包含了证书和各种信息不要通配符,可以去掉:-d *.xxx.com ,如果有多个子域名,后面加 -d x.xxx.com--dns dns_cf 表示使用CloudFlare DNS 自动验证4. 安装证书(重点)假设:你网站使用的是nginx,使用以下命令acme.sh --install-cert -d xxx.com -d *.xxx.com \ --key-file /www/server/panel/vhost/cert/xxx.com/privkey.pem \ --fullchain-file /www/server/panel/vhost/cert/xxx.com/fullchain.pem \ --reloadcmd "service nginx force-reload"使用这条命令时先要生成证书(第三步)不要通配符,可以去掉:-d *.xxx.com ,如果有多个子域名,后面加 -d x.xxx.com命令解读--install-cert #安装证书--key-file #指定安装证书密钥路径--fullchain-file #指定安装证书路径--reloadcmd #重新加载nginx生效为什么要使用那么多参数因为acme证书虽然60天更新一次,但是更新的证书路径是:~/.acme.sh/xxx.com你的域名指向的证书路径并不是在 ~/.acme.sh/不能使用~/.acme.sh/文件夹中的证书文件,它们仅供内部使用,文件夹结构将来可能会更改这些参数会被acme保存起来,下次自动更新时就会自动把证书安装到指定的路径,然后帮你重新加载nginx生效宝塔面板安装证书你要先知道你的域名证书指向的路径在哪,以宝塔面板为例:/www/server/panel/vhost/cert/xxx.com/fullchain.pem /www/server/panel/vhost/cert/xxx.com/privkey.pem可以看到宝塔的证书路径是:/www/server/panel/vhost/cert/如果还没有安装过证书,那么此路径是没有域名证书文件夹的,宝塔面板默认的证书路径格式是:/www/server/panel/vhost/cert/{域名}所以,生成证书后,到~/.acme.sh/目录下找到域名文件夹,复制证书fullchain.cer #证书 xx.com.key #密钥复制到配置ssl证书的地方, 再查看证书路径:最后再执行以下命令,记得修改为你的证书路径acme.sh --install-cert -d xxx.com -d *.xxx.com \ --key-file /www/server/panel/vhost/cert/xxx.com/privkey.pem \ --fullchain-file /www/server/panel/vhost/cert/xxx.com/fullchain.pem \ --reloadcmd "service nginx force-reload"不是复制了证书生效了吗,为什么还要执行上面的命令?因为这些参数会被保存起来,之后的自动更新才有效!5. 签发ECC证书使用以下命令 (以nginx为例)acme.sh --install-cert -d xxx.com -d *.xxx.com --keylength ec-256 \ --key-file /www/server/panel/vhost/cert/xxx.com/privkey.pem \ --fullchain-file /www/server/panel/vhost/cert/xxx.com/fullchain.pem \ --reloadcmd "service nginx force-reload"多了 --keylength ec-256 参数6.强制更新证书所有证书将每60天自动更新一次,但你要强制更新的话acme.sh --renew -d xxx.com --force或者,对于ECC证书:acme.sh --renew -d xxx.com --force --ecc如何停止证书续订要停止证书的续订,您可以执行以下操作以从续订列表中删除证书:acme.sh --remove -d xxx.com [--ecc]不会从磁盘中删除证书/密钥文件。您可以自己删除相应的目录 (例如 ~/.acme.sh/xxx.com )。如何升级 acme.sh您可以将acme.sh更新为最新代码:acme.sh --upgrade您还可以启用自动升级:acme.sh --upgrade --auto-upgrade然后acme.sh将自动保持最新。禁用自动升级:acme.sh --upgrade --auto-upgrade 0
2024年07月31日
74 阅读
1 评论
1 点赞
2024-05-26
可道云配置
修改的东西app/function/web.function.php// 增加最后的判断: || $_SERVER['HTTP_CF_VISITOR'] function http_type(){ if( (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || $_SERVER['SERVER_PORT'] === 443 || $_SERVER['HTTP_CF_VISITOR'] ){ return 'https'; } return 'http'; } function get_host() { $httpType = http_type(); // 增加这里 $port = $_SERVER['SERVER_PORT']=='80' ? '' : ':'.$_SERVER['SERVER_PORT']; $host = $_SERVER['SERVER_NAME'].$port; $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'].$port : $host; // 修改的内容结束 if(isset($_SERVER['HTTP_X_FORWARDED_HOST'])){//proxy $hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']); $host = trim($hosts[0]); }else if(isset($_SERVER['HTTP_X_FORWARDED_SERVER'])){ $host = $_SERVER['HTTP_X_FORWARDED_SERVER']; } // 如果域名相同 则根据referer自适应https; if(isset($_SERVER['HTTP_REFERER'])){ $urlInfo = parse_url($_SERVER['HTTP_REFERER']); if($urlInfo['host'] == trim($host,'/')){ if($httpType == 'http' && $urlInfo['scheme'] == 'https'){$httpType = 'https';} } } return $httpType.'://'.trim($host,'/').'/'; }最新的安装包反代的时候有问题,下载以前的https://static.kodcloud.com/update/download/kodbox.1.40.zip
2024年05月26日
76 阅读
0 评论
0 点赞
2024-05-25
Linux命令记录
1. 互传文件scp -r /www/wwwroot root@ip:/www/wwwroot
2024年05月25日
32 阅读
0 评论
0 点赞
2024-05-21
简单几步将Ubuntu 22.04 LTS升级到Ubuntu 24.04 LTS
简单几步将Ubuntu 22.04 LTS升级到Ubuntu 24.04 LTSUbuntu 24.04 LTS稳定版本(代号Noble Numbat )于2024年4月25日正式发布,如果你想知道其中的内容,现在可以从较低版本升级到该版本进行功能测试。就像每个新的Ubuntu版本一样,Ubuntu 24.04附带了最新功能,包括最新、最好的软件,例如Linux内核、GNOME 46和更新的工具链。想了解更多功能更新,可以从Ubuntu发行说明中找到有关更新内容。重要的是,Ubuntu 24.04 LTS将为Ubuntu Desktop、Ubuntu Server和Ubuntu Core提供为期5年的支持,也就是将会持续到2029年4月份。在本文当中,小编主要介绍如何将Ubuntu 22.04系统升级到最新Ubuntu 24.04 LTS,一起来看看注意的过程步骤吧!检查系统版本:lsb_release -a第1步:备份Ubuntu数据要在升级到Ubuntu 24.04之前,务必将Ubuntu 22.04上的数据备份到外部驱动器,可以按照以下几个步骤进行操作。首先,插入外部存储设备(例如USB驱动器或外部硬盘驱动器),并确保你的计算机可以识别它。打开终端并输入“ lsblk ”以在列表中查找你的外部驱动器,该驱动器可能类似于“/ dev/sdb1 ”。识别外部驱动器之后,可以通过运行df命令并在输出中查找与外部驱动器标识符(例如/dev/sdb1 )对应的条目来找到其挂载(mount)点。挂载点将列在该条目的第二列中,通常看起来像“ /mnt/external ”或“ /media/username/external ”。此挂载点是你的外部驱动器当前连接并可在系统中访问的位置。使用rsync命令将主目录备份到外部驱动器:rsync -av --progress /home/username /path/to/external/drive使用tar命令创建主目录的压缩存档并将其保存到外部驱动器:tar -cvzf /path/to/external/drive/backup_home.tar.gz /home/username注意:将/path/to/external/drive替换为外部驱动器的路径,将/home/username替换为主目录的路径。此外,你还可以使用Deja Dup或Timeshift等图形备份工具将数据备份到外部驱动器。选择适合自己的方式就行,不管选择哪种,只要能够备份好数据就行。第2步:准备Ubuntu系统升级在开始升级系统之前,确保需要任何更新非常重要。之后,更新并升级你当前的软件包。升级完成后,重新启动系统,以便所有更改都能正常工作。sudo apt list --upgradable sudo apt update && sudo apt upgrade -y reboot第三步:将 Ubuntu22.04 LTS升级到24.04 LTS如果通过SSH升级,请确保在ufw防火墙上打开TCP端口1022,以便在升级过程中保持稳定的连接:sudo ufw allow 1022/tcp如果你可以物理访问Ubuntu桌面并在本地升级,则无需打开任何端口,只需安装Update Manager Core工具,这将确保安装升级所需的所有工具:sudo apt install update-manager-core安装Update Manager Core之后,通过输入以下命令启动升级过程:sudo do-release-upgrade -d如果系统没有找到新版本,并且出现以下错误的话:Checking for a new Ubuntu release There is no development version of an LTS available. To upgrade to the latest non-LTS development release set Prompt=normal in /etc/update-manager/release-upgrades.出现此错误消息表明你正在尝试升级到不存在的Ubuntu LTS版本的开发版本。以下是发生的情况以及解决方法:Ubuntu版本有两种主要类型:LTS(长期支持)和非LTS(开发版本)。无法直接从LTS版本(例如22.04 LTS)升级到开发版本(当前不可用)。系统通知你当前LTS ( 24.04 LTS ) 尚无开发版本。由于你想从Ubuntu 22.04 LTS升级到最新的LTS版本 ( 24.04 LTS ),因此需要执行以下操作。打开/etc/update-manager/release-upgrades升级配置文件,并将“ Prompt ”的值更改为“ normal ”,这样可以确保你收到有关升级的通知,并可以选择是否继续。sudo nano /etc/update-manager/release-upgrades现在,使用以下命令再次启动升级过程:sudo do-release-upgrade这会将你带到Ubuntu 23.10版本,目前你无法使用do-release-upgrade命令直接从Ubuntu 22.04 LTS升级到24.04 LTS,因为官方升级路径尚不可用。所以,要升级到Ubuntu 24.04,必须先更新到Ubuntu 23.10。然后,可以从那里升级到Ubuntu 24.04。现在按照屏幕上的说明升级到Ubuntu 23.10版本并重新启动系统:reboot再次打开/etc/update-manager/release-upgrades升级配置文件,将“ Prompt ”的值更改为“ lts ”:sudo nano /etc/update-manager/release-upgrades最后输入以下命令,然后继续按照指南的其余部分从版本23.10升级到24.04 LTS:sudo do-release-upgrade -d第4步:删除过时的软件包要在升级Ubuntu后删除过时的软件包以确保系统清洁,可以使用以下命令:sudo apt autoremove运行上述命令将删除升级后系统不再需要的任何过时的软件包,这有助于释放磁盘空间并保持系统整洁和高效。第5步:在Ubuntu上启用第三方存储库要启用第三方存储库,需要在/etc/apt/sources.list.d/目录下找到在升级过程中可能已禁用的第三方存储库。接下来,取消注释并删除#相应文件中每个存储库每行开头的符号。通过运行以下命令确认第三方存储库已启用,以确保必要的存储库处于活动状态:ls -l /etc/apt/sources.list.d/通过执行这些步骤,你可以在从Ubuntu 22.04升级后在Ubuntu 24.04上成功启用第三方存储库。小结通过以下几个步骤就能够成功将Ubuntu版本从22.04升级到24.04,相对来说还是比较近简单的。需要注意的是,在升级之前,一定要做好备份工作。另外,Ubuntu 22.04无法直接升级,需要先升级到Ubuntu 23.10,然后从Ubuntu 23.10升级到Ubuntu 24.04。
2024年05月21日
41 阅读
0 评论
0 点赞
2024-05-07
supervisor的安装和使用
安装pip install supervisor自定义服务配置文件echo_supervisord_conf > /etc/supervisord.conf配置文件的大概内容[unix_http_server] file=/tmp/supervisor.sock ; the path to the socket file ;chmod=0700 ; socket file mode (default 0700) ;chown=nobody:nogroup ; socket file uid:gid owner ;username=user ; default is no username (open server) ;password=123 ; default is no password (open server) [supervisord] logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket ;username=chris ; should be same as in [*_http_server] if set ;password=123 ; should be same as in [*_http_server] if set ;prompt=mysupervisor ; cmd line prompt (default "supervisor") ;history_file=~/.sc_history ; use readline history if available ;[program:theprogramname] ;command=/bin/cat ; the program (relative uses PATH, can take args) ;[group:thegroupname] ;programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions ;priority=999 ; the relative start priority (default 999) ;[include] ;files = relative/directory/*.ini对于上述配置参数,可以按照具体的需求进行自定义,大多数参数可以保持默认设置。但是为了方便多个项目的统一管理,需要启用 [include] 参数。该参数用于将指定文件包含到配置中,通过这种方式来 "扩展" 服务配置文件。创建配置目录,并修改 files 参数 :mkdir /etc/supervisord.d[include] files = /etc/supervisord.d/*.ini自定义应用配置文件假设现在有一个测试项目 (test),里面有个 test.py 脚本需要持久化运行。现在切换到项目目录 (/root/test),并按照以下格式创建应用配置文件。{porject_name}.ini配置项目的进程启动参数 :; /root/test/test.ini [program:test] command=python -u ./test.py ; 运行命令 directory=/root/test/ ; 运行目录 redirect_stderr=true ; 将 stderr 重定向到 stdout stdout_logfile=/root/test/test.log ; 日志文件输出路径 autorestart=true ; 用于控制是否在 supervisord 进程启动时同时启动 (默认为 true) startsecs=3 ; 是与自动重启相关的另一个配置参数。其作用是用于判断进程是否启动成功,只有当目标进程运行时间大于该配置时,才会判断成成功。 startretries=3 ; 参数需要与 startsecs 参数配合使用,用于控制目标进程的重启尝试次数,并且每次重试花费的时间间隔越来越长。可以通过以下代码测试一下: stdout_logfile=/supervisor/log/win_server.out.log ; 指定标准输出流的日志文件路径。 stderr_logfile=/supervisor/log/win_server.err.log ; 错误日志文件输出路径 stdout_logfile_maxbytes=2MB ; 单个日志文件的最大字节数,当超过该值时将对日志进行切分。 stderr_logfile_maxbytes=2MB ; 错误日志文件最大2MB user=root ; 使用什么用户运行 priority=999 ; 优先级,数值越小越先启动 numprocs=1 ; 用于指定运行时的进程实例数量,需要与 process_name 参数配合使用。 process_name=%(program_name)s_%(process_num)02d使用# 宝塔面板中: # 使用软链接链接到user/bin下面,这样可以在命令行直接使用 ln -s /www/server/panel/pyenv/bin/supervisorctl /usr/bin/supervisorctl # 进入到管理界面 supervisorctl # 查看所有子进程状态 status # 查看单个子进程的状态 status 子进程 # 关闭单个子进程 stop 子进程 # 关闭所有子进程 stop all # 启动单个子进程 start 子进程 # 启动所有子进程 start all # 重启单个子进程 restart 子进程
2024年05月07日
45 阅读
0 评论
0 点赞
1
2
3