--- title: FTPGrab created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, file-transfer-and-sync, ftp, grabber, backup, go] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=file-transfer-and-sync] --- # FTPGrab 🛰️ > Synchronisateur automatique de serveurs FTP/FTPS/SFTP distants (Go). | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://github.com/ftpgrab/ftpgrab | | **GitHub** | https://github.com/ftpgrab/ftpgrab | | **License** | MIT | | **Langage** | Go | | **Étoiles** | 1500+ | | **Dernière MAJ** | 2024 | | **Catégorie** | [[cat-file-transfer-and-sync]] | ## Description FTPGrab est un outil de **synchronisation descendante** (grab) conçu pour aspirer régulièrement des fichiers déposés sur un serveur FTP/FTPS/SFTP distant vers un stockage local (ou S3, GCS, Azure Blob, etc.). Il est typiquement utilisé par les **hébergeurs, photographes, comptables** qui déposent leurs fichiers sur un FTP mutualisé et veulent les rapatrier automatiquement sans cron artisanal. L'outil se configure via un simple **fichier YAML** (connection FTP, SFTP, FTPS, S3 + destination locale ou cloud + filtres par extension, regex, taille, date). Il tourne ensuite en **mode one-shot** (CLI cronable) ou en **daemon** avec scheduling intégré (`@every 30m`, cron expr). Une **notification Discord/Slack/Mattermost** est envoyée à chaque fichier récupéré. FTPGrab est l'évolution moderne et multi-protocole de `lftp mirror`. Il supporte les **gros fichiers**, la **reprise sur erreur**, le **rate-limiting** et la **déduplication** par hash. Une **image Docker** officielle est publiée sur Docker Hub et Quay. ## Installation ### Docker Compose ```yaml services: ftpgrab: image: ghcr.io/ftpgrab/ftpgrab:latest container_name: ftpgrab environment: - FTPGRAB_SCHEDULE=@every 15m - FTPGRAB_LOG_LEVEL=info volumes: - ./config:/app/config - /srv/grabbed:/app/data restart: unless-stopped ``` ### Binaire natif ```bash wget -qO- https://github.com/ftpgrab/ftpgrab/releases/latest/download/ftpgrab_linux_amd64.tar.gz | tar xz sudo mv ftpgrab /usr/local/bin/ ftpgrab --config /etc/ftpgrab.yml ``` ## Configuration Fichier `ftpgrab.yml` : ```yaml schedule: "@every 30m" download: timeout: 30s retry: 3 connection: protocol: sftp host: ftp.example.com port: 22 username: user password: *** private_key: /keys/id_rsa sources: - /incoming destination: /app/data filters: file_name_regex: ".*\\.zip$" file_size_max: "500MB" notifications: notifier: "slack" notifier_params: webhook: "https://hooks.slack.com/services/XXX/YYY/ZZZ" ``` ## Alternatives - **Open source** : `lftp` + cron, `rsync` (sur SSH), [[app-rclone]] (bidirectionnel), MirrorCommand, [[app-syncthing]] (P2P), curl + script bash. - **Propriétaire** : GoodSync, FTPGetter, WinSCP (scriptable). ## Sécurité - Connexion SFTP (SSH) chiffrée bout-en-bout par défaut. - FTPS supporte TLS 1.2+ (désactiver SSLv3). - Authentification par clé SSH recommandée pour SFTP. - Stockage des secrets via variables d'environnement ou fichier de config chmod 600. - Logs sans mot de passe (redaction auto). - Notifications sur webhook : attention à l'exposition d'URLs sensibles. ## Ressources - Documentation : https://github.com/ftpgrab/ftpgrab#readme - Exemples YAML : https://github.com/ftpgrab/ftpgrab/tree/main/example - Releases : https://github.com/ftpgrab/ftpgrab/releases ## Pages Liées - [[cat-file-transfer-and-sync]] — Catégorie parente - [[app-sftpgo]] — SFTP server - [[app-rclone]] — Multi-cloud sync - [[app-gomft]] — Managed File Transfer - [[recettes-docker-compose]] — Modèles de stacks