Linuxで一定時間後にシステムを再起動する方法

この記事ではLinuxシステムで一定時間後に自動的に再起動を行う方法について詳しく解説します。具体的なコマンド例、その詳細な解説、さらには応用例まで網羅しています。

目次

なぜ一定時間後に再起動が必要か

一定時間後にシステムを再起動する理由は多様です。メモリリークの修正、長時間稼働によるパフォーマンス低下の解消、または定期的なシステムメンテナンスなどが考えられます。このような状況で効果的なのがスケジューリングによる自動再起動です。

基本的な再起動方法

atコマンドによる一回限りのスケジューリング

echo "sudo reboot" | at now + 1 hour  # 1時間後に再起動

このコマンドは1時間後にシステムを再起動します。`at`コマンドは一回限りのジョブをスケジュールする際に使用されます。

cronによる定期的なスケジューリング

0 2 * * * /sbin/reboot  # 毎日2時に再起動

`cron`は定期的なジョブスケジューリングに使用されます。上記の例では毎日2時に再起動を行います。

応用例

応用例1: システムの負荷が一定以上になった場合の自動再起動

*/5 * * * * [ $(cat /proc/loadavg | cut -d ' ' -f 1 | cut -d '.' -f 1) -gt 2 ] && /sbin/reboot  # 5分ごとに負荷をチェックし、負荷が2以上なら再起動

このスクリプトは5分ごとにシステムの負荷をチェックし、負荷が2以上ならば自動で再起動を行います。

応用例2: ディスク容量が一定以下になった場合の自動再起動

*/10 * * * * [ $(df / | awk 'NR==2 {print $4}') -lt 10000 ] && /sbin/reboot  # 10分ごとにディスク容量をチェックし、10000以下なら再起動

応用例3: 特定のサービスが動いていない場合の自動再起動

*/15 * * * * systemctl is-active --quiet serviceName || /sbin/reboot  # 15分ごとにサービスの動作を確認し、停止していれば再起動

応用例4: 特定の時間帯だけ再起動を禁止

0 2 * * * [ $(date +\%u) -ne 6 ] && /sbin/reboot  # 土曜日以外の2時に再起動

まとめ

Linuxシステムで一定時間後に再起動を行う方法には、一回限りのスケジューリングと定期的なスケジューリングの2種類があります。そして、これを更に応用することで、様々なシチュエーションに対応した自動再起動が可能です。特定の条件に応じた再起動など、ニーズに応じて選べる方法が豊富にありますので、是非とも活用してください。

created by Rinker
オライリージャパン
¥3,080 (2024/11/22 17:53:11時点 Amazon調べ-詳細)

コメント

コメントする

目次