LINUX.ORG.RU
ФорумAdmin

fstrim не срабатывает systemd таймер

 ,


0

2

Настроил fstrim через systemctl Но при просмотре systemctl list-timers -all

NEXT                         LEFT       LAST                         PASSED       UNIT             
Mon 2019-10-21 10:30:00 EET  2s left    Mon 2019-10-21 10:29:00 EET  57s ago      pvesr.timer      
Mon 2019-10-21 11:04:49 EET  34min left Mon 2019-10-21 10:02:52 EET  27min ago    anacron.timer    
Mon 2019-10-21 18:20:00 EET  7h left    Sun 2019-10-20 18:20:00 EET  16h ago      systemd-tmpfiles-
Mon 2019-10-21 21:46:09 EET  11h left   Mon 2019-10-21 07:41:05 EET  2h 48min ago apt-daily.timer  
Tue 2019-10-22 03:13:43 EET  16h left   Mon 2019-10-21 03:02:52 EET  7h ago       pve-daily-update.
Tue 2019-10-22 06:14:06 EET  19h left   Mon 2019-10-21 06:48:52 EET  3h 41min ago apt-daily-upgrade
n/a                          n/a        n/a                          n/a          fstrim.timer   
Видно что у fstrim.timer все отметки n/a Я не понимаю работает задание или нет. Так выглядит fstrim.service
[Unit] Description=Discard unused blocks
[Service] Type=oneshot ExecStart=/sbin/fstrim -av

Так выглядит fstrim.timer

[Unit] Description=Discard unused blocks once a day Documentation=man:fstrim
[Timer] OnCalendar=daily AccuracySec=1h Persistent=true
[Install] WantedBy=timers.target

При просмотре команды

journalctl -a -b -u fstrim.timer -- No entries -- 

Пишет, что нет данных для отображения.

# systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a day
   Loaded: loaded (/etc/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:fstrim

Что не так? Как диагностировать причину сбоя?

Что не так?

Таймер включен, но не запущен:

   Loaded: loaded (/etc/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: inactive (dead)

«Enabled» — это про автозагрузку. «Inactive» — это конкретно сейчас.

После systemctl enable fstrim.timer перезагружался?

Сделай для верности systemctl reenable fstrim.timer. Потом — либо systemctl start fstrim.timer, либо перезагрузись.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

Точно! Я не ребутнулся и systemctl что-то не понял из-за этого. Огромное спасибо!!! Я столько времен на этом потерял. Привык, что в linux многое делается без перезагрузки.

sergey113 ()
Ответ на: комментарий от sergey113

Привык, что в linux многое делается без перезагрузки.

И правильно сделал.

Перезагружаться здесь совершенно необязательно.

Ты просто путаешь enable и start. systemctl enable — это добавление в автозапуск, а systemctl start — это запуск здесь и сейчас.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

А как вручную вызвать задание? выполняю команды

systemctl start fstrim.timer
systemctl start fstrim.service
не обновляется информация в
systemctl list-timers -all

NEXT                         LEFT          LAST                         PASSED    UNIT             
Mon 2019-10-21 18:18:00 EET  44s left      Mon 2019-10-21 18:17:00 EET  15s ago   pvesr.timer      
Mon 2019-10-21 18:24:26 EET  7min left     n/a                          n/a       systemd-tmpfiles-
Mon 2019-10-21 19:00:04 EET  42min left    Mon 2019-10-21 18:04:43 EET  12min ago anacron.timer    
Tue 2019-10-22 00:00:00 EET  5h 42min left n/a                          n/a       fstrim.timer 

sergey113 ()
Ответ на: комментарий от sergey113

А как вручную вызвать задание?

systemctl start fstrim.timer

Повторный запуск таймера — пустая операция. Ты запустил его один раз — всё, он тикает.

systemctl start fstrim.service

Вот так правильно.

не обновляется информация в

systemctl list-timers -all

NEXT                         LEFT          LAST                         PASSED    UNIT             
<...>   
Tue 2019-10-22 00:00:00 EET  5h 42min left n/a                          n/a       fstrim.timer 

Она и не должна обновляться. Таймер отдельно, нагрузка отдельно. Смотри в systemctl status fstrim.service, там есть поле «время последнего запуска».

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

Вы не подскажете как переделать fstrim с еженедельного на ежедневный в 00:00? У меня, как я понял, сейчас systemd этим занимается. В /usr/lib/systemd/system лежит файл fstrim.timer со следующим содержимым:

[Unit]

Description=Discard unused blocks once a week

Documentation=man:fstrim

[Timer]

OnCalendar=weekly

AccuracySec=1h

Persistent=true

[Install]

WantedBy=timers.target

Если weekly заменить на dayli, то как указать 00:00?

stanislau ()
Последнее исправление: stanislau (всего исправлений: 2)