Ich versuche, geänderte Dateien per ssh nach godaddy zu kopieren. Godaddy ist schrecklich und erlaubt daher natürlich kein Rsync. Ich kann scp benutzen, aber ich möchte wirklich nur geänderte Dateien kopieren. Ich glaube nicht, dass das möglich ist, also habe ich mich gefragt, ob ich vielleicht nur alle PHP-Dateien scp können.
Es gibt jedoch viele Unterverzeichnisse, sodass ich die Option -r verwenden muss.
Gibt es eine Möglichkeit, mit scp alle Dateien mit der Erweiterung zu kopieren? php
, rekursiv? so was:
scp -r -name "*php" /local/html/ user@server:/home/html/
(funktioniert nicht)
ERWÜNSCHTES ERGEBNIS
//on local machine $ find ./source source / 1.php source / 2.php Quelle / Sub source / sub / 3.php source / sub / 4.php source / sub / DONT-copy.txt source / sub / DONT-copy.png Quelle / Unter / 2 source / sub /₂ / 5.php source / sub /₂ / 6.php // Befehl zum Kopieren der Dateien $ [scp Befehl hier] // auf dem entfernten Server $ find ./destination Bestimmungsort / 1.php Ziel / 2.php Ziel / Sub Ziel / Unter / 3.php Ziel / Unter / 4.php Ziel / Unter / 2 Ziel / Unter / 2 / 5.php Ziel / Unter / 2 / 6.php
DAS FUNKTIONIERT NICHT
//on local machine $ find ./source source / 1.php source / 2.php Quelle / Sub source / sub / 3.php source / sub / 4.php source / sub / DONT-copy.txt source / sub / DONT-copy.png Quelle / Unter / 2 source / sub /₂ / 5.php source / sub /₂ / 6.php // Befehl zum Kopieren der Dateien $ cd source; scp -r * .php user @ remote: / destination // auf dem entfernten Server $ find ./destination Bestimmungsort / 1.php Ziel / 2.php
Vielleicht könnten wir auch versuchen, find zu verwenden, aber ich bin mir ziemlich sicher, dass dies so ist wird nicht so funktionieren wie es ist :
find ./source -name "*.php" -exec scp {} user@remote:{} \;
Das wird nicht funktionieren, weil ich nicht denke, dass Sie mehrere verwenden können {}
Betreiber in zu finden.
Es kann auch schwierig sein, die Pfade auf dem Remote-Server in eine Linie zu bringen, wenn beispielsweise find zurückkehrt /users/johndoe/documents/source/1.php
und du wolltest, dass es am ende ist /home/jane/www/destination/1.php
auf dem Remote-Server.
cat phpfiles.tar | ssh user@remote "cd destination && tar cf -"
um alle Dateien in einem Durchgang zu übertragen.{}
Token? Ich sehe vielversprechend aus können Verwenden Sie mehrere{}
), müssen Sie möglicherweise angebenuser@remote:~/{}
als Bestimmungsort.Antworten:
Folgendes kann ich tun, wenn ein Host nur das Pushen von Inhalten und kein Rsync zulässt:
rsync
in dieses Schattenverzeichnis zu verschieben und Erfassen Sie die Ausgabe (gibt es--log-file
wenn du es schreiben willst)rsync
bestimmen Sie die zu löschenden Dateien oder drücke und mache eine Listequelle
Kannst du nicht machen
scp -r *.php destination
?quelle
/local/html
? alle * .php Dateien? nur geändert*.php
Dateien? was macht argument-name
bedeuten?-name
ist der Parameter, mit dem rsync nur PHP-Dateien filtert. Ich möchte idealerweise nur geänderte Dateien kopieren (wie Rsync), aber da Rsync nicht verfügbar ist, möchte ich nur PHP-Dateien kopieren (um Bandbreite zu sparen). Ist das sinnvoll? Ich schätze, ich könnte eine machenfind -exec scp
Befehl, aber ich müsste den Basispfad ergreifen und sicherstellen, dass das Zielargument auch hinzugefügt wird. Es scheint nur, dass es einen einfachen Weg geben sollte, dies zu tun.scp -r user @ ip: / data / files / * .php / tmp / files /
quelle