Festplatten Löschen
Ich musste letztens eine größere Menge Festplatten ins Nirvana befördern hier meine zugegeben nicht perfekte aber deutlich arbeitserleichternde Methode… Wer sich über den Wust wundert, das sind gewachsene Strukturen 🙂
Ich kann mit diesem Skript im Grunde beliebig viele Festplatten parallel mit shred löschen und zum Abschluss noch die SMART Daten als .txt nach /var/www legen. Dabei fordert einen das Script dazu auf fertige Platten zu tauschen.
Wem es nützt der möge sich bedienen. Aber bitte mit verstand:
#!/bin/bash #Platte nuken und smart auslesen mit hotswap #bitte mit vorsicht verwenden dieses skript ist dafür gemacht daten zu vernichten! #Seriennummer der Systemplatte (wird nicht angefasst) Alle anderen Schon! SYSTEMDRIVE="PVF904ZFR3RTWN" #Anzahl der zu startenden Jobs JOBS=3 #SMAR Daten Zielverzeichnis SMARTFOLDER=/var/www #Tempverzeichnis anlegen TEMPDIR=/tmp/hddclean #TEMPDIR=$(mktemp -d) if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi mkdir -p $TEMPDIR echo "Warning this script was designed to destroy data! (Hopefully the right)..." read -p "Press any key to continue... " nuke_instance() { jobnr=$1 while true; do sleep $jobnr for HOSTA in /sys/class/scsi_host/host?/scan; do echo "- - -" > $HOSTA done for PLADDE in /dev/sd?; do if [[ $(mkdir $TEMPDIR/$(basename $PLADDE) 2>&1) ]]; then echo Job $jobnr: $PLADDE is locked... sleep 1 else echo Job $jobnr: Working on $PLADDE... SERIAL=$(smartctl -a $PLADDE | grep "Serial Number" | tr -d " " | cut -d":" -f2) sleep $jobnr if [ $SERIAL ]; then if [[ $(mkdir $TEMPDIR/$SERIAL 2>&1) ]]; then echo Job $jobnr: $SERIAL is locked... else if [ $SERIAL == $SYSTEMDRIVE ]; then echo Job $jobnr: $PLADDE is my system disk no way... rm -rf $TEMPDIR/$SERIAL else if [ -e $SMARTFOLDER/$SERIAL.txt ];then echo Job $jobnr: $PLADDE is already done... please replace disk $SERIAL! echo 1 > /sys/block/$(basename $PLADDE)/device/delete && rm -rf $TEMPDIR/$SERIAL else echo Job $jobnr: $PLADDE with serial number $SERIAL will be nuked now... shred $PLADDE -f -z -n1 smartctl -a $PLADDE > $SMARTFOLDER/$SERIAL.txt echo 1 > /sys/block/$(basename $PLADDE)/device/delete && rm -rf $TEMPDIR/$SERIAL fi fi fi else echo Job $jobnr: no disk to work on! fi rm -rf $TEMPDIR/$(basename $PLADDE) fi done sleep 300 done } for inst in $(seq 1 $JOBS); do nuke_instance $inst & done
p.s. Ich bin nicht schuld wenn sich irgend jemand die falschen Daten weg schießt…
Schreibe einen Kommentar