Linux 15.010 Themen, 106.838 Beiträge

Aufgaben zum Arbeiten mit der bash!

Frank-Strauss / 9 Antworten / Flachansicht Nickles

Hallo,

Ich arbeite gerade mit dem Buch Linux - Das distributionsunabhängige Handbuch! http://openbook.galileocomputing.de/linux/

Ich bin bei Kapitel 4 ...... also arbeite mich gerade in die Shell ein, was auch sehr gut klappt.
Das Problem ist, das Befehle nur anhand eines Beispieles erklärt werden (welche ich auch nachmache!) - damit eine Savhe aber auch richtig fluppt, muss man mit ihr spielen (in dem Fall mit Shellkommandos!).
Mir fehlen aber die dazu nötigen Aufgaben um hier und da was auszuprobieren .......

Wie in der Überschrift schon genannt arbeite ich mit der bash .... vllt nützt diese Angabe etwas, falls nicht .... vergesst es!:)

natürlich könnt ihr hier Sachen reinposten für jedes x beliebiges Kapitel (nicht nur bis Kapitel 4)

danke schonmal für die Hilfe!


mfg Strauss

bei Antwort benachrichtigen
REPI Frank-Strauss „Aufgaben zum Arbeiten mit der bash!“
Optionen

Aufgabenstellung :

Shell Script erstellen. welche folgende Aufagbe löst:
Anlegen eines temporären Swapfiles in /tmp
Name der Swapdatei = swapfile

Das Ganze soll nur als root funktionieren, ansosten Warnung ausgbenen

Script soll bei Aufruf prüfen, ob es diese Datei ggf. schon gibt, dann mittels swapoff trenne und Plattenplattz löschen. Wenn Datei nicht existiert Datei anlegen, und mittels swapon zum Swap hinzufügen.
Defaultwert soll 32 MB sein, welcher aber als Startoption anders festgelegt werden kann.

Des Weiteren soll eine Prüfung erfolgen, ob der gesamte vefügbare Plattenplatz größer 10% vom Gesamtplattenplatz ist.

Hier die Lösung zum Üben: (leider ist die Strukturierung verloren gegangen)

#!/bin/sh
###########################################################################
# Bash-Shell-Script Anlage eines temporaeren Swapfiles
# zur Erweiterung des Swapbereiches
###########################################################################
# Syntax ./newswap <optional Groesse der Swapdatei als integer>
# Default als Groesse der Swapdatei ist 32 MB
###########################################################################
# Version
# 1.0 Ersterstellung 29.10.2001
# 1.1 User-Abfrage eingebaut 10.04.2004
###########################################################################
# Anlagen eines zusaetzlichen Swapfiles als Datei
ver="1.1"
swapdir="/tmp/" # Ablageort der Swapdatei ggf. anpassen
#swapdir="/mnt/dosf/" # Ablageort der Swapdatei ggf. anpassen
swapfilename="swapfile"
swaptarget=$swapdir$swapfilename
blocksize=1024
isroot=$(whoami)
swapcount=$[$blocksize * 32] # Defaultgroesse = 32MB
if [ $isroot = "root" ]; then

freespace="free -o -k -t"
helptxt="\n\n(C) 2001-04 by repi newswap V $ver\n=================================
\nVergroessern des Swapbereiches mittels zusaetzliche temporaerer Swapdatei
\nUsage: $0 (Speicher in MB als integer = 32MB default)\n-(fh)
--help\n-f Anzeige Speicherbelegung\n-h oder --help diese Hilfe\n"
case "$1" in
-f ) echo -e "\nSpeicher und Plattenbelegung im Zielverzeichniss : $swaptarget";
eval $freespace ;eval df $swapdir; exit ;;
-h | --help ) echo -e $helptxt; exit ;;
* ) ;;

esac
# Neue Dateigroesse bei optionaler Eingabe berechnen
if [ "$1" ] ; then
swapcount=$[$blocksize * $1]
fi

# Pruefen, ob Swapdatei existiert, dann anlegen, sonst
# Swapfile ausser Betrieb nehmen und loeschen
if test -e $swaptarget; then
# Swapfile ausser Betrieb nehmen
swapoff $swaptarget
# Swapfile loeschen
rm $swaptarget
#Speicheranzeige
free -o -k -t
else
# Ermitteln, ob Plattenplatz reicht
countall=$(df $swapdir | grep dev | awk '{print $2}')
countcheck=$(df $swapdir | grep dev | awk '{print $4}')
countnew=$[$countcheck - $swapcount]
usepercentnew=$[($countnew * 100) / $countall]
# Bei Plattenplatz < 10 % wird kein Swapdatei angelegt
if [ $usepercentnew -lt 10 ]; then
echo -e "\007Plattenplatz kleiner 10 % !, Swapfile kann nicht angelet werden !!"
else
echo "Bleiben freier Plattenspeicher: " $usepercentnew "%"
# Leerdatei gewuenschter Groesse erzeugen
dd if=/dev/zero of=$swaptarget bs=$blocksize count=$swapcount
# Initialisierung des Swapfiles
mkswap $swaptarget $swapcount
# Zurueckschreiben aller Aenderungen im Dateisystem
sync
# Swapfile in Betrieb nehmen
swapon $swaptarget
# Speicheranzeige
free -o -k -t
fi
fi
else
echo
echo "Dieses Tool funktioniert nur als root..."
echo "... Sie sind hingegen als "$isroot" angemeldet !"
echo
fi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen