Linux システム管理:ディスク、ネットワーク、および定期タスク

ストレージ管理

ディスク使用量の確認

ファイルシステム全体の使用状況を確認するには、df コマンドを使用します。人間が読みやすい形式で表示するには -h オプションを付与します。

df -hT

Linux 環境におけるストレージデバイスの命名規則は、通常 /dev/sd[a-z] の形式をとります。

ディレクトリサイズの調査

特定のディレクトリが占有する容量を調べるには du コマンドが有効です。概要のみを表示し、単位を自動調整するには以下のオプションを組み合わせます。

du -sh /var/log
  • -s: 合計値のみ表示
  • -h: K, M, G などの単位で表示

dd コマンドによるデータ操作

dd コマンドは、ファイルのコピーや変換、ゼロファイルの作成などに利用されます。

dd if=/dev/zero of=/tmp/dummy.bin bs=4K count=1000
  • if: 入力ファイル(input file)
  • of: 出力ファイル(output file)
  • bs: バイトサイズ(block size)。K, M, G などが指定可能
  • count: ブロックの数

RAID 構成の種類

複数のディスクを組み合わせる RAID 技術にはいくつかのレベルがあります。

  • RAID 0: ストライピング。读写性能が向上しますが、冗長性はありません。最低 2 台必要。可用容量は全ディスクの合計。
  • RAID 1: ミラーリング。書き込み性能は低下しますが、読み込みは向上し、冗長性があります。最低 2 台。可用容量は最小ディスクのサイズ。
  • RAID 5: パリティ分散。读写性能向上と冗長性(1 台故障まで対応)を両立。最低 3 台。可用容量は (N-1) * サイズ。
  • RAID 6: 二重パリティ。2 台までの故障に対応。最低 4 台。可用容量は (N-2) * サイズ。
  • RAID 10: RAID 1 と RAID 0 の組み合わせ。性能と冗長性を重視。最低 4 台。可用容量は全体の 50%。

ネットワーク設定

IPv4 の基礎

IPv4 アドレスは 32 ビットで構成され、ネットワーク部とホスト部に分かれます。

  • クラス A: 第 1 オクテットがネットワーク部(1-126)。サブネットマスクは 255.0.0.0。
  • クラス B: 第 1・2 オクテットがネットワーク部(128-191)。サブネットマスクは 255.255.0.0。
  • クラス C: 第 1・3 オクテットがネットワーク部(192-223)。サブネットマスクは 255.255.255.0。
  • プライベートアドレス: 内部ネットワークで使用可能(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)。

CIDR とビット演算

CIDR(クラスレスドメイン間ルーティング)では、サブネットマスクを用いてネットワーク範囲を定義します。ネットワーク部の算出にはビット論理積(AND)を使用します。

主なビット演算の例:

5 & 3 = 1   (論理積)
4 | 2 = 6   (論理和)
7 ^ 5 = 2   (排他的論理和)
~2 = -3     (ビット反転)
4 << 1 = 8  (左シフト)
8 >> 2 = 2  (右シフト)

例えば、10.20.43.65/10 のネットワークアドレスを算出する場合、IP アドレスとサブネットマスクのビット論理積を取ります。

IP アドレスの操作

ip コマンドを使用し、ネットワークインターフェースの設定を管理します。

# IP アドレスの追加
ip addr add 10.0.0.5/24 dev eth0

# IP アドレスの削除
ip addr del 10.0.0.5/24 dev eth0

# エイリアス付きで追加
ip addr add 10.0.0.6/24 dev eth0 label eth0:0

ネットワーク設定ファイル

静的 IP 設定などは、以下の配置文件を編集することで永続化できます。

ファイルパス:/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=10.0.0.5
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
DNS1=8.8.8.8

DNS と主机名

DNS サーバーの設定は /etc/resolv.conf に記述します。

nameserver 8.8.8.8
nameserver 8.8.4.4

主机名の変更は hostnamectl コマンドで行います。

hostnamectl set-hostname web-server-01

ネットワーク状態の確認

ソケット統計情報を表示するには ss または netstat を使用します。

ss -tulpn
  • -t: TCP
  • -u: UDP
  • -l: 聴取中(Listening)
  • -p: プロセス名を表示
  • -n: 数値表示(名前解決しない)

サービス管理とダウンロード

systemd 環境では systemctl を使用してサービスを管理します。

systemctl start nginx
systemctl stop nginx
systemctl enable nginx
systemctl status nginx

ファイルのダウンロードには wget が便利です。

wget -c -O backup.tar.gz http://example.com/file.tar.gz

定期タスク(Cron)

crontab の設定

システム全体のcron設定は /etc/crontab で管理され、ユーザーごとの設定は crontab -e で編集します。

設定形式(システム cron):

# 分 時 日 月 曜日 ユーザー コマンド
0 2 * * * root /usr/local/bin/backup.sh
30 8 * * 1-5 www-data /var/www/cleanup.sh
*/10 * * * * root /usr/bin/health_check.sh

主な crontab コマンドオプション:

  • -e: 編集
  • -l: 一覧表示
  • -r: 削除
  • -u user: 指定ユーザーの操作

実行ログは /var/log/cron に記録されます。コマンド記述時には絶対パスを使用することが推奨されます。

ネットワーク診断

接続確認には ping コマンドを使用します。ICMP プロトコルを用いてホストの到達性を確認できます。

ping -c 4 10.0.0.1

ICMP は TCP/IP プロトコルスイートの一部であり、ネットワークエラーや制御消息の伝達に利用されます。

タグ: linux-sysadmin disk-management network-configuration cron-jobs raid-arrays

6月24日 21:35 投稿