Kopieren Sie Dateien zwischen zwei Remote-NAS über FTP
Vorsicht
Dieser Artikel wurde mehr als vor einem Jahr veröffentlicht, Es gab Entwicklungen können.
Bitte berücksichtigen Sie dies.
Der heutige Fall ist sehr nischenhaft und ich bin mir nicht sicher, ob es viele Benutzer gibt, die einen Mini-Guide wie den heutigen benötigen. Aber das ist mir passiert und jetzt erzähle ich dir davon.
Ich habe kürzlich einen älteren HP N40L Proliant Microserver gekauft, auf dem ich openmediavault installiert habe, eine Debian-basierte Distribution, mit der Sie Ihr System genau wie ein klassisches Headless-Linux-System verwalten können, und gemeinsam genutzte Ressourcen einfach konfigurieren (SMB/CIFS, NFS, FTP, SSH), Docker, oltre ich sichern, Cron-Routinen… und vieles mehr.
Jetzt muss ich Daten vom alten NAS auf dieses migrieren.
Leider ist das alte NAS ein Stück Elektronik ohne große Leistung. Es ist Platz für eine Disc, eine elementare Verwaltung von SMB-Aktien, ist FTP, ein DLNA-Server und ein Bittorrent-Manager, die ich nie zum Laufen bringen konnte. Das System formatiert die Festplatte mit einem eigenen Dateisystem, über das ich online keine Informationen gefunden habe, und sogar beim Einlegen der alten Festplatte in einen der Steckplätze auf dem HP-Server wird die Festplatte erkannt, aber das Dateisystem wird nicht interpretiert.
dann, Ich werde die Daten zwischen den beiden mit dem Netzwerk verbundenen Geräten kopieren, auch wenn das alte NAS keinen Gigabit-Anschluss hat.
Ich kann mich mit jedem Protokoll mit dem HP Microserver verbinden, Ich denke, ich werde SSH verwenden, aber zum alten NAS kann ich mich nur mit SMB oder FTP verbinden… Ich bin nicht besonders begeistert, aber ich werde mich anpassen.
Ich fange an, mich mit dem Server zu verbinden:
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:~#
Von hier aus muss ich zu einem Verzeichnis auf einer der Festplatten gehen, das die Daten enthält. OMV mountet die Platten in einem Verzeichnis namens /srv/
. Ich habe bereits installiert und konfiguriert mergerfs
, ein Programm, das zwei Discs mit zwei unterschiedlichen Inhalten ermöglicht “verbinden” in einer einzigen Ressource. Vielleicht werden wir in einem anderen Artikel darüber sprechen.
root@nas:~# cd /srv/mergerfs/Public/nas/
An diesem Punkt weiß ich bereits, dass ich das Verzeichnis kopieren möchte “Öffentlich” vom alten NAS und all seinen Inhalten. Ich muss einen FTP-Befehl ausführen, der mich verbindet und beginnt, alle Daten im Hintergrund zu kopieren. Ich möchte den Laptop nicht für die Dauer der Operation eingeschaltet lassen müssen, nur um den gestarteten Prozess nicht zu unterbrechen.
Der einfachste Befehl, den ich ausführen kann, ist immergrün wget
.
# wget -rb ftp://joe:My5ecreTp4ssword@192.168.5.2/Public/
die Option -r
ermöglicht es Ihnen, den Download einer großen abgeschnittenen Datei fortzusetzen (sogar versehentlich) wo der Download abgebrochen wurde. Während mit -b
Ich habe den Vorgang in den Hintergrund gestellt.
Auf diese Weise würde mein Passwort jedoch unverschlüsselt in der Historie des Endgeräts bleiben (wenn Sie sich entscheiden, Ihren Verlauf nicht zu löschen). Und es würde auch zwischen den Serverprozessen unverschlüsselt bleiben (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
Ich könnte vielleicht ein einzeiliges Skript erstellen, das den Befehl zusammenfasst… aber vielleicht ist es einfacher, die Datei zu erstellen .wgetrc
die die Anmeldeinformationen enthält.
## Credentials for the good ol' NAS @ 192.168.5.2
user=joe
password=My5ecreTp4ssword
Sobald die Datei im Haus des Benutzers gespeichert wurde, kann ich den Download per FTP starten, ohne die Anmeldeinformationen anzugeben.
# wget -rb ftp://192.168.5.2/Public/
Wenn ich merke, dass ich einen Fehler gemacht habe und den Befehl stoppen möchte, der jetzt im Hintergrund ist, kann ich das immer “Leute” der altmodische Weg. Wie wir zuvor gesehen haben “ps ax | grep wget
” zeigt den Prozess und seine PID, während “kill PID_ID
” es wird den Prozess beenden (Ersatz PID_ID
mit der echten PID zu töten).
0 Kommentare