
起動時にサービスを実行しますが、週に1回以下で実行するタイマーを作成できますか?
私の場合はブート時にSSDディスクにTRIM()を実行しておくのが役に立ちましたがfstrim
、いったんそうなったらその日システムを何回再起動するかと思って一週間ほど待ってみたかった。
内部ロジックは、起動時にタイマーが最後の実行時間を確認し、最後の実行時間が過去7日以内に発生した場合、タイマーを実行したり、最後の実行時間を更新しないことです。
答え1
次のタイマーファイルのソースは次のとおりです。ここしかし、これはデフォルトでは多くのシステムではデフォルトです。システムに実際に1つが含まれている場合も、下にある場合もあります/lib/systemd/system/fstrim.timer
。または確認することができます。systemctl status fstrim.timer
fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
コンピュータを実行し続けると、週に一度実行されます。最後に実行した時間を逃した場合(1週間以上後に再びオンにした場合)、すぐに実行されます(参照アーチスウィキ:リアルタイムタイマー):
アクティブ化後に最後のブート時間がない場合(たとえば、シャットダウンのため(オプション持続= true))、サービスはすぐにトリガーされます。