Shell script

Het shellscript (shivalik Ver. 1.0) biedt een makkelijke manier om backups te maken van essentiële bestanden en informatie. Na het downloaden van het script:

Je kunt het bovenstaande script uitvoeren/opstarten (denk eraan dat je hier "root" voor moet zijn) -- typ ./shivalik

Het script is overvloedig gedocumenteerd. Het wijzigt (of verwijdert) geen van je bestanden of directory's. Het maakt een goed beveiligde backup van een aantal essentiële bestanden en informatie. Het volledige script kun je doornemen en de werking ervan volgen. Neem het script gerust door en voeg extra mogelijkheden toe, of bestanden waarvan je een backup wilt. Je kunt je feedback ook naar de auteur van dit script sturen ().

Denk er aan dat het shivalik script geen tool is voor een volledige backup en het herstel daarvan. Ideaal bezien kun je het beste een letterlijke kopie maken van je gehele Linux installatie samen met alle bestanden en directory's. Dit is niet altijd mogelijk, nodig of raadzaam. Het beste wat je anders zou kunnen doen is van de meest essentiële informatie en bestanden een backup maken. Het shivalik script doet dit voor je. Het script maakt een directory aan met de naam /root/postinfo/, en bewaart daarin alle essentiële informatie (en bestanden). Om absoluut voorbereid te zijn op een mogelijk voorval, moet je de volledige /root/postinfo/ naar een verwijderbaar medium kopiëren, zodra het script is uitgevoerd.

Herstel en reparatie: In het geval van later optredende problemen, kun je de beschadigde bestanden reconstrueren door de bestanden waarvan je een backup hebt te kopiëren vanuit /root/postinfo. Zo simpel is het.

De structuur van de directory /root/postinfo/ en de bestanden die hierin zijn te vinden, bestaan uit:

/root/postinfo/summary

Bevat een samenvattingsrapport van de status van je systeem (geheugen, partities, mount points, diskgebruik). Dit bestand bevat ook de lijst met bestanden die zijn opgeslagen. Hierin staat ook administratieve info zoals de datum en tijd van de backup, het versienummer van het shivalik script enz.

/root/postinfo/postinfo.tar.gz

Bevat een kopie van de eerdere postinfo (wanneer dit van toepassing is). Dit is een uitwijkmogelijkheid naar een uitwijkmogelijkheid!

/root/postinfo/snapshot.gz

Bevat een gezipte gestructureerde lijst van ALLE bestanden en directory's van je Linux systeem (de directory's "tree"). Je kunt dit bestand uitpakken en elke gewone teksteditor gebruiken om achter de lokatie van elk bestand te komen. Uiteraard kun je niet de inhoud van dat bestand ophalen, tenzij je dit expliciet elders hebt opgeslagen.

/root/postinfo/shivalik

Dit is een kopie van het shivalik script welke werd gebruikt voor het maken van de post installatie backup. Op moment bij herstel van een ongeluk, kun je dit script altijd bestuderen om er achter te komen op welke wijze de backup eerder werd gemaakt. Je zult altijd een consistente kopie van het script tot je beschikking hebben en de bestanden die door het script zijn aangemaakt.

/root/postinfo/etcfiles/

Deze subdirectory bevat een kopie van diverse essentiële bestanden uit de directory /etc/ van je Linux installatie. Het bevat tevens kopieën van de diverse configuratiebestanden die zijn opgeslagen in de directory /etc/.

/root/postinfo/otherfiles/

Deze subdirectory bevat een kopie van een aantal essentiële bestanden (de bestanden die niet in de directory /etc/ staan) van je Linux installatie. Als je wilt, kun je hier extra andere bestanden toevoegen, zodat ze automatisch met de anderen worden bewaard.

Het script...

#-----------------------------------------------
#           shivalik  \(Ver. 1.0\)
#Lees alsjeblieft eerst de sectie WAARSCHUWING van dit script

#Dit script verzamelt post installatie informatie
#dit kan ook zo nu en dan worden uitgevoerd om alle nuttige 
#informatie over je Linux installatie op een enkele plaats
#te verzamelen. De uitvoer zal worden weggeschreven naar
#/root/postinfo/. Het samenvattingsrapport zal worden 
#weggeschreven in /root/postinfo/summary

#Raadpleeg voor gebruik en gerelateerde informatie
#http://algolog.tripod.com/postlnx.htm
# ----------------------------------------------

clear
echo
echo "-----------------------------------------------------------"
echo Dit is de uitvoer van Partha\'s shivalik script \(Ver.1.0\)
echo Je moet \"root\" zijn wil dit script correct werken
echo Je moet ook de voorwaarden en gegeven waarschuwingen lezen 
echo in de sectie WAARSCHUWING van dit script en deze accepteren 
echo "-----------------------------------------------------------"
echo
echo "### STAP 0 ### Voorbereidingswerk"
echo Eerst maken we de directory /root/postinfo/ aan als deze nog niet bestaat
test ! -d /root/postinfo && mkdir /root/postinfo

echo Bewaar de huidige versie van alle postinfo bestanden
echo Maar eerst verwijderen we de eerdere versie, d.w.z. huidige-1 versie
test -e /root/postinfo/oldpostinfo* &&  rm /root/postinfo/oldpostinfo.tar.gz
#het oldpostinfo bestand is tijdelijk aangemaakt in /root
#het zal worden verplaatst naar /root/postinfo
tar -zcvf /root/oldpostinfo.tar.gz /root/postinfo/*

#Controleer of de bovenstaande tar succesvol was
if
test -s /root/oldpostinfo.tar.gz
then 
echo oude postinfo bewaard in /root/oldpostinfo.tar.gz
ls -l /root/oldpostinfo*
else
echo Kon oldpostinfo niet bewaren
echo Verlaat shivalik script
exit
fi


#verwijder nu alle huidige postinfo bestanden
rm -rf /root/postinfo/*
#en begin een nieuw samenvattingsbestand
echo  shivalik \(Ver. 1.0\) > /root/postinfo/summary
echo -n "Report created on: " >> /root/postinfo/summary
date -R >> /root/postinfo/summary
echo Verplaats nu het oude postinfo bestand naar de /root/postinfo/ directory
mv /root/oldpostinfo.tar.gz /root/postinfo
#

#Kopieer het shivalik script
echo het hemd is nader dan de rok
echo We maken een kopie van het shivalik script
echo We maken een kopie van het shivalik script >> /root/postinfo/summary
echo in /root/postinfo/ >> /root/postinfo/summary
cp ./shivalik /root/postinfo/shivalik

#de stand van zaken
echo
echo Inhoud van /root/postinfo aan het einde van STAP-0
ls -AlR /root/postinfo
echo Einde "### STAP 0 ###
echo
#
#
echo
echo "### STAP 1 ### Maak een momentopname van het systeem"
echo >> /root/postinfo/summary
echo "### STAP 1 ### Een momentopname van alle bestanden en directory's" >>  /root/postinfo/summary
echo De eerste stap bestaat uit het vastleggen van je computerinhoud
echo Dit neemt een paar minuten in beslag
echo Dus haal een kop koffie!
ls -AlRH / >> /root/postinfo/snapshot
rm -f /root/postinfo/snapshot.gz
gzip /root/postinfo/snapshot
echo momentopname gemaakt
echo Een zeer uitgebreide lijst van alle bestanden is aangemaakt en >> /root/postinfo/summary
echo is opgeslagen in /root/postinfo/snapshot.gz >> /root/postinfo/summary
ls -l /root/postinfo/snapshot.gz >> /root/postinfo/summary

# de stand van zaken aan het einde van deze stap
echo
echo Inhoud van /root/postinfo aan het einde van deze STAP
ls -l /root/postinfo
echo Einde "### STAP 1 ###
echo
#
#
echo

echo "### STAP 2 ### Vitale statistieken"
echo >> /root/postinfo/summary
echo "### STAP 2 ### Vitale statistieken" >> /root/postinfo/summary

echo Verzamelen van vitale statistieken

echo .....van het geheugen
echo "---- cat /proc/meminfo ---------" >> /root/postinfo/summary
cat /proc/meminfo >> /root/postinfo/summary

echo .....van partities en mountpoints
echo "---- cat /proc/partitions---------" >> /root/postinfo/summary
cat /proc/partitions >> /root/postinfo/summary

echo .....van gebruikte diskruimte
echo "---- df ---------" >> /root/postinfo/summary
df >> /root/postinfo/summary

echo .....van modules
echo "---- cat /proc/modules ---------" >> /root/postinfo/summary
cat /proc/modules >> /root/postinfo/summary

# de stand van zaken aan het einde van deze stap

echo
echo Inhoud van /root/postinfo aan het einde van STAP-2
ls -AlR /root/postinfo
echo Einde "### STAP 2 ###
echo
#
#
echo
echo "### STAP 3 ### Nu slaan we een aantal belangrijke bestanden op vanuit /etc"
echo Deze sectie moet zonodig worden aangepast, afhankelijk van de
echo door je uitgevoerde installatie, en de door jou gebruikte distributie,
echo en de opties die je tijdens de installatie hebt gekozen.

echo >> /root/postinfo/summary
echo "### STAP 3 ### Nu slaan we een aantal belangrijke bestanden uit /etc op" >>  /root/postinfo/summary
test ! -d /root/postinfo/etcfiles && mkdir /root/postinfo/etcfiles

echo ..... bewaren van XF86Config -- je XWindow configuratiebestand
cp /etc/XF86Config /root/postinfo/etcfiles
echo "cp /etc/XF86Config /root/postinfo/" >> /root/postinfo/summary

echo ..... bewaren van /etc/fstab bestand
cp /etc/fstab  /root/postinfo/etcfiles
echo "cp /etc/fstab /root/postinfo/" >> /root/postinfo/summary

echo ..... bewaren van het /etc/profile bestand
cp /etc/profile  /root/postinfo/etcfiles
echo "cp /etc/profile /root/postinfo/" >> /root/postinfo/summary

echo ..... bewaren van het /etc/profile.local bestand
cp /etc/profile.local  /root/postinfo/etcfiles
echo "cp /etc/profile.local /root/postinfo/" >> /root/postinfo/summary

echo ".... bewaren van /etc/*conf bestanden"
cp /etc/*conf /root/postinfo/etcfiles

echo ".... bewaren van /etc/*config bestanden"
cp /etc/*config /root/postinfo/etcfiles

echo de volgende bestanden uit /etc zijn gekopieerd naar /root/postinfo/etcfiles >> /root/postinfo/summary
echo "/etc/*conf" >> /root/postinfo/summary
echo "/etc/*config" >> /root/postinfo/summary

# de stand van zaken aan het einde van deze stap
echo
echo Inhoud van /root/postinfo aan het einde van deze STAP-3
ls -AlR /root/postinfo
echo Einde "### STAP 3 ###
echo
#
#

echo
echo "### STAP 4 ### Nu bewaren we nog wat andere belangrijke bestanden"
echo Het kan zijn dat dit deel nog iets moet worden aangepast, afhankelijk
echo van de uitgevoerde installatie, en de door je gebruikte distributie,
echo en de opties die je voor de installatie hebt gekozen.
echo Wat hierop volgt is ontworpen voor SuSe  7.1

echo "### STAP 4 ### Nu bewaren we nog een aantal andere belangrijke bestanden" >>  /root/postinfo/summary
echo in /root/postinfo/otherfiles >> /root/postinfo/summary
echo Je kunt hier nog andere bestanden toevoegen waarvan een backup
echo moet worden gemaakt
test ! -d /root/postinfo/otherfiles && mkdir /root/postinfo/otherfiles
ls -l /root/postinfo/

echo ..... bewaren van /etc/init.d/boot.local --
cp /etc/init.d/boot.local /root/postinfo/otherfiles
echo "cp /etc/init.d/boot.local /root/postinfo/otherfiles" >>  /root/postinfo/summary

echo ..... bewaren van /etc/init.d/halt.local --
cp /etc/init.d/halt.local /root/postinfo/otherfiles
echo "cp /etc/init.d/halt.local /root/postinfo/otherfiles" >>  /root/postinfo/summary

# stand van zaken aan het einde van deze stap
echo
echo Inhoud van /root/postinfo aan het einde van deze STAP-4
ls -AlR /root/postinfo
echo Einde "### STAP 4 ###
echo

echo
echo "### STAP 999 ### Afronden, opschonen"
echo >> /root/postinfo/summary

echo "### STAP 999 ### Afronden, opschonen, opsommen" >>  /root/postinfo/summary
echo opsommen, opschonen
# om beveiligingsredenen maken we /root/postinfo ontoegankelijk en
# onzichtbaar voor niet-root gebruikers
chmod 700 /root/postinfo
chmod 700 /root/postinfo/etcfiles
chmod 700 /root/postinfo/otherfiles
chmod 700 /root/postinfo/*
chmod 700 /root/postinfo/etcfiles/*
chmod 700 /root/postinfo/otherfiles/*
echo Dit is de inhoud van /root/postinfo >> /root/postinfo/summary
ls -AlR /root/postinfo >> /root/postinfo/summary
echo "###### THE END #####" >> /root/postinfo/summary

# stand van zaken aan het einde van deze stap
echo
echo Inhoud van /root/postinfo aan het einde van deze STAP-999
ls -AlR /root/postinfo
echo Einde "### STAP 999 ###"
echo
echo "###### HET EINDE #####"
echo BELANGRIJK: Je moet nu alle bestanden in /root/postinfo op een 
echo veilige plek bewaren, bij voorkeur op een andere disk of op een
echo verwijderbaar backupmedium.
echo " "
echo In /root/postinfo/summary vind je een samenvattingsrapport
echo van deze procedure
echo Een eerdere versie van een samenvatting \(zover van toepassing\) is
echo opgenomen in /root/postinfo/oldpostinfo.tar.gz
echo " "

#
echo "
#---------------------------------------------------------
#               WAARSCHUWING  WAARSCHUWING WAARSCHUWING
#                shivalik (ver. 1.0)
# Dit script werd je ter beschikking gesteld zonder enige garantie
# of zekerheden over de performance of bruikbaarheid ervan voor enig
# doel. Je gebruikt dit script uit eigen initiatief en bereidheid,
# op eigen risico en verantwoording.
# De laatste versie van dit script en daaraan gerelateerde informatie
# is te vinden op http://algolog.tripod.com/postlnx.htm
# Copyrights en alle rechten voorbehouden door:
# Dr. S. Parthasarathy (algolog@hd1.vsnl.net.in)
#--------------------------------------------------------
"