Ich habe eine Liste von (ein paar tausend) absoluten Pfaden zu Dateien auf einem Remote-Server, die ich auf meinen PC herunterladen muss.
Ich brauche auch die Dateien, um die Verzeichnisstruktur für diese Dateien intakt zu halten.
Beispiel:
/* UNIX Server File-System */
/home/username/
stuff/
more-stuff/
data/
file1.txt
/* Local Windows File-System After Transfer */
C:\Users\username\Documents\home\username\
stuff\
more-stuff\
data\
file1.txt
Im Idealfall würde ich eine Art FTP verwenden, um diese Dateien auf meinen PC zu übertragen. Mir ist jedoch kein Programm oder CLI-Befehl bekannt, der das Abrufen einer Dateiliste unterstützt. Ich muss bestimmte Dateien aus bestimmten Verzeichnissen herunterladen. Ich kann nicht einfach ganze Verzeichnisse herunterladen.
Meine Frage: Wie kann ich eine Liste absoluter Pfade verwenden, um die Dateien automatisch auf meinen localhost herunterzuladen? (unter Beibehaltung der Verzeichnisstruktur)
Außerdem habe ich diese Dateien in einem PHP-Array. So ist es mir möglich, die Liste als JSON, CSV, XML usw. zu exportieren.
quelle
rsync
?Antworten:
Wenn Sie etwas dagegen haben, können Sie
rsync
mit etwas wie verwendenwo in
/path/yourlist.txt
Sie können Ihre Dateiliste mit dem vollständigen Pfad einfügen/
Der Pfad, der dem Dateinamen in Ihrer Liste hinzugefügt werden soll (wenn es sich um einen vollständigen Pfad handelt/
)remote:/backup
Der Name des Remote-Hosts und sein relativer PfadSie können mehr Suche
--files-from
aus der [ 1 ] lesenman rsync
... in der Manpage gibt es mehr ...
quelle
wget
hat die Funktionalität, die Sie suchen. Aus der Manpage:Mit anderen Worten:
wget -i filelist.txt
.filelist muss auch nicht unbedingt txt sein, da wget html über den
--force-html
switch unterstützt. Wenn Sie nur eine Liste von Verzeichnissen / Dateien haben, können Sie die Basis-URL in der Befehlszeile mit dem--base
Schalter festlegen .quelle
ftp://
Präfix verweist"ftp://username:[email protected]"
wget
platzieren Sie alle Dateien im selben Verzeichnis.Ich bin mir nicht sicher, warum dies ein Stolperstein sein sollte. Sie können
ftp
mit einem Skript als Quelle ausführen ,Wo sollen
Target_Directory
die Dateien abgelegt werden, die heruntergeladen werden sollen?script.ftp
Eine Skriptdatei wie die folgende:Dies ist in Ordnung für eine einzelne Site . Wie wäre es mit vielen Websites? Sie können eine Skriptdatei mit den folgenden Zeilen erstellen (script_main):
und so weiter. Sie können die
scrip_N.ftp
Dateien vorbereiten , indem Sie die vorhandenen Informationen in ordnungsgemäß getrennte Dateien zerlegen.quelle
aria2 könnte eine möglichkeit sein.
Aus der Dokumentation :
Dies würde eine separate Eingabedatei pro Verzeichnis erfordern.
quelle