Mac miniで副業を自動化する完全ガイド|launchd + Pythonで24時間運用

Mac miniが副業の自動化サーバーに最適な理由 副業の自動化を本気でやるなら、24時間動くマシンが必要になる。 選択肢は3つ: クラウドVPS(AWS, ConoHa等)— 月3,000〜5,000円 Raspberry Pi — 安いが非力 Mac mini — 初期費用は高いが、1年で元が取れる 結論から言うと、Mac miniが最強のコスパだった。 Mac mini vs VPS コスト比較 項目 Mac mini M4 ConoHa VPS 初期費用 約84,800円 0円 月額 電気代約200円 約3,000円 1年間合計 約87,200円 約36,000円 2年間合計 約89,600円 約72,000円 3年間合計 約92,000円 約108,000円 3年目からMac miniの方が安くなる。しかも性能はMac miniの方が圧倒的に上。Apple SiliconでPythonもPlaywrightもサクサク動く。 launchdとは launchdはmacOS標準のジョブスケジューラ。Linuxのcronに相当するが、以下の点で優れている。 Mac起動時にジョブが自動復帰する 実行失敗時のリトライ機能がある システム標準なのでインストール不要 基本的なlaunchd設定 ステップ1:plistファイルを作成 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.my-job</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python3</string> <string>/path/to/script.py</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>8</integer> <key>Minute</key> <integer>0</integer> </dict> <key>StandardOutPath</key> <string>/path/to/logs/output.log</string> <key>StandardErrorPath</key> <string>/path/to/logs/error.log</string> </dict> </plist> ステップ2:インストール cp com.example.my-job.plist ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.example.my-job.plist ステップ3:動作確認 launchctl list | grep com.example 副業自動化の具体例 例1:毎朝6時にブログ記事を自動生成 Pythonで記事を生成し、Hugoでビルドして、Cloudflare Pagesにデプロイ。 ...

February 23, 2026 · 1 分 · 自動化ラボ
【初心者向け】Pythonで日常業務を自動化する方法|コピペで使えるコード集

【初心者向け】Pythonで日常業務を自動化する方法|コピペで使えるコード集

PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。 「Pythonで自動化したいけど、何から始めればいいかわからない」という方向けに、すぐに使える実践的なコード例を紹介します。ファイル整理、Excel操作、Web情報取得など、日常業務でよくあるタスクを取り上げます。 前提: Python環境の準備 Python 3.9以上が必要です。macOSの場合は以下でインストールできます。 # Homebrewでインストール brew install python # バージョン確認 python3 --version Windowsの場合はpython.orgからインストーラーをダウンロードしてください。 1. ファイルの自動整理 ダウンロードフォルダの中身を拡張子ごとに分類するスクリプトです。 from pathlib import Path import shutil def organize_downloads(): """ダウンロードフォルダを拡張子別に整理する""" downloads = Path.home() / "Downloads" # 拡張子とフォルダ名の対応 categories = { "images": [".jpg", ".jpeg", ".png", ".gif", ".webp"], "documents": [".pdf", ".doc", ".docx", ".txt", ".csv"], "videos": [".mp4", ".mov", ".avi", ".mkv"], "archives": [".zip", ".tar", ".gz", ".rar"], } moved_count = 0 for file in downloads.iterdir(): if not file.is_file(): continue suffix = file.suffix.lower() for folder_name, extensions in categories.items(): if suffix in extensions: dest_dir = downloads / folder_name dest_dir.mkdir(exist_ok=True) shutil.move(str(file), str(dest_dir / file.name)) moved_count += 1 print(f"移動: {file.name} -> {folder_name}/") break print(f"\n完了: {moved_count}件のファイルを整理しました") if __name__ == "__main__": organize_downloads() 2. Excelファイルの自動処理 openpyxlを使ったExcelファイルの読み書きです。 ...

February 22, 2026 · 2 分 · ぷーた