VPS 磁盘占用莫名上涨?我是这样把 Debian 11 的 journal 日志限制住的

最近排查一台新加坡节点的小 VPS,发现硬盘占用总是在慢慢往上爬。WordPress 文章、媒体库、MySQL binlog 都排除之后,最后锁定了一个很容易被忽视的来源:systemd 的 journal 日志

这类日志不是博客内容,也不是 AMH 面板自己的日志,而是 Debian 系统层的运行日志。像 SSH 登录尝试、定时任务、服务状态变化,都会被写进去。如果服务器挂在公网,日志增长速度往往比想象中快。

我这台机器一开始查到的结果是:

journalctl --disk-usage

输出显示:

Archived and active journals take up 440.0M in the file system.

对于一台 40G 硬盘的小 VPS 来说,440M 已经没必要了。解决思路也不复杂:给 journald 设置上限,再把旧日志压缩回收。

journal 是什么

先简单说一句,避免混淆。

  • amh-access.log、nginx access.log 这类,是面板或网站自己的日志
  • journal 是 Debian 系统自己的总日志池,由 systemd-journald 管理

它通常会记录这些内容:

  • SSH 登录和爆破尝试
  • CRON 定时任务
  • 服务启动、重启、报错
  • 内核和系统消息

所以你在 auth.log 里看到一堆 Invalid user admin、Invalid user ubuntu 的同时,journal 里通常也会同步增长。

修改 journald 限制大小

直接编辑配置文件:

nano /etc/systemd/journald.conf

在 [Journal] 下面加入这几行:

[Journal]
SystemMaxUse=80M
RuntimeMaxUse=30M
SystemMaxFileSize=20M
MaxRetentionSec=7day

这几个参数的意思很直白:

  • SystemMaxUse=80M:磁盘上的 journal 总占用尽量控制在 80M 左右
  • RuntimeMaxUse=30M:运行时日志占用控制在 30M
  • SystemMaxFileSize=20M:单个日志文件不要太大
  • MaxRetentionSec=7day:最多保留 7 天

这套数值对小内存、小硬盘的 VPS 比较合适。不是绝对标准,但足够实用。

让配置生效

保存后执行:

systemctl restart systemd-journald

然后把旧日志清理到目标范围:

journalctl --vacuum-size=80M

如果想更激进一点,也可以改成:

journalctl --vacuum-size=50M

检查结果

执行:

journalctl --disk-usage

我这台机器处理完后的结果是:

Archived and active journals take up 96.0M in the file system.

虽然不是精确等于 80M,但这是正常现象。SystemMaxUse 更像一个控制目标,不是硬切到一字不差。只要从几百 MB 降下来了,而且后续不再无限增长,目的就达到了。

再顺手确认一下配置是否写进去了:

grep -Ev '^\s*#|^\s*$' /etc/systemd/journald.conf

如果输出类似下面这样,就说明已经生效:

[Journal]
SystemMaxUse=80M
RuntimeMaxUse=30M
SystemMaxFileSize=20M
MaxRetentionSec=7day

这一步能解决什么问题

限制 journal 后,至少能解决两件事:

第一,系统日志不再无上限吃盘

第二,后面再排查磁盘占用时,能把注意力放回真正异常的目录,而不是一直被系统日志干扰。

不过也要说清楚:限制 journal 只是收口,不是治本。

如果你的服务器像我这台一样,公网不断有人扫 SSH 端口,那 auth.log 和 journal 还是会继续写,只是不会再失控。所以更彻底的做法,通常还包括:

  • 修改 SSH 默认端口
  • 禁止密码登录
  • 只允许密钥登录
  • 安装 fail2ban

最后

如果你也在用 Debian 11 或类似的 systemd 系统,发现 VPS 磁盘占用总是缓慢上涨,先别急着怀疑网站内容或者数据库。

先看一眼:

journalctl --disk-usage

很多时候,问题就藏在这里。

魔兽世界12.0.1至暗之夜战场报点报敌人人数插件

以前的BG Defender不能用了,所以在curse上找了一款叫Battleground Defender的插件(原插件地址:https://www.curseforge.com/wow/addons/battleground-defender)

但他的界面/播放方式都是英语和英式的,不太符合中文语言的习惯,所以我让ai改了下,效果如图

/bd 呼出插件的设置界面

如何简单构建自己的健康饮食结构(二)

餐食配比

比如一个成年人大约每天摄入1800大卡的热量,就按照碳水:蛋白质:脂肪=2:1:1的比例去配比食物。

基于碳水:蛋白质:脂肪 = 2:1:1 的热量分配比例(即热量占比 50% : 25% : 25%),我们可以把这 1800 大卡拆解成每天具体需要摄入的食物克数,让执行变得更加落地。

第一步:将比例转化为具体克数

根据上一篇提到的热量换算公式(碳水和蛋白质 1g=4大卡,脂肪 1g=9大卡),1800大卡的分配如下:

  • 碳水化合物: 1800 × 50% = 900 大卡,换算成重量为 900 ÷ 4 = 225克
  • 蛋白质: 1800 × 25% = 450 大卡,换算成重量为 450 ÷ 4 = 112.5克
  • 脂肪: 1800 × 25% = 450 大卡,换算成重量为 450 ÷ 9 = 50克

第二步:将克数落实到日常食物中

不需要每顿饭都拿着电子秤去精准称重,掌握以下估算方法就能轻松搭配:

1. 碳水主食(目标:约225g碳水)

  • 怎么吃: 相当于每天吃 3-4 个拳头大小的主食。
  • 选什么: 强烈建议将一半的精米白面替换为燕麦、糙米、红薯或玉米。丰富的膳食纤维不仅扛饿,对平稳血压和控制血脂也非常友好,还能为日常的高强度活动或徒步提供更持久、稳定的能量释放。

2. 优质蛋白质(目标:约112g蛋白质)

  • 怎么吃: 相当于每天吃 2-3 个手掌心大小(且厚度相当)的肉类,外加鸡蛋和牛奶。
  • 选什么: 优先选择鱼虾、去皮鸡腿肉/鸡胸肉、瘦牛肉和豆制品。每天保证 1 个鸡蛋和 1-2 杯牛奶作为基础打底。

3. 脂肪来源(目标:约50g脂肪)

  • 怎么吃: 肉类、蛋奶中本身就含有隐藏脂肪,因此额外烹饪用油每天控制在 2-3 汤匙(约25-30g)即可。
  • 选什么: 炒菜多用茶籽油或橄榄油,或者在加餐时吃一小把(大拇指大小)的原味坚果。这类不饱和脂肪酸是对心血管极佳的“好脂肪”。

第三步:1800大卡健康餐食示范

  • 早餐: 燕麦片(干重约50g)泡牛奶(250ml) + 水煮蛋 1 个 + 一小把坚果。
  • 午餐: 杂粮饭一碗(熟重约150g) + 清蒸鱼或低油煎鸡排(约150g) + 大量绿叶蔬菜(少油清炒或水煮后橄榄油凉拌)。
  • 晚餐: 蒸紫薯或红薯 1 个 + 瘦牛肉炒芹菜(瘦肉约100g) + 凉拌拍黄瓜。

总结:

构建健康的饮食结构不是做严苛的化学实验,2:1:1 是一个非常科学且容易坚持的基准线。初期刻意练习一下分量估算,保持低盐少油的烹饪习惯,身体很快就会适应这种清爽健康的节奏。

魔兽世界:戒律牧苦修友方宏怎么写?带 mouseover 与 nochanneling 的实用版本

戒律牧在实战里经常会遇到一个问题:想把苦修快速给队友,但手动切目标总会慢半拍。尤其是大秘境、竞技场或者团本高压阶段,等你切完目标再按技能,往往已经晚了。

这时候,一个顺手的mouseover 苦修宏就很有必要。

一、实用宏代码

如果你想要一个“优先给鼠标指向友方放苦修,没有鼠标指向就给当前友方目标放”的版本,可以直接用下面这个:

#showtooltip 苦修
/cast [nochanneling:苦修,@mouseover,help,nodead] [nochanneling:苦修,help,nodead] 苦修

二、这个宏的作用是什么

它的逻辑很简单:

  • 鼠标指着友方单位时,优先对鼠标指向目标施放苦修
  • 如果没有鼠标指向友方,就对当前目标施放苦修
  • 如果你正在引导苦修,反复按这个宏不会把自己的苦修打断

这套逻辑很适合戒律牧的日常治疗习惯,特别是在需要快速补队友血线的时候,比手动切目标流畅很多。

三、宏里的关键条件是什么意思

1. @mouseover

表示对鼠标指向目标施法。

也就是说,你不需要真的选中对方,只要鼠标悬停在队友头像、团队框体或者人物模型上,就可以直接放技能。

2. help

表示目标必须是友方。

这样可以避免把苦修错误地打到敌人身上。因为苦修本身是个双形态技能,目标不同,效果也不同,所以这里加上 help 很重要。

3. nodead

表示目标必须活着。

这样可以避免把技能浪费在已经死亡的单位上。

4. nochanneling:苦修

这是这个宏里最实用的一部分。

它的意思是:如果你当前正在引导“苦修”,就不要再次施放苦修。

很多玩家平时按键比较快,尤其在高压环境里容易连按。如果不加这条判断,就有可能把自己正在引导的苦修打断。加了以后,宏会更稳,手感也更好。

四、想要“没目标时自动奶自己”怎么办

如果你还想更进一步,让这个宏在没有鼠标指向友方、当前也没有友方目标时,自动对自己施放苦修,可以改成这个版本:

#showtooltip 苦修
/cast [nochanneling:苦修,@mouseover,help,nodead] [nochanneling:苦修,help,nodead] [nochanneling:苦修,@player] 苦修

这个版本的逻辑就是:

  1. 先奶鼠标指向友方
  2. 再奶当前友方目标
  3. 如果都没有,就直接奶自己

这个版本在大秘境里会更舒服一些,因为很多时候你并不会一直保持友方目标,自动补自己能减少空按。

五、这个宏适合哪些场景

大秘境

队伍血线波动快,mouseover 宏能明显减少切目标的时间,尤其适合临时补坦克或被点名的队友。

竞技场

戒律牧操作节奏很快,宏能让你在不丢失敌方目标的情况下,直接给队友苦修,手感会顺很多。

团本

如果你习惯用团队框架治疗,mouseover 苦修几乎是很自然的搭配,效率比纯手选目标高不少。

六、该用哪个版本

如果你只想做一个基础的友方苦修宏,用第一版就够了:

#showtooltip 苦修
/cast [nochanneling:苦修,@mouseover,help,nodead] [nochanneling:苦修,help,nodead] 苦修

如果你希望容错更高,平时没有目标时也能直接奶自己,那更推荐第二版:

#showtooltip 苦修
/cast [nochanneling:苦修,@mouseover,help,nodead] [nochanneling:苦修,help,nodead] [nochanneling:苦修,@player] 苦修

对大多数戒律牧玩家来说,第二版通常更实用。