Ist es möglich, dass SCP die kopierten Dateien nach Datum filtert, z. B. wenn Sie alle am 29.12. Erstellten Dateien kopieren und die anderen ignorieren möchten?
7
Das kann man nicht direkt mit machen scp
. Der Unix-Weg ist, Werkzeuge zu kombinieren, die Sie den find
Befehl wollen .
Hier ist ein Beispiel für die Suche nach einer Datei mit einem bestimmten Datum:
touch --date "2007-01-01" start
touch --date "2008-01-01" end
find -type f -newer start -not -newer end
Ich habe dieses Beispiel hier entnommen : http://www.cyberciti.biz/faq/linux-unix-osxfind-files-by-date/
Um dies in scp einzuspeisen, können Sie dies tun:
find -type f -newer start -not -newer end -exec scp {} dest: \;
Dadurch wird scp einmal pro Datei aufgerufen. Dies kann langsam sein, da die Verbindung jedes Mal hergestellt werden muss. Wenn Sie nur eine Handvoll Dateien haben und die Namen keine Leerzeichen enthalten, können Sie dies tun:
scp `find -type f -newer start -not -newer end` dest:
scp dest:`ssh dest find -type f -newer start -not -newer end` .
Hier wird eine effektive (einzeilige!) Alternative (von @sudodus) angegeben, die mit 'cpio' im Auskopiermodus über einen SSH-Kanal kopiert. Sie können die Suchargumente nach Bedarf anpassen, z. B. mithilfe der Tests time / min / newer.
Um Ihren genauen Datums- und Uhrzeit-Test zu erhalten, erstellen Sie auf Ihrem Quellsystem eine Dummy-Datei mit der korrekten Uhrzeit und dem korrekten Datum. Verwenden Sie den Test find -newer oder den Test -newerXY auf der Manpage. Siehe https://linux.die.net/man/1/find
Die Ausgabe des Befehls find, der auf dem fernen System ausgeführt wird, wird sicher über ssh an das lokale System zurückgeleitet und gespeichert.
Es scheint alles zu tun, was Sie benötigen, verwendet jedoch nicht 'scp' - was sich auf Ihre Kennzeichnung auswirken könnte. Es wird jedoch eine Kombination von Unix-Tools verwendet - dies ist der Unix-Ansatz!
In jedem Fall ist scp eine Abkürzung für die häufigsten Fälle. Dieser Ansatz ist leistungsfähiger, wenn das Filtern von Dateien erforderlich ist.
https://askubuntu.com/questions/1080590/how-to-use-find-in-scp-command
quelle