bye 我的博客网站

news/2024/11/16 7:29:05/

Bye🙋🙋🙋,我的博客网站。在我的服务器上运行了9个月之久的博客网站要和大家Bye了。

背景

可能很多人不知道我的这个博客网站的存在,好吧,最后一次展示它了,博客网站地址在这里,它是基于开源的一款Java开发的CMS博客建站平台:PerfreeBlog构建的。官方的网站首页是这样:

在最开始,我想分享一下我喜欢使用它的原因:

  1. 代码开源 我很喜欢开源,一个是意味着它不用付费(原谅我是白嫖党中的一员,二个是开源的就有了良好的生态(一般情况下),生态的完善会带来更好的体验;
  2. 快速高效 在接下来的内容中我会展示它的如何的安装,你会发现安装是如此的简单;同时文章的编辑支持主流的markdown语法,支持粘贴图片,路径能治愈我的强迫症,且看例子:/attach/20221205/f1acb914d1b94b45b4727f28c74bb898.png,一眼就可以看出它的存储路径的规则;
  3. 丰富的主题 可以在我们自己搭建的系统中配置官方的主题,官网的首页也展示了很多个性化的主题,但是很多都是收费的,我表示也能理解;
  4. 可以基于docker实现文件挂载 知道docker的都清楚它可以实现服务的一键部署,但是文件的挂载也可以去尝试一下。我可以保存我的文件数据到宿主机,方便以后的服务部署,后边我会展开讲,包括数据的备份;
  5. 主题可编辑 即使是我们自己下载的主题,我们也可以点击编辑,打开的就是一个代码编辑的页面,我们保存之后刷新页面就可以生效(我就是改了主题的代码,把官方的版权信息删了🤣)

  1. 插件系统 让我惊奇的是它可以在系统中下载对应的插件包,然后在后台导入插件就可以安装

它的一些效果图也如下,首先看到的是首页,它支持响应式,在手机端看着也很舒服:

文章的内容排版如下,我特意的选择了一个带有代码的文章,我基本是markdown写的,外加复制粘贴图片:

不得不夸赞一下作者,我觉得作者和我一样是对美学要求极高的人。所以,在正式的结束部署和使用之前,我也要帮作者推一波。

Bye

我记得我和这个系统的初遇。2023年3月10日,在我逛网站的时候,突然发现了这样的一个博客网站,正好也在研究docker,好家伙,正中下怀。于是当晚回去就自己本地部署了一下,发现是真的好用呢。于是,我开始了一年多的不断写作。截止我的关停,我的博客文章数48篇。但是,这么好用,我也必须说bye bye了,我有诸多的因素去考量。

维护成本

这个我得具体的分析一下:

服务器成本

我的腾讯云服务器是2核2GB的,是腾讯云服务器的基础版本,虽然带宽、存储、流量上我不犯愁,但是犯愁的就是内存,2GB, 啥也干不了,还没干啥就没了;

维护成本

我的文章要同步到多个平台,别的平台如:知乎、CSDN,包括我一直喜欢用的微信公众号,它们都可以转载我的COS图片到它们自己的服务器上,可以说:很好的解决了我的COS流量的问题;但是,这个博客系统就不同了,直接老老实实的引用外链(当然,我相信后期作者会改进的);

知名度的提升

域名,一直是困扰我的问题。腾讯云、阿里云的域名审核非常的严格,第三方渠道我觉得不大靠谱。没有了域名,或者说搜索引擎不能去爬取我的文章,我的网站就不会展示出来。不展示出来,唯一的用户就是我自己,可能还有一些在网络上爬别人端口的黑客们。那些知名的论坛、博客就不一样了,它们可以推荐,是一个更大、更专业的技术论坛。

所以,bye bye 了。我结束了我服务器部署perfreeBlog的部署、使用和维护。但是技术写作的步履不停,欢迎大家关注我的其它平台的账号,知乎、掘金、CSDN:账户名shigen。也可以关注我的个人微信公众号。

最后

最后,我想展示一下这个博客的安装方式,分享我的一些安装的技巧,供大家参考。

首先,我的环境需要docker mysql 服务器centos 7以上的版本。

docker的安装

yum install docker
systemctl enable docker
ststem start docker

如果觉得安装有问题,或者不方便,本次提供了一个大神写的安装的shell脚本:

#!/bin/bash
Version="20.10.4-3.el7"# 下载docker安装源
wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装docker
yum -y install docker-ce-$Version || echo -e '\033[1;31m安装失败,请检查网络和yum源配置!\033[0m'# 使用国内镜像加速
# 阿里云(需要登录账号分配地址)
# 网易云 https://vgunv6qp.mirror.aliyuncs.com
# 腾讯云 https://mirror.ccs.tencentyun.com
# 中科大 https://docker.mirrors.ustc.edu.cn
# docker中国 https://registry.docker-cn.com
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"]
}
EOF# 重新加载配置并启动docker
systemctl daemon-reload
systemctl enable --now dockerdocker version && echo -e "\033[1;32m${Version}安装成功!\033[0m" || echo -e '\033[1;31m安装失败!\033[0m'

mysql安装

有了docker之后,我就推荐我写的一个mysql基于docker的一键化安装的脚本吧

#!/bin/bash
IMG_TAG='mysql/mysql-server:latest'docker pull $IMG_TAGmkdir log data conftouch ./conf/my.cnfdocker run -d -p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v $PWD/log:/var/log/mysql  \
-v $PWD/data:/var/lib/mysql  \
-v $PWD/conf:/etc/mysql  \
--name mysql $IMG_TAGecho "success"

my.cnf直接创建一个空的就行。

好了,现在的需要的基本环境有了,有请我们今天的主角perfree

perfree

  • 一键启动
docker run --name perfree -d -p 80:8080 perfree/perfree:v2.3.0

防火墙怎么开,这里不展示。

  • 复制文件 想起来了,文件没复制出来呢,万一容器毁了,数据不都是全丢了?
mkdir /perfree
docker cp perfree:/resources/ /perfree/
docker cp perfree:/config/ /perfree/
  • 一条命令再解决
docker run -v /perfree/config:/config -v /perfree/resources:/resources --name perfree -d -p 81:8080 perfree/perfree
  • 创建数据库账号,应该只给这个账号这个库的全部权限(别问我为什么这么谨慎,服务器上吃过亏)
# 创建用户及授权
CREATE USER 'perfee'@'%' IDENTIFIED BY 'xxxxx'; 
GRANT all privileges ON perfee.* TO perfee'@'%';

OK,现在你就有了服务了。进入服务的web端页面,填写mysql的账号密码,系统就初始化了,后边的不教了。

定时备份数据库

为什么定时备份,防止数据丢了。还有就是:练手,装个X。这里,我就把之前我写的一篇文章拿过来了

问题场景

最近在学习linux的shell编程,想到了这个博客的所有数据的备份需求:

  1. 定时备份博客数据库的数据
  2. 只保留最近10天的数据
开整
1. shell脚本的编写

以下是backup_sql.sh的内容(关键信息脱敏显示)

#!/bin/bash
# 备份日期并删除前10天的备份文件
DATE=$(date +%Y%m%d)
username=xxxxx
password=xxxxx
host=127.0.0.1
database=xxxxxmysqldump -u${username} -p${password} -h ${host} ${database} | gzip > ./"$database"-"$DATE".sql.gz;echo "backup $database finished......"# 删除10天前备份的文件
find ./ -mtime +10 -name "*.sql.gz" | xargs rm -rf;
echo "=====backup success====="

至此,脚本的编写已经完成。保持着没有不经过测试就很完美的程序的想法,我开始验证

2. 验证shell的正确性
# 给当前的shell脚本可执行的权限
chmod u+x ./backup_sql.sh./backup_sql.sh
ll

看到xxxxx-20221116.sql.gz即代表数据的备份完成。如果数据库正好在本机安装,推荐ip为127.0.0.1,备份速度会很快(减少了网络数据传输的时间消耗)。
ok,不放心的话可以解压缩该压缩包文件查看内容:

gunzip perfree-20221116.sql.gz
tail -n 100 perfree-20221116.sql
3. 定时任务的配置

腾讯云服务器的cron表达式的格式是:分 时 日 月 周,是一个大坑。这里也推荐cron在线生成和反解析网站:

img

crontab -e
# 添加0 0 * * *  /bin/bash /xxxx/xxxx/backup_sql.sh
# 检查
crontab -l

至此,用shell脚本实现mysql数据库的定时备份已完成。

以上就是我的博客的配置全部过程了。Bye perfree,致敬🫡开发者,期待以后的相遇。


http://www.ppmy.cn/news/1022695.html

相关文章

QT的信号槽的四种写法和五种链接方式

目录 四种信号槽写法&#xff1a; 五种连接方式&#xff1a; 实例&#xff1a; 常见错误及改正&#xff1a; 错误1: 未连接信号与槽 错误2: 信号和槽参数不匹配 错误3: 未使用Q_OBJECT宏 错误4: 跨线程连接未处理 在Qt中&#xff0c;信号&#xff08;Signal&#xff09…

IDEA每次启动indexing解决办法

每次启动indexing很浪费时间。 解决办法 setting中搜索index 设置如下&#xff1a; 这样设置以后&#xff0c;启动速度明显快多了。 参考 https://blog.csdn.net/qq_45162113/article/details/121128721

matplotlib 笔记 注释annotate

在图中的特定位置添加文本注释、箭头和连接线&#xff0c;以便更清晰地解释图形中的数据或信息 主要参数 text文本内容xy箭头指向的目标点的坐标xytext注释文本的坐标arrowprops 一个字典&#xff0c;指定注释箭头的属性&#xff0c;如颜色、箭头样式等 没有arrowprops的时候…

赛码网-01串的魔法(dp) 100%AC代码(C)

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在准备秋招&#xff0c;一直在练习编程。 ⏩本篇文章对赛码网的01串的魔法 题目做…

pc端网页用vue并且实现响应式 vue+bootstrap-vue

1、hbuiler内新建vue项目 在项目文件夹下用npm加载依赖&#xff08;或者用hbuilder内打开命令&#xff09; 2、配置路由 src内新建router文件夹&#xff0c;router内新建index.js index.js内配置重定向到首页 main.js内配置路由 import router from /router/index.js new…

HTML+CSS 改进前端简易响应式登录界面

day5 改进上次的项目 HTMLCSS前端 动态响应用户登录界面_一只名叫Me的猫的博客-CSDN博客 emmet自动创建html模板 在vscode中&#xff0c;空白html文件打入一个感叹号&#xff0c;可以自动创建html模板&#xff0c;避免手搓&#xff08;悲&#xff09;。 上次就是因为手搓导致漏…

研究论文关于火灾的烟雾探测

普拉萨梅什加德卡尔 探索所有模型以选择最佳模型。 一、介绍&#xff1a; 烟雾探测器检测烟雾并触发警报以提醒他人。通常&#xff0c;它们存在于办公室、家庭、工厂等。通常&#xff0c;烟雾探测器分为两类&#xff1a; Photoelectric Smoke Detector- 设备检测光强度&#x…

SQL常见命令语句

1.连接数据库 mysql (-h IP) -u root -p 密码2.查看数据库 show databases3.使用数据库 use db_name4.查看表 show tables [from db_name]5.查看表结构 desc tb_name6.创建、删除、选择数据库 create database db_namedrop database db_nameuse db_name7.数据类型 参考链…