如何自动定期运行fstrim -a?

如何自动定期运行fstrim -a?

我注意到手动调用很少会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 上仍然默认可用。

如果你知道自己在做什么,你就可以编辑服务

相关内容