SCP-Dateien und Löschen von Dateien im Remote-Verzeichnis [geschlossen]


18

Ich bin ein Unix-Noob, also bitte etwas Geduld :-)

Ich habe ein Skript, das eine Reihe von Dateien auf einen anderen Server scannt.

Angenommen, es handelt sich um z1.foo, z2.foo usw. Ich möchte scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien scp-Dateien

Wie lösche ich Dateien sicher vom Ziel?

Vielen Dank.


msgstr "Dateien am Ziel überschreiben"? Wenn Sie scp-Dateien, die bereits auf dem Remote-Verzeichnis vorhanden sind, automatisch überschrieben werden
Aki

Es ist eine gute Idee, die Dateien mit einem Shell-Skript lokal zu löschen. Das heißt, Sie scpen Dateien, wann immer Sie möchten. Es gibt jedoch ein Shell-Skript, das täglich ausgeführt wird, um die Dateien in einem bestimmten Ordner zu entfernen, in dem Sie die Dateien aufbewahren. Der Befehl lautet etwa:find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian

Antworten:


21

So entfernen Sie Dateien nicht interaktiv:

ssh hostname "rm -f z100.foo z200.foo"

1
Was ist der Hostname? ist es servername@ipaddress:path/to/dir/?
HattrickNZ

1
Hostname ist einfach user:password@ipaddressoder user:password@dnsnameoder Sie können das Passwort weglassen, wenn es nicht benötigt wird. Ich habe es nur mit probiert root@somednsnameund es funktioniert gut. Der path/to/dirTeil, den ich in den Befehl rm als absoluten Pfad eingegeben habe, um sicherzustellen, dass er korrekt ist.
AsGoodAsItGets

6

Sie können beide Aufgaben mit demselben Befehl ausführen, indem Sie das --deleteFlag to verwenden rsync.

> ls -1 localdir/
a.foo
b.foo

> ssh remote-host "ls -1 remotedir/"
c.foo

> rsync -a --delete localdir/ remote-host:remotedir/

> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo

Die --deleteOption entfernt Dateien aus dem Zielverzeichnis, die in der Quelle nicht vorhanden sind. Es gibt einige Möglichkeiten, wann die Dateien gelöscht werden und wie mit ausgeschlossenen Dateien umgegangen wird.

> man rysnc
...
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

Die Manpage enthält auch diese Warnung:

Diese Option kann bei falscher Verwendung gefährlich sein! Es ist eine sehr gute Idee, zuerst mit --dry-run option( -n) zu prüfen, welche Dateien gelöscht werden, um sicherzustellen, dass wichtige Dateien nicht aufgelistet sind.


2

Wenn Sie den Benutzernamen und die Portnummer festlegen möchten, können Sie Folgendes tun:

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.