OpenBSD pour tou(te?)s
envoyer un dossier via ftp - Version imprimable

+- OpenBSD pour tou(te?)s (https://forum.openbsd.fr.eu.org)
+-- Forum : Questions (https://forum.openbsd.fr.eu.org/forumdisplay.php?fid=36)
+--- Forum : Programmation (https://forum.openbsd.fr.eu.org/forumdisplay.php?fid=46)
+--- Sujet : envoyer un dossier via ftp (/showthread.php?tid=2849)



envoyer un dossier via ftp - sylvainsab - 19-02-2021

Bonjour,

J'ai mis un petit serveur ftp en place et arrive à me connecter localement.

Je cherche une commande pour transférer ma musicothèque, donc un dossier (d'environ 30Gio) avec de multiples sous-dossiers et fichiers, en excluant au passage les fichiers jpg pour éviter que ceux-ci n'apparaissent dans la galerie.
Je suis encore débutant en shell.

La commande serait quelque chose du genre :
Code :
cp -R Musicothèque | find -name *.jpg -exec rm {} \; | echo "send `$0` `$0`" | ftp ftp://login:pass@ip:port
Qui peut m'aider à trouver la bonne syntaxe ?


RE: envoyer un dossier via ftp - PengouinBSD - 20-02-2021

bonjour.

déjà pourquoi utiliser ftp au lieu de préférer sftp (par ssh) ?!
ensuite des solutions éprouvées par rsync, sshfs, voire lftp serait certainement préférable, non ?!
(il est vrai que ces solutions demandent l'installation de paquets en plus de la base)

avec rsync+ssh, tu aurais une solution de type, à minima :

Code :
$ cd Musicothèque
$ rsync -av --exclude="*.jpg" -e "ssh -p 22" "." $login@$ip:$dir_distant

ce n'est qu'un exemple des possibles.

Pour lftp, qui est un puissant outil, tu as un exemple là :
- https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp/24833#24833

PS : Perso, je suis d'avis qu'il faut éviter autant que possible FTP, trafic en clair, pas sécurisé pour deux sous, ni trois… et, préférez SFTP. Ou, au pire, faire du FTPS. Mais c'est ce compliqué encore plus la vie. :p


RE: envoyer un dossier via ftp - solene - 20-02-2021

On ne peut pas transférer de répertoire avec ftp, mais des programmes comme lftp (si je me souviens bien) permettent de créer le répertoire et faire une copie récursive de tout son contenu.

Sinon on peut utiliser https://rclone.org/ et configurer un serveur FTP en destination, rclone permet ensuite de faire des trucs comme

rclone --filter *jpg copy ~/Musique/ serveur_ftp:Musique/

(faut vérifier la syntaxe du paramètre filter mais globalement ça permet de faire ce genre de chose)


RE: envoyer un dossier via ftp - eol - 20-02-2021

Pour lister, plus rapide que find, locate(1)
Code :
locate ~/Music |grep -v '\.jpg$'
Pour transporter, si c'est sur un réseau de confiance,
tar(1) et nc(1) avec les bonnes options.
Sur la machine qui reçoit c'est dans l'autre sens.
Exemple à adapter (pour OpenBSD un peu plus bas dans la page) :
https://tarpipe.be/

Pas de paquet à installer.

Edit :
locate pioche dans une base de donnée,
si il y a eu des changements dans ~/Music depuis
la construction de cette base par weekly(8),
il ne seront pas pris en compte.


RE: envoyer un dossier via ftp - sylvainsab - 20-02-2021

En effet c'est mieux de privilégier sftp. C'est tout fait faisable également avec l'application que j'utilise :
https://f-droid.org/en/packages/org.primftpd/

Et pour sûr je préfère ajouter le moins possible à -base... je me suis donc dirigé vers lftp.

Le transfert est en cours. Il semble que cela fonctionne avec :
Code :
$ lftp
lftp :~> open sftp://sylvain:[[pass]]@firefly:[[port]]
lftp sylvain@firefly:/> mirror -x `*.jpg$` -F Musicoth\303\250que/ -R



RE: envoyer un dossier via ftp - PengouinBSD - 20-02-2021

ehehh, vive lftp ; outil très pratique en effet, et là, tu utilises l'option de synchronisation mirroir des données (exactement comme l'usage de rsync) :p


RE: envoyer un dossier via ftp - sylvainsab - 03-03-2021

Ça ne marche pas avec ma Firefly (pour le moment Wink ) car Android ne dispose pas de la commande (pax(1)), mais je vous laisse quand même l'exemple/message de quelqu'un d'autre sur le canal Telegram The CLI-way :

Citation :
Code :
ssh user@domain "printf 'dir' | pax -w " | pax -r

Use it instead of scp. Pax standardized [1] by IEEE, and scp deprecated by lwn[2] users.

[1] https://man.bsd.lv/pax.1#STANDARDS
[2] https://lwn.net/Articles/835962/

EDIT : je rajoute également cette application plus minimaliste que primftpd, qui fait serveur ssh ainsi que sftp
https://f-droid.org/en/packages/org.galexander.sshd/