FTP転送を手動で行うのをやめたい。MacからサーバーへのアップロードでもサーバーからMacへのダウンロードでも、毎回自分で操作することなく自動で動いてほしい。macOSでこれを実現する方法はいくつかあります。無料のものも、技術的な知識が必要なものも、ただ動いてくれるものも。

これは2026年時点で実際に使えるすべての選択肢を正直に比較したものです。各アプローチが得意なこと、苦手なこと、誰に向いているかを説明します。

選択肢1:シェルスクリプト(lftp/curl + cron または launchd)

Option 01

cronまたはlaunchdと組み合わせたシェルスクリプト

シェルスクリプトで lftp または curl を使ってFTP操作を行い、cronまたはlaunchdで定期実行します。lftpを使ったミラーコマンドの基本はこのような形です:

#!/bin/bash
# リモートFTPフォルダーをローカルに同期 — cronで5分ごとに実行
lftp -u "$FTP_USER","$FTP_PASS" sftp://ftp.example.com << EOF
mirror --only-newer /remote/incoming/ /Users/you/Downloads/incoming/
quit
EOF

メリット:無料、lftp以外の依存なし、高い柔軟性——他のシェルコマンドを連鎖させたり、メール送信やスクリプト実行もできます。サーバー上でヘッドレス動作可能。動作を完全にコントロールできます。

デメリット:ターミナルとシェルスクリプト、cron構文の知識が必要。エラーが出ても気づかない——パスワード変更、サーバー移転、ネットワークの問題があると、誰も読まないログファイルにエラーが記録されるだけです。macOS通知なし。競合解決ロジックは自分で書く必要あり。シェルスクリプトでの認証情報の安全な管理には追加の手間が必要。Appleは数年前からcronよりlaunchdを推奨していますが、launchdのplistを正しく設定するのはさらに複雑です。

向いている人:コードを好む開発者、サーバーサイドの自動化、MacがGUIなしでサーバーとして動いている場合。

選択肢2:AutomatorとFolder Actions

Option 02

Automator / Folder Actions

macOSにはAutomator(ビジュアルなワークフロービルダー)と、ローカルフォルダーにファイルが追加されたときに起動するFolder Actionsが含まれています。一見、FTP自動化に理想的に見えます。

実際には、AutomatorにはFTPアクションがネイティブにありません。AutomatorでFTP自動化をしようとすると「Run Shell Script」アクションが必要になり、結局シェルスクリプトを書くことになります——GUIという複雑さが加わるだけで、機能は増えません。

メリット:すべてのMacにプリインストール、追加ソフト不要、ビジュアルインターフェース。

デメリット:FTPネイティブサポートなし——結局Automator内でシェルスクリプトを書くことになります。Automatorのワークフローは壊れやすく、エラー処理が弱い。AppleはAutomatorを縮小しつつあります(後継はショートカットですが、こちらもFTPサポートなし)。Folder Actionsはローカルフォルダーの変更にしか反応しません——リモートFTPフォルダーの監視には使えません。

向いている人:Macでのシンプルなローカルファイル操作。FTP自動化には実質的に使えません。

選択肢3:汎用同期ツール

Option 03

汎用同期ツール

市場には、クラウドストレージ、NASデバイス、ローカルフォルダーなど多くのバックエンドと並んでFTPをサポートする同期ツールがあります。双方向同期ジョブを中心に設計されています。

メリット:1つのツールで多くのストレージタイプを扱える、双方向同期、競合解決。

デメリット:軽量なFTP自動化ではなく汎用同期向けに作られています。インターフェースはイベント駆動の監視ではなく同期ジョブを中心に設計されています。リモートフォルダーはポーリングベース——即時ではありません。リソース消費が多い。UIの複雑さはその幅広いスコープを反映しており、「このFTPフォルダーを監視して新しいファイルをダウンロードする」というシンプルなワークフローには過剰です。

選択肢4:Mac専用アプリ(FTPull + FTPush)

Option 04

FTPull + FTPush——Mac FTP自動化のために作られた専用アプリ

FTPullとFTPushは2つの別々のMacアプリで、それぞれ1つのことに特化しています。FTPullはリモートFTPフォルダーを監視して新しいファイルを自動でダウンロード。FTPushはローカルフォルダーを監視して新しいファイルを自動でアップロードします。

どちらもmacOS専用に作られています——クロスプラットフォームツールの移植ではありません。macOSのネイティブAPIを全面的に使用しています:

他の選択肢との主な違い:

比較表

アプローチ 設定の難しさ 通知 Macネイティブ UI FTP/SFTP/FTPS メンテナンス
シェルスクリプト + cron 高い なし なし あり(lftp) 高い
Automator 中程度 基本のみ 部分的 なし(スクリプトのみ) 中程度
汎用同期ツール 中程度 あり 部分的 あり 低い
FTPull + FTPush 低い あり(充実) あり(ネイティブ) あり(ネイティブ) なし

MacのFTP自動化で本当に重要なこと

選ぶときのポイント

  • 即時検出:FSEventsベースの監視により、FTPushはファイルを1秒以内に検出——次のポーリング間隔まで待つ必要なし
  • メンテナンスゼロ:更新するスクリプトなし、修正するcronジョブなし、編集する設定ファイルなし
  • ネイティブなフィードバック:macOS通知、Finderタグ、リアルタイムログ——手動で開くテキストファイルではなく
  • ただ動き続ける:一度設定すれば、メニューバーで無期限に動き続けます

FTPullとFTPushはMacでのFTP/SFTP/FTPS自動転送という1つのワークフローに特化しており、妥協なく実現しています。設定する同期ロジックなし、クラウドストレージのバックエンドなし、クロスプラットフォームのUXなし。ただ:このフォルダーを監視して、新しいファイルを転送して、完了したら教えてくれる——それだけです。