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