linux-l: undelete für linux

Axel K. Stammler h0755cid at rz.hu-berlin.de
Mi Sep 9 21:50:31 CEST 1998


Tja, nach einigen Dateiverlusten hab ich mir folgendes System gebastelt:

1. Aehnliche Idee wie unten: /usr/local/bin/rmonesafely

fullpathname=$(fullpathname
$1)
HOLE GANZEN PFAD ZUR ZU LOESCHENDEN DATEI

if echo $fullpathname | grep Waste
>/dev/null
GUCKE MA, OB DA IRGENDWO "Waste" DRINSTEHT

(KOENNTE AUCH "Papierkorb" HEISSEN)
then
WENN JA,...
   rm -i
$1
DANN LOESCH ECHT
else
SONST

if echo $fullpathname | grep ~
>/dev/null
WENN'S NUTZERVERZEICHNIS ("~", VIELLEICHT GEHT

AUCH "$HOME") MIT DRIN IS,...
then

if ls ~/Waste
>/dev/null
WENN DER NUTZER SCHON 'NEN PAPIERKORB HAT,...
then
   mv -v $1
~/Waste
DANN SCHIEB'S DAHIN
else
SONST
   mkdir
~/Waste
STELL IHN ERST HIN
   mv -v $1 ~/Waste
fi

else
SONST (LOESCHEN VON WOANDERS)

if ls /Waste
>/dev/null
DASSELBE MIT'M GLOBALEN PAPIERKORB
then
   mv -v $1 /Waste
else
   mkdir /Waste
   mv -v $1 /Waste
fi

fi
fi

2. Fuer's Loeschen mehrerer Dateien kapsle das: /usr/local/bin/rmsafely

for para in $*; do rmonesafely $para ; done

3. Mach'n Alias (bei Bedarf, wie unten)

4. Der Papierkorb wird regelmaessig beim Abmelden (z.B. ".bash_logout")
geleert: /usr/local/bin/clean-up

if ls ~/Waste >/dev/null
then
   echo Cleaning up your Waste basket.
   find ~/Waste/* -maxdepth 0 -atime 30 -exec /bin/rm -fv {} \;
-print                                         NORMALERWEISE NACH 30
TAGEN
   find ~/Waste/*% -maxdepth 0 -atime 7 -exec /bin/rm -fv {} \;
-print                                        "*%" SCHON NACH 'NER WOCHE
else
   echo You do not have a Waste basket.
fi

5. Weiterhin kann man z.B. stuendlich (CRONTAB) beim Arbeiten Kopien
machen:

59 * * * * nice -n 20 /usr/local/bin/backup.hourly >$HOME/Backup/report
2>&1

if
   ls -d $HOME/Backup >/dev/null 2>&1
then
   echo Directory exists. >/dev/null 2>&1
else
   echo Creating your personal backup directory.
   mkdir $HOME/Backup
fi

if
   ls $HOME/Backup/exclude >/dev/null 2>&1
then
   echo Exclude file exists. >/dev/null 2>&1
else
   echo Creating your exclude file. Edit if necessary.
   echo $HOME/Backup/* >$HOME/Backup/exclude
fi

if
   ls $HOME/Backup/backup.hourly.call >/dev/null 2>&1
then
   echo Backup call exists. >/dev/null 2>&1
else
   echo Creating backup call.
   echo 'tar -cPf' $(date +$HOME/Backup/hourly.%Y.%m.%d.%H.%M.tar.gzip)
'-N' $(date +%D) '-v -X '$HOME/Backup/exclude' -z '$HOME
>$HOME/Backup/backup.hourly.call
   chmod u+x $HOME/Backup/backup.hourly.call
fi

if
   $HOME/Backup/backup.hourly.call >/dev/null
then
   find $HOME/Backup/hourly.* -maxdepth 0 -mtime +1 -exec /bin/rm -fv {}
>$HOME/Backup/removed \;
# calculate YESTERDAY first?
   echo 'tar -cPf' $(date +$HOME/Backup/hourly.%Y.%m.%d.%H.%M.tar.gzip)
'-N' $(date +%D) '-v -X '$HOME/Backup/exclude' -z '$HOME
>$HOME/Backup/backup.hourly.call
   chmod u+x $HOME/Backup/backup.hourly.call
else
   echo Error calling 'backup.hourly.call'.
fi

Ich hoffe, ich hab die Geschichte hier nicht zu sehr in die Laenge
gezogen. Jedenfalls hat mir das alles schon massig geholfen. Bin
natuerlich fuer Tips immer dankbar.

Viel Erfolg!

Axel

Philipp Grau wrote:

> alias rm="mv $* ~/papierkorb" [*]
>
> Und dann muss man halt gelegentlich den Papierkork leeren!
>
> * ungetestet und so nicht brauchbar!!!! Vielleicht sollte man noch
>   die Informationen abspeichern wo die Datei/Verzeichnis herkam

Das zum Beispiel gibt's bei mir nur teilweise (durch die Aufteilung nach
Nutzer).
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : vcard.vcf
Dateityp    : text/x-vcard
Dateigröße  : 311 bytes
Beschreibung: Card for Axel K. Stammler
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/19980909/12bc0f3c/attachment.vcf>


Mehr Informationen über die Mailingliste linux-l