openSUSE Btrfs文件系统的硬盘清理

opensuse-btrfs

买了一个硬盘只有20G的VPS,装的是openSUSE 15.0,11G给了/根目录,1G给了/swap,剩下的给了/home,默认安装的时候磁盘是Btrfs文件系统。安装好基本配置好服务器之后,/用了3G多,估摸这硬盘大概也是够用了。后来系统更新到15.1之后,用df -h命令发现:

Shengtong:/ # df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda2        11G  8.6G  763M  92% /
/dev/sda3       7.6G   40M  7.6G   1% /home
/dev/sda2        11G  8.6G  763M  92% /.snapshots
...

/根目录消耗的硬盘空间之快超乎我的想象。研究后发现,openSUSE默认使用Btrfs文件系统之后,有一个系统快照功能,每次系统有一次更新(zypper up)或对系统有什么更改,她都会在/.snapshots/生成一个系统快照,方便用户把系统搞崩溃之后可以回滚。用snapper list命令可以查看系统有多少个快照可以回滚: 

Shengtong:/ # snapper list
  # | Type   | Pre # | Date                     | User | Used Space | Cleanup | Description      | Userdata
----+--------+-------+--------------------------+------+------------+---------+------------------+--------------
 0  | single |       |                          | root |            |         | current          |
 1* | single |       | Sun Aug 11 20:26:39 2019 | root |  67.48 MiB |         | 第一个根文件系统 |
13  | pre    |       | Sun Aug 11 20:55:34 2019 | root |   1.47 GiB | number  | zypp(zypper)     | important=yes
14  | post   |    13 | Sun Aug 11 21:09:25 2019 | root |  55.07 MiB | number  |                  | important=yes
19  | pre    |       | Sun Aug 11 21:17:35 2019 | root |  66.70 MiB | number  | zypp(zypper)     | important=yes
20  | post   |    19 | Sun Aug 11 21:32:05 2019 | root |  83.90 MiB | number  |                  | important=yes
21  | pre    |       | Sun Aug 11 21:55:10 2019 | root | 504.00 KiB | number  | zypp(zypper)     | important=no
22  | post   |    21 | Sun Aug 11 21:55:17 2019 | root |   1.42 MiB | number  |                  | important=no
23  | pre    |       | Sun Aug 11 21:56:48 2019 | root | 144.00 KiB | number  | zypp(zypper)     | important=no
24  | post   |    23 | Sun Aug 11 21:57:01 2019 | root |   1.42 MiB | number  |                  | important=no
25  | pre    |       | Sun Aug 11 21:57:24 2019 | root | 128.00 KiB | number  | zypp(zypper)     | important=no
26  | post   |    25 | Sun Aug 11 21:57:36 2019 | root |   1.70 MiB | number  |                  | important=no

对于我这样的情况,执行下面的命令即可,里面的数字就是上面的第一列数字,数字代表期对应的快照,切忌不要把0和1写进去:

snapper delete 13 14 19 20 21 22 23 24 25 26

然后再df -h看看:

Shengtong:/ # df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda2        11G  3.7G  5.4G  41% /
/dev/sda3       7.6G   40M  7.6G   1% /home
/dev/sda2        11G  3.7G  5.4G  41% /.snapshots
...

瞬间就空出来接近5G多的硬盘空间。对于我这种基本不会回滚的用户来说,快照真的伤害到了我,找到配置文件,对于openSUSE来说,/etc/snapper/configs/root就是了,里面有两个配置,默认情况下是这样的:

NUMBER_LIMIT="2-10"
NUMBER_LIMIT_IMPORTANT="4-10"

对应的意思是对于一般的快照,保存2~10个;对于重要的快照,保存4~10个。多了多了,对于我来说,一个就够,因此:

NUMBER_LIMIT="1"
NUMBER_LIMIT_IMPORTANT="1"

然后用:

systemctl | grep snapper

命令查到有关snapper的两个服务,把这两个服务重启一下就好了。

LAMP

Email: i at onepx dot com || QQ: ⑧九零三④幺 || 微信: onepxcom
©2023 一像素 蜀ICP备13026576号-2 网站地图