“util-linux 软件包提供 fstrim.service 和 fstrim.timer systemd 单元文件。启用计时器将每周激活该服务。该服务在支持丢弃操作的设备上的所有已安装文件系统上执行 fstrim(8)。”
从:https://wiki.archlinux.org/title/Solid_state_drive
我想确保它每周运行一次,因为我读过它不应该运行得太频繁,也不能太少。
但是,它似乎没有任何计时器:
# systemctl list-timers |grep fstrim
# cat /etc/systemd/system/fstrim.timer
cat: /etc/systemd/system/fstrim.timer: No such file or directory
fstrim.service 文件本身是:
# systemctl cat fstrim.service
# /usr/lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks on filesystems from /etc/fstab
Documentation=man:fstrim(8)
ConditionVirtualization=!container
[Service]
Type=oneshot
ExecStart=/usr/bin/fstrim --listed-in /etc/fstab:/proc/self/mountinfo --verbose --quiet-unsupported
PrivateDevices=no
PrivateNetwork=yes
PrivateUsers=no
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
MemoryDenyWriteExecute=yes
SystemCallFilter=@default @file-system @basic-io @system-service
哪里指定了每周基准?我如何确保它每周运行或根本运行?
答案1
$ systemctl list-unit-files '*trim*'
UNIT FILE STATE VENDOR PRESET
fstrim.service static -
fstrim.timer enabled enabled
$ systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
Loaded: loaded (/lib/systemd/system/fstrim.timer
$ grep Cal /lib/systemd/system/fstrim.timer
OnCalendar=weekly
请注意,默认的 systemd 文件位于/lib/systemd/system
(以及其他几个地方),本地定制的文件位于/etc/systemd/system
.