Cookie

Copier des fichiers entre deux NAS distants via FTP

Publié par TheJoe sur

Temps de lecture estimé: 3 minutes

Le cas d'aujourd'hui est très spécialisé et je ne suis pas sûr qu'il y ait beaucoup d'utilisateurs qui ont besoin d'un mini-guide comme celui d'aujourd'hui. Mais cela m'est arrivé et maintenant je vais vous en parler.

J'ai récemment acheté un ancien microserveur HP N40L Proliant, sur lequel j'ai installé openmediavault, une distribution basée sur Debian qui vous permet de gérer votre système exactement comme un système Linux sans tête classique, et configurez facilement les ressources partagées (PME/CIFS, NFS, FTP, SSH), Docker, autre je sauvegarde, routines cron… et beaucoup plus.

Maintenant, je dois migrer les données de l'ancien NAS vers celui-ci.

Malheureusement, l'ancien NAS est un morceau d'électronique sans grandes performances. Il y a de la place pour un disque, une gestion élémentaire des actions PME, est FTP, un serveur DLNA et un gestionnaire de bittorrent que je n'ai jamais pu faire fonctionner. Le système formate le disque avec son propre système de fichiers sur lequel je n'ai pas trouvé d'informations en ligne et même en insérant l'ancien disque dans l'un des emplacements du serveur HP, le disque est reconnu, mais le système de fichiers n'est pas interprété.

Puis, je vais copier les données entre les deux appareils connectés au réseau, même si l'ancien NAS n'a pas de port gigabit.

Je peux me connecter au microserveur HP avec n'importe quel protocole, Je pense que je vais utiliser SSH, mais à l'ancien NAS je ne peux me connecter qu'avec SMB ou FTP… je ne suis pas particulièrement ravi, mais je vais m'adapter.

Je commence à me connecter au serveur:

joe@joe-toshiba:$ ssh -t root@192.168.5.10
The authenticity of host 'server_addr (192.168.5.10)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.5.10' (ECDSA) to the list of known hosts.
root@server_addr's password: 
Linux nas 5.19.0-0.deb11.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.11-1~bpo11+1 (2022-10-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Nov 27 02:46:35 2022 from 192.168.5.201
root@nas:~#

De là, je devrai aller dans un répertoire à l'intérieur de l'un des disques contenant les données. OMV monte les disques dans un répertoire appelé /srv/. J'ai déjà installé et configuré mergerfs, un programme qui permet à deux disques avec deux contenus différents de “rejoindre” en une seule ressource. On en reparlera peut-être dans un autre article.

root@nas:~# cd /srv/mergerfs/Public/nas/

À ce stade, je sais déjà que je veux copier le répertoire “Public” de l'ancien NAS et tout son contenu. Je vais devoir exécuter une commande FTP qui me connecte et commence à copier toutes les données en arrière-plan. Je ne veux pas avoir à garder le portable allumé pendant toute la durée de l'opération juste pour ne pas interrompre le processus lancé.

Regardez ici:  Un vieux PC, une distribution GNU / Linux et avoir notre point internet

La commande la plus simple que je puisse exécuter est à feuilles persistantes wget.

# wget -rb ftp://joe:My5ecreTp4ssword@192.168.5.2/Public/

l'option -r permet de reprendre le téléchargement d'un gros fichier tronqué (même accidentellement) d'où le téléchargement s'est arrêté. Alors qu'avec -b Je mets le processus en arrière-plan.

De cette façon, cependant, mon mot de passe resterait non crypté dans l'historique du terminal (si vous décidez de ne pas effacer votre historique). Et il resterait également non chiffré parmi les processus du serveur (ps, top, htop…):

# ps ax | grep wget
271089 ? Rs 26:44 wget -rb ftp://joe:My5ecreTp4ssword@192.168.5.2/Public/
274190 pts/2 S+ 0:00 grep wget

Je pourrais peut-être créer un script d'une ligne qui résume la commande… mais peut-être est-il plus facile de créer le fichier .wgetrc qui contient les identifiants.

## Credentials for the good ol' NAS @ 192.168.5.2
user=joe
password=My5ecreTp4ssword

Une fois le fichier enregistré dans le domicile de l'utilisateur, je pourrai lancer le téléchargement via FTP sans indiquer les identifiants.

# wget -rb ftp://192.168.5.2/Public/

Si je réalise que j'ai fait une erreur et que je veux arrêter la commande qui est maintenant en arrière-plan, je peux toujours “gars” à l'ancienne. Comme nous l'avons vu auparavant “ps ax | grep wget” montre le processus et son PID, pendant que “kill PID_ID” ça va tuer le processus (remplaçant PID_ID avec le vrai PID pour tuer).


TheJoe

Je garde ce blog comme un hobby par 2009. Je suis passionné de graphisme, la technologie, logiciel Open Source. Parmi mes articles ne sera pas difficile de trouver de la musique, et quelques réflexions personnelles, mais je préfère la ligne directe du blog principalement à la technologie. Pour plus d'informations me contacter.

0 commentaires

Laisser un commentaire

Espace réservé d'avatar

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *

Ce site utilise Akismet pour réduire le spam. Découvrez comment vos données de commentaire est traité.