ユーザーが指定したcrontabの体系的な代替手段はありますか?

ユーザーが指定したcrontabの体系的な代替手段はありますか?

/etc/cron.hourly私はDebian関連のシステムで、...のシステムレベルのcrontabスクリプトがシステムタイマーの/etc/cron.dailyために段階的に廃止されていることを確認しました。たとえば、

$ cat logrotate
#!/bin/sh

# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
    exit 0
fi

...

私の目標の1つは、cronとanacronを段階的に廃止することだと思います。 (参考1参照)

私の例では、cronの主なユースケースはカスタムcrontab(crontab -e)です。これにより、ユーザーはシステム管理者権限なしで自分のタスクを自分のユーザーとして実行するようにスケジュールできます。

管理者以外のユーザーが繰り返しタスクをスケジュールできるようにする現在または計画された機能はsystemdにありますか?


注1:

前のステートメントを少し和らげるためにcronを解放し、システムタイマーを賞賛する以外に、特に良い議論は見つかりませんでした。私はこの方向がLinuxディストリビューションの神々から受け継がれたという証拠を見つけることができませんでした。しかし、私はそれが旅行の方向であることに気づきました。したがって、このステートメントは、これが移動方向であり、時間の経過とともにほとんど/すべてのパッケージが最終的に同じ方法で進行し、1つのシステム(cron)が重複すると予想するという考えに基づいています。

ベストアンサー1

ユーザーは設定できますシステムタイマー、デフォルトではサービスとタイマーを生成し、~/.config/systemd/userタイマーを有効にします。

カスタムクローン操作からシステムタイマーに切り替えると、2つの主な機能が失われます(良いか悪いかは状況によって異なります)。

  • システムサービスは結果を電子メールで送信しません。
  • systemdユーザータイマーは、ユーザーが持続するように構成されていない限り(管理者が実行する必要がある操作)、ユーザーセッションがアクティブなときにのみ実行されます。

systemd タイマーを使用すると、cron 操作に比べて多くの可能性が追加されます。たとえば、時間指定は次のようになります。より表現力が良くなりましたcronとは異なり、タイマーは「特定のVPNが起動したときにのみ」などの他の要件を満たすように設定できます。 (もちろん、これらの詳細はすべてcronジョブに記録される可能性があります...)また、systemdタイマーはcronジョブよりも管理が簡単だと思います。タイマーの状態とタイマーが次に実行されるタイミングを確認するのは簡単です。

Debian で見ているパターンは、重複ジョブが 2 回実行されるのを防ぐために使用されます。一度はsystemdで、一度はcronまたはanacronで(何らかの理由で)実行されます。一般的な内容があるという意味ではありませんターゲットcron または anacron を無効にします。

おすすめ記事