Outils pour utilisateurs

Outils du site


croc

croc

Croc est un petit logiciel (8 Méga-octets) en ligne de commande pratique pour transférer directement un fichier ou un répertoire d'un ordinateur à un autre. Il a les particularités suivantes:

  • Le logiciel croc doit être installé sur l'émetteur et le destinataire.
  • Il est facile à installer (C'est un unique exécutable: copiez juste le fichier).
  • Il est très simple à utiliser (infiniment plus simple que créer un torrent).
  • Pas de ports à "ouvrir" dans votre firewall.
  • Il est chiffré de bout en bout.
  • Il n'y a pas de limite de taille sur les données à transférer (donc il est utile aussi pour les gros volumes de données)
  • Il est possible de reprendre un téléchargement interrompu.
  • Il créé un code jetable pour le téléchargement. Ce code est facile à dicter oralement (exemple: 2206-madonna-album-cigar)
  • Les deux ordinateurs n'ont pas besoin d'être sur le même réseau local (Il fonctionne dès que les deux ordinateurs ont accès à internet).
  • Le fichier ne "traîne" pas sur internet : Il n'est pas stocké sur un serveur intermédiaire. Dès que l'application est fermée sur l'émetteur, le fichier n'est plus accessible et le code inutilisable.
  • Multiplateformes (Win, Mac, Linux, architectures x86/x64/arm). (Il existe aussi une version Android).
  • Vous pouvez l'utiliser même si vous n'avez pas les droits pour installer des logiciels sur votre ordinateur.

Installation

croc est déjà probablement présent dans les dépôts de votre distribution.

Sinon, vous pouvez procéder à une installation manuelle : https://github.com/schollz/croc#install

Ou même télécharger directement la dernière version (c'est un simple exécutable) (C'est pratique également pour utiliser croc sur les ordinateurs où vous n'avez pas les droits pour installer des applications) : https://github.com/schollz/croc/releases/latest

Croc existe pour Windows, Linux (pour processeurs x86/x64/arm… donc cela fonctionnera aussi très bien sur un Raspberry), Mac, FreeBSD et autres.

L'auteur ne distribue pas de version officielle pour Android, mais il existe deux moyens de l'utiliser. Voir la section Android.


Exemple d'utilisation

  • Je veux envoyer un fichier (ou un répertoire), je tape :
    croc send NomDuFichierOuDuRépertoire
    • Il affiche un code du genre 2206-madonna-album-cigar
  • Sur l'ordinateur qui doit recevoir le fichier, je tape :
    croc 2206-madonna-album-cigar

Et c'est tout. Dès que le fichier est tranféré, les deux applications se terminent.

Dans le cas où les machines ne peuvent pas se "parler" en direct, le serveur croc.schollz.com est utilisé comme relai mais c'est chiffré de bout en bout.
Mais rien ne vous empêche d'installer votre propre serveur de relai.
  • Vous pouvez aussi choisir vous-même le code au lieu de laisser le logiciel le choisir. Exemple:
    croc send --code MonSuperCodeTrèsSecret6584618768651 NomDuFichierOuDuRépertoire
    • Et du coup de la même manière à la réception:
      croc MonSuperCodeTrèsSecret6584618768651
  • Vous pouvez envoyer plusieurs fichiers et répertoires en même temps. Exemple:
    croc send fichier1 fichier2 répertoire1 répertoire2

Un raccourcis dans le gestionnaire de fichiers

La plupart des gestionnaires de fichiers sous Linux vous permettent de créer vos propres scripts, activables avec un simple clic-droit. Exemple:

Par exemple dans le bureau Mate, le gestionnaire de fichier est Caja et vous pouvez placer vos scripts dans ~/.config/caja/scripts/

Voici un script pour envoyer n'importe quel fichier via Croc avec un simple clic-droit dans Caja:

Envoyer-via-croc
#!/bin/bash
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
if [ -d "$FILENAME" ]; then
 cmd="croc send \"$FILENAME\""
 mate-terminal --title="Envoi du répertoire via croc (`basename $FILENAME`)" -x /bin/bash -l -c "$cmd"
fi
if [ -f "$FILENAME" ]; then
 cmd="croc send \"$FILENAME\""
 mate-terminal --title="Envoi du fichier via croc (`basename $FILENAME`)" -x /bin/bash -l -c "$cmd"
fi
done

Enregistrez-le dans ~/.config/caja/scripts et rendez-le exécutable (chmod +x Envoyer-via-croc). Vous pouvez maintenant faire un clic-droit sur les fichiers et répertoires > Scripts > Envoyer-via-croc.

Notez que la plupart des autres gestionnaires de fichiers (par exemple Nautilus) possèdent la même capacité de lancer des scripts, mais vous devrez adapter ce script et le placer dans le bon répertoire.


Reprendre un téléchargement interrompu

S'il y a un problème réseau qui brise la connexion, émetteur et récepteur vont quitter.

Il faut alors relancer l'envoi du fichier côté émetteur (ce qui va créer un nouveau code).

Côté destinataire, retapez la commande de réception avec ce nouveau code. Quand croc verra qu'un fichier de même nom existe, il vous proposera de reprendre le téléchargement.

Resume 'NomDuFichier' (25.4%)? (y/N)

Répondez simplement Y et il reprendra là où il s'était arrêté.


Automatiser des transfers

Si vous voulez utiliser croc dans vos scripts, vous pouvez aussi le faire. Par exemple :

croc send --code blablabla587568 monfichier

Et côté réception:

croc --yes blablabla587568

--yes téléchargera automatiquement.

Vous pouvez également utiliser les pipes:

echo 'coucou' | croc send --code blabla750

Et à la réception:

croc --yes --stdout blabla750 > message.txt

Android

L'auteur ne distribue pas de version officielle pour Android, mais il y a deux manière d'utiliser croc sous Android:

Application (non officielle)

  • Installez depuis F-Droid ou en téléchargeant directement l'APK depuis cette page : https://f-droid.org/en/packages/com.github.howeyc.crocgui/
  • L'inconvénient de cette application est qu'on ne peut pas faire "Partager > Croc". Il faut lancer l'application et aller manuellement indiquer le fichier.
  • Dans l'application, après avoir sélectionné un fichier volumineux le téléphone aura l'air d'être bloqué. Patientez.

Avec Termux

Termux est un émulateur Linux pour Android qui ne nécessite pas un téléphone rooté. Il possède son propre gestionnaire de packages et fournit un terminal. Voici les instructions (rapides):

  • Installez termux depuis F-Droid ou téléchargez l'APK depuis cette page : https://f-droid.org/en/packages/com.termux/
  • Lancez termux
  • Pour la première installation de termux, mettez à jour les packages:
    pkg upgrade
    • (S'il vous pose des questions pendant la mise à jour, pressez juste ↵ Entrée)
  • Autorisez termux à accéder au stockage Android : Tapez:
    termux-setup-storage
    • Android vous demandera alors si vous autorisez termux à accéder au stockage : Répondez oui.
    • Cela va créer des liens symboliques pour accéder facilement à la mémoire interne du téléphone:
      • ~/storage/download correspond à /storage/emulated/0/Download (téléchargements Android)
      • ~/storage/dcim correspond à /storage/emulated/0/DCIM (photos)
      • ~/storage/shared à /storage/emulated/0/ (Le stockage interne du téléphone)
      • En principe ~/storage/external-1 permet d'accéder à la carte microSD, mais selon les versions d'Android il est possible que cela ne fonctionne pas (à cause des restrictions sécurité).
  • Installons maintenant croc :
    pkg install croc
  • Et vous pouvez maintenant l'utiliser normalement.
  • Notez que termux vous permet aussi d'installer OpenSSH, rsync, rclone, Python, etc. (Tapez juste pkg. pkg s'utilise de la même manière que apt).
Si vous voulez écrire des scripts shell pour termux, votre shebang ne doit pas être #!/bin/sh mais #!/data/data/com.termux/files/usr/bin/sh

Liens

  • Autre projet dans le même genre: https://github.com/magic-wormhole/magic-wormhole
  • Alternativement, vous pouvez mettre en place un serveur TOR très facilement (aucun port à ouvrir dans votre firewall), mais le serveur sera très lent.
  • Si vous êtes en réseau local uniquement, vous pouvez lancer un serveur web en une ligne de commande: Ouvrez un terminal dans le répertoire à servir et tapez python3 -m http.server et sur l'autre machine accédez avec http:<adresseIP>:8000/
croc.txt · Dernière modification : 2023/09/06 14:24 de sebsauvage