# /usr/lib/systemd/system/fstrim.timer
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
RandomizedDelaySec=100min
# /usr/lib/systemd/system/fstrim.timer
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
RandomizedDelaySec=100min
# /usr/lib/systemd/system/fstrim.timer
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
RandomizedDelaySec=100min
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
vda 0 512B 2G 0
├─vda1 0 512B 2G 0
├─vda14 0 512B 2G 0
└─vda15 0 512B 2G 0
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
vda 0 512B 2G 0
├─vda1 0 512B 2G 0
├─vda14 0 512B 2G 0
└─vda15 0 512B 2G 0
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
vda 0 512B 2G 0
├─vda1 0 512B 2G 0
├─vda14 0 512B 2G 0
└─vda15 0 512B 2G 0
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2026-05-11 00:46:45 UTC 3 days Mon 2026-05-04 01:29:37 UTC 3 days ago fstrim.timer fstrim.-weight: 500;">service
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2026-05-11 00:46:45 UTC 3 days Mon 2026-05-04 01:29:37 UTC 3 days ago fstrim.timer fstrim.-weight: 500;">service
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2026-05-11 00:46:45 UTC 3 days Mon 2026-05-04 01:29:37 UTC 3 days ago fstrim.timer fstrim.-weight: 500;">service
-weight: 500;">systemctl cat fstrim.timer fstrim.-weight: 500;">service
-weight: 500;">systemctl cat fstrim.timer fstrim.-weight: 500;">service
-weight: 500;">systemctl cat fstrim.timer fstrim.-weight: 500;">service
ExecStart=/sbin/fstrim --listed-in /etc/fstab:/proc/self/mountinfo --verbose --quiet-unsupported
ExecStart=/sbin/fstrim --listed-in /etc/fstab:/proc/self/mountinfo --verbose --quiet-unsupported
ExecStart=/sbin/fstrim --listed-in /etc/fstab:/proc/self/mountinfo --verbose --quiet-unsupported
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
-weight: 500;">systemctl -weight: 500;">status fstrim.timer
-weight: 500;">systemctl list-timers --all fstrim.timer
-weight: 600;">sudo fstrim -av
-weight: 600;">sudo fstrim -av
-weight: 600;">sudo fstrim -av
/: 38.2 GiB (41016926208 bytes) trimmed
/boot/efi: 97.5 MiB (102236160 bytes) trimmed
/: 38.2 GiB (41016926208 bytes) trimmed
/boot/efi: 97.5 MiB (102236160 bytes) trimmed
/: 38.2 GiB (41016926208 bytes) trimmed
/boot/efi: 97.5 MiB (102236160 bytes) trimmed
-weight: 500;">systemctl -weight: 500;">status fstrim.-weight: 500;">service
journalctl -u fstrim.-weight: 500;">service --since "7 days ago"
-weight: 500;">systemctl -weight: 500;">status fstrim.-weight: 500;">service
journalctl -u fstrim.-weight: 500;">service --since "7 days ago"
-weight: 500;">systemctl -weight: 500;">status fstrim.-weight: 500;">service
journalctl -u fstrim.-weight: 500;">service --since "7 days ago"
ConditionVirtualization=!container
ConditionVirtualization=!container
ConditionVirtualization=!container
lsblk -D
findmnt -D
-weight: 500;">systemctl -weight: 500;">status fstrim.timer || true
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 600;">sudo fstrim -av
journalctl -u fstrim.-weight: 500;">service --since today
lsblk -D
findmnt -D
-weight: 500;">systemctl -weight: 500;">status fstrim.timer || true
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 600;">sudo fstrim -av
journalctl -u fstrim.-weight: 500;">service --since today
lsblk -D
findmnt -D
-weight: 500;">systemctl -weight: 500;">status fstrim.timer || true
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now fstrim.timer
-weight: 600;">sudo fstrim -av
journalctl -u fstrim.-weight: 500;">service --since today - verify that discard is actually supported
- check whether fstrim.timer is already enabled
- -weight: 500;">enable a weekly TRIM schedule safely
- run a manual trim when you need one
- avoid a common mistake, mounting everything with continuous discard - SSD performance consistency
- some thin-provisioned storage backends
- reclaiming space more accurately on certain virtualized platforms - weekly keeps the cadence modest
- Persistent=true means a missed run is caught up after boot
- RandomizedDelaySec= spreads load across machines - DISC-GRAN and DISC-MAX should not both be 0B
- non-zero discard values suggest the block device can accept discard/TRIM requests - -a trims all mounted filesystems that support the operation
- -v shows how many bytes were passed down for potential discard - whether the -weight: 500;">service actually succeeded
- which mountpoints were trimmed and how much was reported - capability check
- timer state
- scheduled ongoing maintenance
- one immediate cleanup run
- a verification trail - fstrim(8) man page: https://man7.org/linux/man-pages/man8/fstrim.8.html
- systemd fstrim.timer manual: https://www.freedesktop.org/software/systemd/man/latest/fstrim.timer.html
- Fedora change note on enabling fstrim.timer: https://fedoraproject.org/wiki/Changes/EnableFSTrimTimer
- lsblk(8) man page: https://man7.org/linux/man-pages/man8/lsblk.8.html
- findmnt(8) man page: https://man7.org/linux/man-pages/man8/findmnt.8.html