PythonでのLinuxシステム管理・自動化を解説します。subprocessでコマンドを実行したりosモジュールでファイルを操作するスクリプトを作ります。
subprocessでコマンドを実行
import subprocess
import sys
# コマンドを実行して出力を取得
result = subprocess.run(
["df", "-h"],
capture_output=True, text=True
)
print(result.stdout)
# エラーチェック付き
try:
subprocess.run(["systemctl", "status", "nginx"],
check=True, capture_output=True, text=True)
except subprocess.CalledProcessError as e:
print(f"エラー: {e.stderr}")osとpathlibでファイル操作
import os
from pathlib import Path
# ディレクトリ作成
Path("/tmp/myapp").mkdir(parents=True, exist_ok=True)
# ファイル一覧
for f in Path("/var/log").iterdir():
if f.suffix == ".log":
print(f.name, f.stat().st_size, "bytes")
# ファイルのコピー
import shutil
shutil.copy("/etc/hosts", "/tmp/hosts.bak")ディスク使用率チェックスクリプト
import subprocess
def check_disk_usage(threshold=80):
result = subprocess.run(["df", "-h"], capture_output=True, text=True)
for line in result.stdout.split("\n")[1:]:
parts = line.split()
if len(parts) < 6:
continue
usage = int(parts[4].rstrip("%"))
mount = parts[5]
if usage >= threshold:
print(f"警告: {mount} の使用率が {usage}% です!")
check_disk_usage()まとめ
- subprocessでシェルコマンドをPythonから実行できる
- pathlibでファイルパスをオブジェクト指向的に扱える
- PythonでLinux管理スクリプトを書くとシェルスクリプトより読みやすい



コメント