Linux SHELL “ImageJob™”
work ディレクトリに投入された画像を検出し、
透かし付きメイン画像・各種リサイズ・カバー画像を自動生成する堅牢なバッチ変換スクリプト。
運用事故を防ぐ設計へ全面刷新。 透かし処理・バックアップ管理・入力検出を再設計したメジャーアップデート。
🔁 画像生成フローの再設計(透かし処理の明確化)
透かし付きメイン画像は「事前リサイズ → 透かしサイズ計算 → 透かし合成 →(任意)文字入れ」
という明確な工程に分離
透かしサイズは「透かし合成対象画像(透かし前)」の寸法を基準に計算
解像度差・縦横比差による透かし崩れを防止
🧩 派生画像の責務分離
resize1 / resize2 / cover は 完全に透かし無し
すべて 正規化済みの共通元画像から生成
用途別(SNS / サムネ / OGP)画像の再現性を向上
🧹 backup ディレクトリの無限肥大対策(推奨構成①②④)
以下を組み合わせた 多層防御 を実装:
保持日数制御
指定日数を超えたバックアップを自動削除
容量上限制御
合計容量が上限を超えた場合、古いファイルから削除
日付ディレクトリ分割
backup/YYYY-MM-DD/ 形式で整理し、管理性と削除効率を向上
→ cron 常駐でもディスク枯渇を防止
📥 入力ファイル検出の堅牢化
jpg / jpeg / png を コード側で最低限保証
大文字小文字を無視して常に検出
設定ファイルは**「追加拡張子を指定するためのプラスアルファ」**という役割に明確化
設定ミスによる「何も処理されない事故」を防止
🛡️ 運用安全性の強化
set -e 環境でも落ちない安全なカウンタ処理
find -print0 採用による安全なファイル列挙
壊れた画像・不正入力は即時隔離(failed + 理由ログ)
二重起動防止(ロック)と DRY-RUN モードの併用可能
📜 設計思想の明文化
conf ファイルに「コードが保証する範囲」
「設定が担う役割」をコメントとして明記
将来の運用者・引き継ぎ時にも意図が伝わる構成に
🧭 位置づけ
この v3.0.0 以降、imagejob-convert.sh は
「個人用スクリプト」ではなく「止めずに回し続ける業務用変換ジョブ」としての設計を正式に確立。