Serv00搭建halo及Serv00重置教程
首先在Serv00注册一个账号
Serv00搭建halo
部署
首先,在Panel中的Additional services选项卡中找到Run your own applications项目,将其设置为Enabled。
然后ssh上你的虚拟主机后,使用以下命令安装pm2
1 | bash <(curl -s https://github.com/V-Official-233/halo-PaaS/raw/main/serv00-install-pm2.sh) |
两个测试,第一个不能下载pm2就第二个
创建一个工作目录
1 | cd domains && mkdir halo |
进入目录并下载编译好的Jar包
可以从本项目直接下载,也可以下载halo官方编译的Jar包
1
2
3 cd halo && wget https://github.com/V-UwU/halo-PaaS/releases/download/v2.17.2/halo.jar
或
cd halo && wget https://dl.halo.run/release/halo-2.20.15.jar -O halo.jar
或下边的证实有效
然后在Serv00的面板新建一个mysql数据库,并在下载Jar包的目录新建文件夹.halo
,创建文件application.yaml
1 | server: |
然后在Jar所在目录新建文件run.sh
1
2
3
4#!/bin/bash
export HALO_WORK_DIR="/home/用户名/domains/halo/.halo"
export HALO_EXTERNAL_URL="https://xxxxx.com"
java17 -server -Xms128m -Xmx256m -jar -Duser.timezone=Asia/Shanghai /home/用户名/domains/halo/halo.jar --spring.config.additional-location=/home/用户名/domains/halo/.halo/application.yaml
application.yaml
和run.sh
可以用vim编译,编译后esc
+:wq
退出保存,执行下边步骤
然后测试运行:
1 | chmod +x run.sh && ./run.sh |
确定运行没有问题后,按 Ctrl+c即可停止运行。
使用pm2管理运行:
1 | chmod +x run.sh && pm2 start ./run.sh --name halo |
注意以上命令需要在halo的目录中运行才可以,不然会提示目录不存在
自动重启
在Panel中找到Cron jobs选项卡,使用Add cron job功能添加任务,Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
1 | /home/你的用户名/.npm-global/bin/pm2 resurrect >/dev/null 2>&1 && /home/你的用户名/.npm-global/bin/pm2 restart all >/dev/null 2>&1 |
添加完之后,在SSH窗口保存pm2的当前任务列表快照:1
pm2 save
参考教程:
https://github.com/VOfficial404/halo-PaaS/blob/main/docs/Serv00.md
https://vstu.net/2024/12/12/206/
https://blog.network.za.org/article/serv00-halo
serv00重置 恢复如初 清理 回到刚注册初始状态
视频教程地址:https://www.youtube.com/watch?v=thOBMf7ygTU
文字教程地址:https://afeinet.blogspot.com/2024/08/17.html
防迷失备份文字教程
本期主要介绍如何将serv00恢复到刚刚注册时的初始状态, 不管你是搭建了节点还是建立了个人博客网站, 使用本期介绍的方法, 都可以将已经写入了内容或者混乱的serv00重置到刚刚注册时的状态.
相关视频:
serv00 注册账号及搭建vpn
serv00 答粉丝问 第1辑
finalshell 下载链接:
1 清除PM2进程
列出进程清单
1 | pm2 list |
恢复已保存列表的进程
1 | ~/.npm-global/bin/pm2 resurrect |
停止所有进程
1 | pm2 stop all |
删除所有进程
1 | pm2 delete all |
2 清除虚拟机进程
2.1 列出当前系统所有进程清单
方法一 使用 ps aux
:
1 | ps aux |
“aux”这个选项提供了一个更详细的输出,包括每个进程的所有者、CPU 和内存使用情况、启动时间等。
ps aux
命令的组成
- ps: 进程状态(process status)的缩写,是一个用于显示系统进程信息的命令。
- a: 显示所有用户的所有进程(包括没有控制终端的进程)。
- u: 以用户为中心的格式显示进程信息,包括进程的用户、CPU 和内存使用情况。
- x: 显示没有控制终端的进程。
方法二 使用 top
:
1 | top |
这个命令提供了一个动态、实时的系统监视器,显示当前所有运行的进程及其资源使用情况。 使用 q
退出 top
。
2.2 清除指定账户的所有进程
1 | pkill -kill -u ${username} |
比如: pkill -kill -u defeisoft
解释
- pkill: 这个命令用于根据进程名、用户、终端或其他属性来选择进程,并向它们发送信号。
- -kill: 这个选项实际上是一个信号参数。
-kill
等效于-SIGKILL
,表示发送SIGKILL
信号给目标进程。SIGKILL
信号是一个非捕获、非忽略的信号,用于强制终止进程。 - -u ${username}: 这个选项用于根据用户名称来选择进程。
${username}
是一个变量,表示你要终止的进程所属的用户名称。这个选项会选择所有由指定用户启动的进程。
pkill -kill -u ${username}
这个命令会找到并强制终止所有由指定用户 (${username}
) 启动的进程。
3 删除文件夹及文件夹
3.1 更改非隐藏目录的权限
1 | chmod -R 755 ~/* |
解释
- chmod: 这个命令用于更改文件或目录的权限。
- -R: 这个选项表示递归(recursive)。它会递归地更改指定目录及其子目录中的所有文件和目录的权限。
- 755: 这是一个权限设置,表示所有者(owner)有读取、写入和执行权限,组(group)和其他人(others)有读取和执行权限,但没有写入权限。具体解释如下:
7
表示所有者权限(rwx):读 (4) + 写 (2) + 执行 (1) = 75
表示组权限(r-x):读 (4) + 执行 (1) = 55
表示其他人权限(r-x):读 (4) + 执行 (1) = 5
- ~/: 这个符号表示当前用户的主目录。
- *: 这个符号表示主目录中的所有文件和目录。
综上,chmod -R 755 ~/*
命令将递归地更改当前用户主目录中的所有文件和目录的权限,使得所有者有读、写和执行权限,组和其他人有读和执行权限,但没有写入权限。
例子
假设你当前用户的主目录中有以下文件和目录结构:
1 | /home/username/ |
运行 chmod -R 755 ~/*
后,所有这些文件和目录的权限将变为:
/home/username/file1.txt
和/home/username/file2.txt
权限为755
/home/username/dir1
及其子目录dir2
和其中的文件file3.txt
和file4.txt
权限也将递归地变为755
请谨慎使用 -R
选项,因为它会影响到目录及其所有子目录和文件。
3.2 更改隐藏目录的权限
1 | chmod -R 755 ~/.* |
解释
- chmod: 这个命令用于更改文件或目录的权限。
- -R: 这个选项表示递归(recursive)。它会递归地更改指定目录及其子目录中的所有文件和目录的权限。
- 755: 这是一个权限设置,表示所有者(owner)有读取、写入和执行权限,组(group)和其他人(others)有读取和执行权限,但没有写入权限。具体解释如下:
7
表示所有者权限(rwx):读 (4) + 写 (2) + 执行 (1) = 75
表示组权限(r-x):读 (4) + 执行 (1) = 55
表示其他人权限(r-x):读 (4) + 执行 (1) = 5
- ~/: 这个符号表示当前用户的主目录。
.*
: 这个模式表示所有以.
开头的文件和目录(包括隐藏文件和目录)。
结果
chmod -R 755 ~/.*
会递归地更改当前用户主目录中所有以 .
开头的文件和目录(包括隐藏文件和目录)的权限。包括像 .bashrc
、.profile
、.config
等文件和目录,以及可能的 .
和 ..
目录。
示例
假设你的主目录结构如下:
1 | /home/username/ |
运行 chmod -R 755 ~/.*
后,以下内容的权限可能会被更改:
- 隐藏目录和文件(如
.hidden/
和.hidden/hiddenfile.txt
) - 当前目录
/home/username
及其所有内容,包括file1.txt
、dir1/
和dir1/file2.txt
- 父目录
/home
及其所有内容,这可能会对系统造成严重影响
注意事项
使用 chmod -R 755 ~/.*
时要非常小心,因为它会更改主目录中的所有隐藏文件和目录的权限,并且由于 .*
包括 .
和 ..
,它还可能递归到主目录的父目录以及根目录,这可能会导致系统权限混乱。更改根目录的权限是不推荐的,因为这可能会影响系统的安全性和功能。
替代方案
如果你确实需要更改某些特定隐藏文件或目录的权限,建议明确指定这些文件或目录,而不是使用通配符 .*
。
例如:
1 | chmod -R 755 ~/.config |
这只会更改 .config
目录及其子目录和文件的权限,而不会影响其他文件或目录。
3 删除文件夹及文件
3.1 删除非隐藏文件夹及其文件
1 | rm -rf ~/* |
解释
rm -rf ~/*
命令用于递归地强制删除当前用户主目录中的所有非隐藏文件和目录。
- rm: 这个命令用于删除文件或目录。
- -r: 递归(recursive)选项。它会删除指定目录及其所有子目录和文件。
- -f: 强制(force)选项。它会强制删除文件或目录,而不会提示用户确认。
- ~/: 表示当前用户的主目录。
- *: 通配符,表示主目录中的所有非隐藏文件和目录。
结果
rm -rf ~/*
会递归地强制删除当前用户主目录中所有非隐藏文件和目录。这意味着它会删除所有名称不以 .
开头的文件和目录及其子目录中的所有内容。
示例
假设你的主目录结构如下:
1 | /home/username/ |
运行 rm -rf ~/*
后,以下内容将被删除:
/home/username/file1.txt
/home/username/file2.txt
/home/username/dir1
及其所有内容,包括dir1/file3.txt
和dir1/dir2/file4.txt
注意事项
- 危险性: 这个命令会删除主目录中的所有非隐藏文件和目录,因此在执行该命令之前一定要确认没有需要保留的数据。如果误删数据,可能无法恢复。
- 不影响隐藏文件和目录: 这个命令不会删除以
.
开头的隐藏文件和目录。隐藏文件和目录会保留在主目录中。
3.2 删除隐藏文件夹及其文件
1 | rm -rf ~/.* |
解释
- rm: 这是一个用于删除文件或目录的命令。
- -r: 这个选项表示递归(recursive)。它会删除指定目录及其子目录和文件。
- -f: 这个选项表示强制(force)。它会强制删除文件或目录,而不提示用户确认。
- ~/: 这个符号表示当前用户的主目录。
.*
: 这个模式表示所有以.
开头的文件和目录(包括隐藏文件和目录)。
结果
rm -rf ~/.*
会递归地强制删除当前用户主目录中所有以 .
开头的文件和目录,包括隐藏文件和目录。
示例
假设你的主目录结构如下:
1 | /home/username/ |
运行 rm -rf ~/.*
后,以下内容可能会被删除:
- 隐藏文件和目录(如
.hidden/
和.hidden/hiddenfile.txt
) - 当前目录
/home/username
及其所有内容,包括file1.txt
、dir1/
和dir1/file2.txt
- 父目录
/home
及其所有内容,这可能会导致系统崩溃
注意事项
使用 rm -rf ~/.*
时要非常小心,因为它会删除主目录中的所有隐藏文件和目录,包括一些重要的配置文件和目录。更危险的是,由于 .*
包括 .
(当前目录)和 ..
(父目录),这可能会导致删除主目录及其所有内容,甚至删除主目录的父目录及其内容,这可能会对系统造成严重破坏。
替代方案
为了避免意外删除重要的文件和目录,建议不要直接使用 rm -rf ~/.*
。相反,可以明确指定要删除的隐藏文件或目录:
1 | rm -rf ~/.hidden |
这样可以确保只删除特定的隐藏文件或目录,而不会影响其他目录和文件。
4 初始HTML代码
1 | <!DOCTYPE html> |
camelz.dedyn.io备份的文件
1 | <!DOCTYPE html> |
方法二
1 | cd /usr/home/你的serv名字/domains/域名/public_html && mkdir halo |