システムメンテナンス

提供: ArchWiki
2015年1月12日 (月) 19:41時点におけるKusakata (トーク | 投稿記録)による版 (1版 をインポートしました)
ナビゲーションに移動 検索に移動

関連記事

長期にわたって Arch を適切に機能させるには定期的なシステムメンテナンスが不可欠です。暇があるときにメンテナンスするのは多くのユーザーの習慣となっています。

エラーの確認

systemd サービスの失敗

systemd サービスが failed 状態になってないか確認:

$ systemctl --failed

詳しくは systemd#システムの状態を分析する を参照。

ログファイル

/var/log

/var/log にあるログファイルにエラーが出てないか調べる。

Systemd journal

systemd の journal に優先度が高いエラーが出てないか確認:

# journalctl -p 0..3 -xn

詳しくは systemd#Journal を見て下さい。

パッケージ関連の作業

システムの定期的なアップグレード

最新のバグフィックスとセキュリティアップグレードを享受するために、また、一度に多数のパッケージの更新に対処することに迫られないように、最低でも一週間ごとくらいに、定期的なフルシステムアップグレードを行うことを推奨します。

稀に SysV から systemd への移行のようなクリティカルな変更が Arch Linux に起こることがあります: このようなケースではコミュニティの人々が同時に対処するのが重要になります。問題が起こった時にドキュメントやヘルプを見つけやすくなるからです。

詳しくは pacman#パッケージのアップグレード を参照。

AUR からパッケージをインストールしている場合は、注意してアップグレードを行なって下さい。

ノート: システムのアップデートに関するベストプラクティスはシステムの安定化#システムをアップグレードする前にの記事に載っています。

ミラーリストの更新

ミラーの質は段々と変わっていくことがあり、オフラインになったりダウンロードの速度が落ちたりすることがあるので、pacman のミラーリストは最新に保って下さい。

詳しくはミラーを参照。

孤児になったパッケージの削除

無駄にディスク容量を浪費しないように孤児になった不必要なパッケージは削除します。

詳しくは Pacman のヒント#孤立したパッケージの削除 を参照。

使用してないパッケージの削除

ディスク容量を開けてメンテナンスを簡単にするために、使用していない、古いパッケージはシステムから削除します。

詳しくは Pacman のヒント#使用していないパッケージの削除 を参照。

パッケージキャッシュの掃除

ディスク容量を増やすために /var/cache/pacman/pkg/ から無駄な .pkg ファイルは削除します。

詳しくは pacman#パッケージキャッシュの削除 を見て下さい。

この作業は systemd/タイマー を使うことで自動化できます。

pacman データベースの最適化

pacman データベースへのアクセスを最適化することで pacman の操作を高速化できます。

Pacman のパフォーマンスのアップ#データベースのアクセス速度を向上させるを見て下さい。

この作業は systemd/タイマー を使うことで自動化できます。

ファイルシステムの掃除

削除するファイルを探すときは、一番ディスク容量を取っているファイルを見つけるのが重要です。この作業に役立つプログラムは以下に載っています:

どのパッケージにも含まれてないファイルの確認

pacman データベースに載っていない不要なファイルを削除します。これを行う理由は様々です。

Pacman のヒント#ファイルがどのパッケージにも所有されていないことを確認を見て下さい。

/var の掃除

/var の古いファイルを削除してディスク容量を増やします。/var はログやその他の不変のデータを保存するディレクトリです。

詳しくは Filesystem Hierarchy Standard#/var: Variable files を見て下さい。

ホームディレクトリの掃除

$HOME ディレクトリの古いファイルを削除して設定やその他の有用なファイルを探しやすくします。以下のフォルダを確認してください:

  • ~/.config/ -- アプリケーションが設定を保存するフォルダ
  • ~/.cache/ -- プログラムのキャッシュによって巨大化することがあります
  • ~/.local/share/ -- 古いファイルがここに保存されていることがあります
ノート: 上のパスはそれぞれ $XDG_CONFIG_HOME, $XDG_CACHE_HOME, $XDG_DATA_HOME 環境変数のデフォルトになっています。違うパスを使っている場合は設定を確認してください。

詳しくは Filesystem Hierarchy Standard#/home: User directories を見て下さい。

ホームディレクトリの掃除を長い目で考えると、定期的に必要ないファイルをリストアップして削除するのが良いでしょう。助けになるスクリプトが存在します: rmshit-gitAUR または rmshit.py

その他の掃除

特定の行動をすると、Arch のシステムが散らかる特定の場所というのが存在します。このセクションではそうした不始末の後片付けを行います。

Mimetype の関連付け

ファイルマネージャをしばらく使用していると、もうインストールされていないアプリケーションに mimetype が関連付けられているということが起こります。また、同じような機能を持つアプリケーション (例: テキストエディタ) が複数存在していて、mimetype が使いたい方のアプリケーションに関連付けられていないというのもよくあることです。

mimetype のリストをリセットするには、~/.local/share/applications/ ディレクトリと、このディレクトリ内の以下のファイルを調べて下さい:

  • mimeapps.list
  • mimeinfo.cache

無駄な関連付けを削除するには、ファイルを削除するか、ファイルの中の行を削除します。

詳しくは Default_applications#Using_MIME_types_and_desktop_entries を見て下さい。

壊れたシンボリックリンクの消去

古い、壊れたシンボリックリンクがシステムに居座っている場合、削除するべきです。削除する例はこここちらに載っています。

システムの壊れたシンボリックリンクを全て表示するには、次を使います:

 # find . -type l -! -exec test -e {} \; -print

このリストを調査して不必要なエントリを削除してください。

バックアップ

データ

重要なデータは定期的にバックアップを作成するようにしましょう。バックアップするべきディレクトリとしては /etc, /home, /var が考えられます。サーバーとして使っているのなら /srv も含めるべきでしょう。

バックアッププログラムを見てあなたの条件に合うプログラムを見つけて下さい。rsync によるフルシステムバックアップ, tar によるフルシステムバックアップ, ディスクの複製などの記事も役に立つでしょう。

バックアップは自動で実行させることもできます、systemd#タイマー を見て下さい。

このガイドでは例として tar を使って /etc をバックアップします。以下のコマンドを root で実行:

# tar -cjf /path/to/chosen/directory/etc-backup.tar.bz2 /etc
ヒント: (並列圧縮や SMP を使用して) 高速にバックアップしたいときは、pbzip2 (Parallel bzip2) を使うべきでしょう。

まず圧縮を使わずに普通の tarball にファイルをバックアップします:

# tar -cvf /path/to/chosen/directory/etc-backup.tar /etc

そして pbzip2 を使って並列圧縮します:

$ pbzip2 /path/to/chosen/directory/etc-backup.tar.bz2

etc-backup.tar.bz2 は USB スティックや、外付けハードディスク、もしくは CD-R などのオフラインメディアに保存します。ときどきオリジナルのファイル・ディレクトリとバックアップを比較してバックアップの整合性を確認してください。バックアップしたファイルのハッシュリストを作ることで素早く比較できます。

/etc ファイルを戻すには、etc-backup.tar.bz2 ファイルを一時的な作業ディレクトリに解凍して、必要なファイルやディレクトリを個々にコピーします。/etc ディレクトリ全体をバックアップでリストアするには、etc-backup.tar.bz2 ファイルを / ディレクトリに移動して、root で以下のコマンドを実行してください:

tar -xvjf etc-backup.tar.bz2

インストールしたパッケージのリスト

完全な再インストールが必要になったときのために、インストールしたパッケージのリストを保存しておくと、元の環境を再現するのが簡単になります。この作業は systemd/タイマー で自動化できます。

詳しくは Pacman のヒント#インストールしたパッケージのリストのバックアップと復旧 を見てください。

Pacman データベース

以下のコマンドを使うことでローカルの pacman データベースをバックアップできます:

$ tar -cjf pacman_database.tar.bz2 /var/lib/pacman/local

バックアップした pacman データベースは USB スティックや、外付けハードディスク、もしくは CD-R などのオフラインメディアに保存します。この作業は systemd/タイマー で自動化できます。Pacman のヒント#Systemd を使ってローカルデータベースをバックアップ に他の方法が載っています。

pacman_database.tar.bz2 ファイルを / ディレクトリに移動して以下のコマンドを実行することでデータベースをリストアできます:

# tar -xjvf pacman_database.tar.bz2
ノート: pacman データベースファイルが破損したとき、バックアップファイルが存在しなくても、pacman データベースを再構築するという望みは残っています。Pacman のヒント#pacman のローカルデータベースを復元する を見て下さい。