分类 Linux 下的文章

/var/log/journal/ 是 systemd 的持久化日志目录,用于存储通过 journald(Systemd Journal)收集的系统日志。相比传统的 /var/log/syslog 或 /var/log/messages,journald 的日志更结构化、压缩存储,支持更丰富的查询。

/var/log/journal/ 包含的日志内容

  • 内核日志(类似 dmesg)
  • systemd 服务日志(替代了 syslog)
  • 各种系统事件(启动、关闭、错误、服务状态变化等)
  • 用户登录记录、安全事件等

如何查看这些日志?

journalctl -b         # 查看本次启动以来的日志
journalctl -xe        # 查看最近的错误日志
journalctl -u nginx   # 查看 nginx 服务的日志

清理日志的方法

方式一:清理旧日志(按时间)

sudo journalctl --vacuum-time=7d
只保留7天内的日志,删除 7 天前的日志。

- 阅读剩余部分 -

我有一台 mac mini m2,本来是放在办公室用的,但发现还是带笔记本更方便,所以就闲置了。
家里已经有了群晖 nas,所以暂时也没有用途了。

这两年 AI 很火,就琢磨着可以搞个相关的小服务放在 mac mini 上跑,然后对外提供接口,这就需要打通网络。

调研了一番,还是选择了以前用过的 frp

环境准备

客户端是我的 mac mini,系统是最新版的 macOS 15.4。

服务端是我的阿里云 ECS,系统是 ubuntu 22.04。

下载好 frp,目前最新的版本是 v0.62.0

服务端下载 frp_0.62.0_linux_amd64.tar.gz,解压后放到 /opt/frp 目录。

客户端下载 frp_0.62.0_darwin_arm64.tar.gz,解压后放到 /Users/tony/apps/frp 目录。

- 阅读剩余部分 -

这几天我的一台小服务器卡的不要不要的,重启之后虽然不卡了,但过个几天,又卡成翔了。

研究了一下,发现 CPU 占用并不高,问题是内存不够用,看来是部署的服务太多了。

由于是阿里云搞活动买的 99 一年的 ECS ,只有 2G 的内存,部署了 redis、mysql、gitea,还跑了两个版本的 php-fpm,用 ps aux --sort=-%mem | head -n 11 命令查看了一下内存大户,mysql 毫无疑问排在了第一。

秉持着榨干服务器最后一滴价值的原则,果断给服务器加了 2G 的交换内存。

下面是操作步骤:

- 阅读剩余部分 -

因为国补叠加官网起售价降低,没忍得住下手换了 M4 的 MacBook Air。

在配置环境的时候,发现我的 CroWall 笔记站里找不到 iTerm2 的 zmodem.sh 相关配置了——我记得我已经记录过好几次了,不知道为什么这里没有,可能是上次迁移网站的时候漏了?

不管了,今天补一下。


首先是安装 iTerm2,到 官网 下载最新的 iTerm2-3_5_12.zip,解压后移动到应用程序里,完成安装。

下载脚本,移动到合适的位置

从 GitHub 的 robberphex/iTerm2-zmodem 仓库下载脚本,如果无法下载可以直接点击下面本站保存的版本。

- 阅读剩余部分 -

今天突然发现向我的服务器提交代码非常慢,巨慢,然后测试版的应用请求响应也非常慢,一开始以为是网络问题,但登录服务器一看,发现 CPU 很忙。

2核2G 的 Ubuntu,load average: 1.93, 0.99, 0.55。

排名第一的进程是 kswapd0,问了一下 kimi,得到的回答是:

kswapd0 是 Linux 系统中的一个内核线程,主要负责虚拟内存管理中的换页操作。当系统的物理内存不足时,kswapd0 会执行换页操作,将一些不常用的内存页从物理内存移动到磁盘上的交换空间(swap space),以释放物理内存供其他进程使用。这个过程会消耗大量的 CPU 资源,因此如果 kswapd0 进程占用 CPU 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。

- 阅读剩余部分 -

修改 Nginx 配置时,报错:

$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。

我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。

所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。

如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。

grep -r "crowall.com" /etc/nginx/sites-enabled/

-r 表示如果下面有子目录也会扫描。

执行完就可以看到冲突的两个配置文件了,非常方便。

国内的服务器有个蛋疼的问题:下载一些国外的依赖时非常慢甚至被墙。

比如 github 上的那些开源软件,下载速度只有十几K,甚至下不了。
再比如 packgist 至今都是被墙的,只能使用国内的镜像。

以前尝试过给服务器装个 v2ray 走代理,结果被云厂商扫描出来了,还给警告了一下。

怕被停服,不敢装了。

其实有个好办法就是使用 ssh -R 命令,将本地的代理端口共享给服务器,让服务器走你本地的代理去访问国外网站。

使用 ssh 连接服务器的时候,使用以下命令:

ssh -R 本地端口:本地主机:远程端口 用户名@远程主机

- 阅读剩余部分 -

之前一直使用 acme.sh 手动搞,非常麻烦,而且现在又被墙了,更加麻烦。

使用 Certbot,分分钟搞定,并且后续也不需要任何操作,全部自动化了,省心省力。

我服务器使用的是 Ubuntu + Nginx,在 Certbot 官网上选择一下,就可以看到专用的教程了:

2024-03-05T18:43:44.png

根据教程,执行以下步骤:

Certbot 官网: https://certbot.eff.org/

- 阅读剩余部分 -