ubuntuusers.de

Shred-Skript

Status: Gelöst | Ubuntu-Version: Ubuntu 6.10 (Edgy Eft)
Antworten |

Shadow27374

Anmeldungsdatum:
16. August 2006

Beiträge: 246

Ich wüsste gerne wie ich ein Skript anlege welches ich zur Benutzung nur noch ausführen muss.
Es soll shred mit den Optionen -z und -u in einem immer gleichbleibenden Ordner durchgeführt werden. So das die von mir festgelegten Dateitypen nach Ausführung des Skripts überschrieben und gelöscht werden. Das wären Beispielsweise *.txt, *.jpg etc.

Angor

Avatar von Angor

Anmeldungsdatum:
30. Juli 2006

Beiträge: 1101

Wohnort: Bonn

Erstellen:

shred -u -z /pfad/der/dateien/*.endung                           

hab mir nur kurz die manpage angeschaut, kannte es vorher nicht.Wenn du alles in dem Ordner Löschen willst mach einfach em Ende *
Ausführbar machen:

 chmod +x shred.sh       ; Beispielname 


Wenn dus mithilfe von bsp "shred" im terminal ausführen willst dann mach

 sudo mv shred.sh /usr/bin/shred.sh        ;Beispiel


Dann kann mans immer mit shred ausführen.
Denk Ich\^^

gLoo

Anmeldungsdatum:
24. Oktober 2006

Beiträge: Zähle...

Wohnort: Groningen, Nederlands

hi
habe hier gerade mal reingeschaut und mich gefragt, wozu man "shred" braucht. Habe mir das manual auch angesehen, bin aber nicht recht schlau daraus geworden. Benutzt man es um Dateien nicht nur zu löschen sondern auch nichtwiederherstellbar zu machen?

mfg,
Flo

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Es versucht eine Datei mehrfach mit "Datenmüll" zu überschreiben und dann erst zu löschen. Ich sage absichtlich "versucht" weil man sich da bei modernen Dateisystemen nicht unbedingt drauf verlassen kann. Wenn man Daten in eine Datei schreibt, ist nicht unbedingt garantiert, dass die in dem selben Block auf der Platte landen, in dem auch die alten Daten gestanden haben.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Marc 'BlackJack' Rintsch hat geschrieben:

Es versucht eine Datei mehrfach mit "Datenmüll" zu überschreiben und dann erst zu löschen. Ich sage absichtlich "versucht" weil man sich da bei modernen Dateisystemen nicht unbedingt drauf verlassen kann. Wenn man Daten in eine Datei schreibt, ist nicht unbedingt garantiert, dass die in dem selben Block auf der Platte landen, in dem auch die alten Daten gestanden haben.

Oh - ich glaube, wenn es richtig programmiert ist, kann man sich darauf schon verlassen.

Die meisten Programmiersprachen bieten an, eine Datei im rw-Modus zu öffnen, und mit seek(position) darin rumzunavigieren.
Wenn man dabei die Größe nicht ändert gibt es für das Filesystem eigentlich keinen nachvollziehbaren Grund, die Datei zu verlagern.

Einmal überschreiben reicht aber - mehrfach überschreiben ist Humbug, wenn man keine uralte MFM-Platte benutzt, und selbst dann wird sich kaum jmd. die Rekonstruktion leisten können.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Wie wäre es damit: Geänderte Daten werden in neue Blöcke geschrieben und erst bei einem flush() oder close() werden die Blockzeiger umgesetzt und die alten Blöcke freigegeben um zu verhindern, dass bei einem Programm- oder Computerabsturz eine "halb" geänderte Datei liegen bleibt. Journaling-Dateisysteme wie ReiserFS oder ext3 unterstützen doch so etwas ähnliches wie Transaktionen in Datenbanken.

Die Manpage von shred enthält dazu auch eine Warnung, dass es auf vielen modernen Dateisystemen nicht zuverlässig ist.

Shadow27374

(Themenstarter)

Anmeldungsdatum:
16. August 2006

Beiträge: 246

Wie man shred anwendet weiss ich ja bereits ich bräuchte aber ein Icon zum doppelklicken welches mit meine vordefinierten Endungen überschreibt. Da ich bisher garkeine Ahnung von Linuxscripten habe frage ich hier wie ich eins erstelle.

Angor

Avatar von Angor

Anmeldungsdatum:
30. Juli 2006

Beiträge: 1101

Wohnort: Bonn

Warnung:
falls du das Skript nach zB /usr/bin verschiebst nenn es nicht shred.sh da es Konflikte mit dem normalen shred machen würde.
Reicht das was Ich dir da aufgeschrieben hab bzw funktioniert es?

Shadow27374

(Themenstarter)

Anmeldungsdatum:
16. August 2006

Beiträge: 246

Ich soll also ne Datei mit obigen Inhalt erstellen und sie irgendwas.sh nennen?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Marc 'BlackJack' Rintsch hat geschrieben:

Wie wäre es damit: Geänderte Daten werden in neue Blöcke geschrieben und erst bei einem flush() oder close() werden die Blockzeiger umgesetzt und die alten Blöcke freigegeben um zu verhindern, dass bei einem Programm- oder Computerabsturz eine "halb" geänderte Datei liegen bleibt. Journaling-Dateisysteme wie ReiserFS oder ext3 unterstützen doch so etwas ähnliches wie Transaktionen in Datenbanken.

Die Manpage von shred enthält dazu auch eine Warnung, dass es auf vielen modernen Dateisystemen nicht zuverlässig ist.

Ja.
Ist die Inode-Nummer nicht - solange ich die Platte nicht neu formatiere - ein geeignetes Kontrollinstrument?
So daß, wenn vor dem schreddern, und danach, die inode-Nummer identisch ist, die Datei ihre Position behalten hat?

Angor hat geschrieben:

Warnung:
falls du das Skript nach zB /usr/bin verschiebst nenn es nicht shred.sh da es Konflikte mit dem normalen shred machen würde.


Ein Konflikt zwischen shred und shred.sh tritt eigentlich nicht auf, da man nicht wie bei DOS die Endung einer ausführbaren Datei weglassen kann.
Aber beim User kann eine solche Benennung natürlich doch Verwirrung stiften.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Die Inode-Nummer sagt nur, dass die Metainformation bzw. der Einstieg dazu, an der gleichen Stelle geblieben ist. Zumindest beim klassischen UNIX Dateisystem. Grundsätzlich muss die Inode-Nummer nicht einmal das garantieren.

Kleines (Gegen)Beispiel für klassisches Dateisystem: Ich habe eine Datei die x Blöcke auf der Platte belegt und benutze truncate() um die Datei auf weniger Blöcke zu kürzen. Wenn ich jetzt wieder Daten in die Datei schreibe, gibt es keinen Grund zu erwarten, dass die in den selben Blöcken auf der Platte landen, in denen die alten Daten gestanden haben. Die Inode-Nummer bleibt aber gleich.

Angor

Avatar von Angor

Anmeldungsdatum:
30. Juli 2006

Beiträge: 1101

Wohnort: Bonn

@user unknown: danke:)
@ shadow: jop. erstellen ( an den anfang vll noch #! /usr/bin/bash )
dann kannste mit dem wenne in der konsole einfach "namedeinesskripts.sh" eingibst das löschen starten.
chmod +x dername.sh nit vergessen

Shadow27374

(Themenstarter)

Anmeldungsdatum:
16. August 2006

Beiträge: 246

Danke funktioniert das "#! /usr/bin/bash" braucht man nicht habe ich festgestellt.
Jetzt muss ich nach dem Doppelklicken aber leider noch das Ausführen bestätigen.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Falls Du Nautilus benutzt - der besitzt eine eigene Technik, um Scripte auf markierte Dateien auszuführen.
Das habe ich mal hier im Forum beschrieben, und den Link nicht parat.
Selbst bin ich von nautilus weg, deshalb kann ich da auch nicht leicht nachsehen.

Jetzt hab' ich doch nachgeschaut - hier ist es:
http://forum.ubuntuusers.de/topic/44628/?highlight=nautilus+script

Angor

Avatar von Angor

Anmeldungsdatum:
30. Juli 2006

Beiträge: 1101

Wohnort: Bonn

Shadow27374 hat geschrieben:

Danke funktioniert das "#! /usr/bin/bash" braucht man nicht habe ich festgestellt.
Jetzt muss ich nach dem Doppelklicken aber leider noch das Ausführen bestätigen.

Musst du auch bestätigen wenn du am Anfang "#! /usr/bin/bash" oder "#! /usr/bin/sh" hast?

Antworten |