我注意到手动调用很少会fstrim -av
花费大量时间(超过 10 分钟)并向 SSD 报告大量可用空间:
# /usr/bin/time -p fstrim -av
/boot/efi: 503,2 MiB (527671296 Bytes) auf /dev/sda1 getrimmt
/: 377 GiB (404832960512 Bytes) auf /dev/sda2 getrimmt
real 691.65
user 0.00
sys 4.90
discard
这让我想到,无论出于什么原因,尽管中有标志,操作系统都不会自动报告空闲块/etc/fstab
。因此,我希望确保fstrim -a
定期执行;每次计算机启动、每天、每周或每月一次都可以。自动安排此计划的最佳方法是什么;换句话说,我应该将此调用添加到哪个脚本文件中?
答案1
您的系统默认使用 systemd 执行此操作。检查计时器的状态:
systemctl status fstrim.timer
默认情况下,它设置为fstrim -A
每周运行一次,如您在输出中所看到的:
systemctl cat fstrim.service
每周执行一次以上是没有用的,除非极端使用,删除、移动大量文件等,这时可能需要更频繁地进行修剪。
这实际上也回答了您的问题:您可以使用 设置任何作业以自动运行systemd
。您仍然可以使用 使用 的“旧”方法crontab
,该方法在 Ubuntu 上仍然默认可用。
如果你知道自己在做什么,你就可以编辑服务。