Wer seinem Linux (als Beispiel dient hier Debian) Informationen zur Hardware entlocken möchte, kann dies unter-anderem mit den folgenden Kommandos machen.
1.) Allgemeine Hardware-Infos
dmidecode ist ein Tool um das DMI (SMBIOS) eines Computers ausliest, es wird eine Tabelle erzeugt, in welche eine Beschreibung der Hardware Komponenten deines PC aufgeführt wird… z.B. Informationen wie Serien-Nummern und BIOS Version.
aptitude install dmidecode
dmidecode | less
Alternativ wäre hier auch noch lshw bzw. hwinfo zu erwähnen, diese beiden Programme zeigt eine Hardware Liste deines PC/Servers an.
aptitude install lshw
lshw | less
bzw. mittels w3m anzeigen lassen
lshw -html | w3m -T text/html
lshw -short | less
H/W path Device Class Description
====================================================
system A7N8X2.0
/0 bus A7N8X2.0
/0/0 memory 64KiB BIOS
/0/4 processor AMD Athlon(tm) XP 2600+
/0/4/9 memory 128KiB L1 cache
/0/4/a memory 512KiB L2 cache
/0/26 memory 2560MiB System Memory
[...]
aptitude install hwinfo
hwinfo | less
hwinfo --short | less
cpu:
AMD Athlon(tm) XP 2600+, 1921 MHz
keyboard:
/dev/input/event0 AT Translated Set 2 keyboard
Mit dem folgenden Kommando, werden die Informationen zu den “Memory Module” angezeigt ->
sudo dmidecode --type 6
bzw.
sudo dmidecode --type 17
Alternativ kann man sich die Infos auch mit lshw anzeigen lassen, dafür müssen wir als erst-einmal, wir zuvor Beschrieben, dass entsprechende Paket installieren und dann die entsprechenden Infos zum RAM anzeigen lassen ->
lshw -class memory
einige Infos über den aktuellen Speicherverbrauch kann man mit folgenden Kommando in Erfahrung bringen ->
cat /proc/meminfo
bzw.
free -mt
3.) PCI Hardware-Infos
lspci zeigt eine Liste mit allen PCI Geräten an. (z.B. Grafikkarte, Soundkarte, Netzwerkkarte…)
aptitude install pciutils
lspci
folgendes Kommando zeigt deine Soundkarte an ->
lspci | grep
folgendes Kommando zeigt deine Grafikkarte an ->
lspci | grep VGA
folgendes Kommando zeigt deine Netzwerkkarte an ->
lspci | grep Ethernet
4.) CPU Hardware-Infos
Folgende zeigt Infos zur CPU an (z.B. Beschreibung, Version, MHZ, FSB…)
lshw -class cpu
bzw.
cat /proc/cpuinfo
und dies die Auslastung (load) der CPU
cat /proc/loadavg
bzw.
top
5.) Festplatten Hardware-Infos
Folgendes Kommando zeigt alle Partitionen an
cat /proc/partitions
bzw.
fdisk -l
und mit dem nächsten Befehl kannst du mittels S.M.A.R.T. herausfinden, ob es deiner Festplatte gut geht, oder ob du diese baldmöglichst austauschen solltest. (die SMART Unterstützung muss im BIOS aktiviert werden)
Als erstes installieren wir dies einmal…
aptitude install smartmontools
… dann Kommentieren wir alles mit “#” in der folgenden Datei aus, so dass der Daemon nicht automatisch gestartet wird.
vim /etc/default/smartmontools
folgendes zeigt alle Infos zu einer Festplatte an ->
smartctl --all /dev/h(s)da
zeigt nur an, ob die Festplatte noch OK ist ->
smartctl -H /dev/h(s)da
und dies zeigt Festplatten-Infos an (z.B. Model, Seriennummer, Firmware…)
Ich wohne in einem ländlichen Gebiet (Ork) und habe zirka eine 1000-er DSL-Leitung…
… leider nutzt mein Bruder nun die Leitung um sein “GuildWars” zu spielen, außerdem habe ich mein W-Lan mit einem zweiten SpeedTouch-Router erweitert, so dass ich im ganzen Haus W-Lan habe und auch meine Schwester, Mutter und Vater online gehen können, welche natürlich zusätzlich die Leitung ausbremsen. Zudem habe ich da noch einen kleinen Xen-Server in meinem Schrank eingebaut aber dazu gleich… :)
Also hab ich mir gedacht, dass ich einen Proxy aufstelle, sodass zumindest Bilder, Updates, … welche jemand bereits heruntergeladen hat, nicht noch einmal aus dem Internet geladen werden müssen.
Eines der Kriterien, die der Proxy-Server erfüllen sollte war, dass ich keine Werbung mehr auf den Webseite haben wollte, dann am besten noch Anonym surfen kann, des weiteren wollte ich es irgendwie hin-bekommen, dass ich meinen kleinen V-Server, auf welchem auch diese Webseite läuft in das ganze geschehen mit einbeziehen kann, um dessen Download-Speed zu nutzen und dass alles ohne sich ständig von intern am Proxy Authentifizieren zu müssen.
Die Firewall kann per Web-Oberfläche aus dem “grünen”-Netz (192.168.0.0/24) erreicht werden, zudem wurde die Konfiguration zusätzlich auf der Konsole verändert, so dass der Proxy z.B. nicht preisgibt, dass er etwas mit der Anfrage zu tun hat, somit wird der verwendete Browser/Betriebssystem/Auflösung/Herkunft verschleiert. Ausserdem wurde mithilfe der Weboberfläche eingestellt, dass es einen “Vorgelagerter Proxy” gibt, somit wird die Anfrage ggf. an Meister-Proxy weitergeleitet, wenn diese nicht bereits im Cache des Proxys zu finden ist.
Auf Meister-Proxy trifft die Verbindung als erstes auf den ersten Ziproxy-Server, welcher Bilder vom Format “JPEG 2000” zurück in “JPEG” konvertiert, warum dies nötig ist erschließt sich gleich… der nächste Proxy an den die Anfrage gerichtet wird ist ein Squid-Proxy, dieser ist so eingestellt, dass er nicht die aktuellen Updates, Download usw. wie der Proxy auf der Endian Firewall zwischenspeichert. Dieser Proxy speichert Dateien, welche häufig angefragt werden. Dieser leitet die Anfrage nun zum letzten Proxy in diesem Netzwerk weiter. Der zweite Ziproxy-Server empfängt von meinen V-Server HTML-Dateien, welche mit gzip komprimiert sind und Bilder welche im “JPEG 2000” konvertiert und somit verkleinert wurde, leider können dies nicht alle Browser darstellen bzw. verarbeiten, diese Ziproxy-Server macht ein de-gzip und somit erschließt sich auch der Sinn der zweiten Ziproxy-Servers, welcher die Bilder wider zurück konvertiert.
Der V-Server nimmt die Anfrage entgegen, und komprimiert die Daten mittels gzip und wandelt die Bilder in das Format “JPEG 2000” um, dann wird die Anfrage noch an den letzen Proxy geleitet, welcher die Werbung, Popups usw. entfernt und somit keine Werbung über meine langsame Leitung übertagen werden muss.
Zusammenfassung:
1.) Endian Firealll: Squid – Cachen von akuellen Dateien (z.B. Updates)
2.) Meister-Proxy: Ziproxy – dekomprimieren von Bildern für den Enduser
3.) Meister-Proxy: Squid – Cachen von häufigen Dateien (z.B. Google-Logo)
4.) Meister-Proxy: Ziproxy – dekomprimieren von gzip-Daten
5.) V-Server: Ziproxy – Komprimierung mittels “gzip” und “JPEG 2000”
6.) V-Server: Privoxy – Filtern von Werbung
Im grunde muss man diese Zusammenfassung nun rückwärts lesen, so sieht man den Weg, welchen die Webseite durchwandert, bis diese im Browser dargestellt wird.
Proxy-Server
Auf das Bild klicken, um es groß zu sehen!
Die Konfiguration:
Meister-Proxy: 2-mal Ziproxy
cd /usr/src/
wget http://kent.dl.sourceforge.net/sourceforge/ziproxy/ziproxy-2.7.1.tar.bz2
tar --bzip -xvf ziproxy-2.7.1.tar.bz2
cd ziproxy-2.7.1/
# Defaults for ziproxy initscript
# sourced by /etc/init.d/ziproxy
# installed at /etc/default/ziproxy by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Additional options that are passed to the Daemon.
# DAEMON_OPTS="-c /etc/ziproxy/ziproxy.conf"
DAEMON_OPTS1="-c /etc/ziproxy/ziproxy-link.conf"
DAEMON_OPTS2="-c /etc/ziproxy/ziproxy-user.conf"
vim /etc/init.d/ziproxy
#!/bin/sh
### BEGIN INIT INFO
# Provides: ziproxy
# Required-Start: $network $local_fs
# Required-Stop: $network $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Init script for ziproxy
# Description: This is the init script for ziproxy.
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/ziproxy
NAME=ziproxy
DESC=ziproxy
test -x $DAEMON || exit 0
PIDFILE=/var/run/$NAME.pid
DODTIME=1 # Time to wait for the server to die, in seconds
# If this value is set too low you might not
# let some servers to die gracefully and
# 'restart' will not work
# Include ziproxy defaults if available
if [ -f /etc/default/ziproxy ] ; then
. /etc/default/ziproxy
fi
DAEMON_OPTS1="$DAEMON_OPTS1 -d"
DAEMON_OPTS2="$DAEMON_OPTS2 -d"
set -e
running_pid()
{
# Check if a given process pid's cmdline matches a given name
pid=$1
name=$2
[ -z "$pid" ] && return 1
[ ! -d /proc/$pid ] && return 1
cmd=`cat /proc/$pid/cmdline | tr "00" "n"|head -n 1 |cut -d : -f 1`
# Is this the expected child?
##[ "$cmd" != "$name" ] && return 1
[ "$cmd" != "$name" ] && return 1
return 0
}
running()
{
# Check if the process is running looking at /proc
# (works for all users)
# No pidfile, probably no daemon present
[ ! -f "$PIDFILE" ] && return 1
# Obtain the pid and check it against the binary name
pid=`cat $PIDFILE`
running_pid $pid $DAEMON || return 1
return 0
}
force_stop() {
# Forcefully kill the process
[ ! -f "$PIDFILE" ] && return
if running ; then
kill -15 $pid
# Is it really dead?
[ -n "$DODTIME" ] && sleep "$DODTIME"s
if running ; then
kill -9 $pid
[ -n "$DODTIME" ] && sleep "$DODTIME"s
if running ; then
echo "Cannot kill $NAME (pid=$pid)!"
exit 1
fi
fi
fi
rm -f $PIDFILE
return 0
pkill -9 ziproxy
}
is_not_running() {
if ! running; then
echo "$NAME is not running."
exit 1
fi
}
case "$1" in
start)
echo -n "Starting $DESC: "
if running; then
echo "$NAME is already running."
exit 1
fi
start-stop-daemon --start --quiet --pidfile $PIDFILE
--exec $DAEMON -- $DAEMON_OPTS1 > $PIDFILE
start-stop-daemon --start --quiet --pidfile $PIDFILE
--exec $DAEMON -- $DAEMON_OPTS2 > $PIDFILE
if running; then
echo "$NAME."
else
echo " ERROR."
fi
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE
--exec $DAEMON
echo "$NAME."
;;
force-stop)
echo -n "Forcefully stopping $DESC: "
is_not_running
force_stop
if ! running; then
echo "$NAME."
else
echo " ERROR."
fi
pkill -9 ziproxy
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo "Reloading $DESC configuration files."
# start-stop-daemon --stop --signal 1 --quiet --pidfile
# /var/run/$NAME.pid --exec $DAEMON
#;;
force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart" except that it does nothing if the
# daemon isn't already running.
# check wether $DAEMON is running. If so, restart
start-stop-daemon --stop --test --quiet --pidfile
/var/run/$NAME.pid --exec $DAEMON
&& $0 restart
|| exit 0
;;
restart)
echo -n "Restarting $DESC: "
is_not_running
start-stop-daemon --stop --quiet --pidfile
/var/run/$NAME.pid --exec $DAEMON
[ -n "$DODTIME" ] && sleep $DODTIME
start-stop-daemon --start --quiet --pidfile
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS1 > $PIDFILE
start-stop-daemon --start --quiet --pidfile
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS2 > $PIDFILE
echo "$NAME."
;;
status)
echo -n "$NAME is "
if running ; then
echo "running."
else
echo "not running."
exit 1
fi
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status|force-stop}" >&2
exit 1
;;
esac
exit 0
Ein Skript, ein Befehl oder sonstiges, was in einen bestimmten Rhythmus wiederholt in der ausgeführt werden soll, genau dafür ist ein Cronjob zuständig.
cron
Um nun einen cronjob einzutragen, muss man sich zunächst für einen Editor für diesen Zweck entscheiden… in diesem Fall setzen wir als Standart-Editor “VIM” ->
export EDITOR=vim
das Kommando:
crontab -l
-> zeigt deine crontab-Einträge an
crontab -u -l
-> zeigt alle crontab-Einträge von einem bestimmten “user” an
crontab -e
-> editiert deine crontab-Einträge
crontab -u -e
-> editiert die crontab-Einträge von einem bestimmten “user”
crontab -r
-> löscht alle deine crontab-Einträge
die Syntax:
[Minuten] [Stunden] [Tag des Monats] [Monat] [Tag der Woche] [Kommando]
– [Minuten] -> 0-59 – [Stunden] -> 0-23 – [Tag des Monats] -> 1-31 – [Monat] -> 1-12 – [Tag der Woche] -> 0-7 (0 oder 7 = Sonntag)
– “* * * * *” -> das Skript wird jede Minute ausgeführt – “> /dev/null” -> es hat keine Ausgabe auf der Konsole – “2>>” -> Fehler werden ins Logfile geschrieben
30 00 * * * /home/user/test2.sh &> /dev/null
– “30 00 * * *” -> das Skript wird jeden Tag um 00:30 Uhr ausgeführt – “&> /dev/null” -> es werden keine Ausgaben ausgegeben (kein Log)
– “0 8-20/2 * * *” -> das Skript wird jede zwei Stunden von 8 bis 20 Uhr ausgeführt
1,2,5,9 -> jede erste, zweite, fünfte, neunte (Minute, Stunde… ) 0-4,8-12 -> von 0 bis 4 und von 8 bis 12 (Minute, Stunde… ) */5 -> jede fünf (Minute, Stunde… ) 1-9/2 -> von 1 bis 9 in zweier Schritten (Minute, Stunde… )
Mit folgender Live-Hack-CD kannst du, falls du dein Passwort vergessen hast, es wiederherstellen bzw. es zurücksetzen. Dies wurde bereits erfolgreich mit folgenden Windows Versionen getestet…
– Windows Server 2008 Standard SP2 (v.275)
– Windows Vista Business SP0
– Windows Vista Ultimate SP1
– Windows Vista Ultimate SP0
– Windows Server 2003 Enterprise
– Windows XP
– Windows XP SP1
– Windows XP SP2
– Windows XP SP3
– Windows 7
Diese Live-CD beschränkt sich jedoch beim zurück setzten des Passwortes nicht nur auf Windows, es wurde ebenfalls auf folgenden Distributionen erfolgreich angewendet.
In diesem Skript sollte ich das Programm “pmap” noch einmal erwähnen, mit diesem kannst du weitere Informationen zum Speicherverbrauch eines Prozesses in Erfahrung bringen.
z.B.:
ps auxf | grep apache
In der zweiten Spalte der Ausgabe finden wir jeweils die PID-Nummer des Prozesses.
pmap < PID > | grep php
nun sehen wir z.B. den Speicherverbrauch der php-Erweiterungen
Wer per ssh z.B. ein bestimmtes Verzeichnis oder einen ganzen Server über ssh mounten möchte kann dies wie folgt unter Debian / Ubuntu bewerkstelligen.
aptitude install sshfs
mkdir -p ~/mnt/server
sshfs -o idmap=user root@server:/ ~/mnt/server
Mit “afuse” kann man das Verzeichnis auch automatisch mounten, sobald man darauf zugreift (man sollte ssh-keys verwenden, ansonsten muss man immer das Passwort eingeben…)
Sobald man also mit “cd” in das Verzeichnis “~/mnt/server” wechselt springt der “afuse-Automounter” an und mountet das System via “sshfs”. Dabei wird die UserId, über welche man sich angemeldet hat, immer auf die lokale gemapped. Die Verwendung des SSH-Agent/SSH-Keys ist hier ganz nützlich – andernfalls poppt ein Passwort-Dialog auf, in welchem du dich anmelden musst.
Dieses kleine HowTo soll zeigen wie man Firefox etwas Optimieren kann… wenn jemand eine Fehler findet oder weitere Möglichkeiten weiß, wie man Firefox beschleunigen kann, sollte man dies als Kommentar an diesen Blog-Eintrag senden, ich werde diesen dann ggf. mit in diesem Beitrag einarbeiten.
1.) Benchmark/Test
2.) Erweiterungen / Extensions
3.) Schrift optimieren
4.) Datenbank optimieren
5.) about:config Einstellungen
6.) Flash (Firefox) Optimierung
7.) Optimized Mozilla Firefox Build
1.) Benchmark/Test
Als erstes müssen wir die Geschwindigkeit/Performance testen, um diese nach unseren Änderungen vergleichen zu können. Dazu kann man z.B. folgende Webseite verwenden -> futuremark.com/peacekeeper
Eine Test-Seite, wo man eine seine Einstellungen testen/vergleichen kann
2.) Erweiterungen / Extensions
Es gibt einige Firefox-Erweiterungen, welche deinen Browser wirklich schneller machen können…
Wer es nicht kennen sollte, mit dieser Erweiterung, blockt man Werbung aus, was zur Folge hat, das die Webseite weniger Speicher verbraucht und besonders das JavaScript Gedöns wird nicht in den Speicher geladen.
Alle Flash Filme, aber auch Werbung welcher bei einigen Webseiten rechts und links (oben, unten oder mitten im Bild) eingeblendet werden, werden erst dann geladen, wenn du mit der Maus einmal darauf klickst, was den entscheidenen Vorteil hat, dass die CPU nicht unnötig belastet wird. Dies fällt besonders bei Leistungsschwächen Rechnern auf.
Dies beschleunigt den Firefox durch Optimierung von Netzwerk- und Anzeigeeinstellungen.
Er bietet unter anderem eine erweiterte Funktion zum Vorausladen von Links (Prefetching), erweiterte Einstellungen zum Verbindungsaufbau, zum Cache-Verhalten und zur Seitenanzeige. Außerdem existiert eine Möglichkeit, durch Flash erzeugte Pop-up-Fenster zu blockieren.
Dies ist ein Download-Manager für Firefox, damit können angefangene Downloads pausiert und wieder fortgesetzt werden, auch nach einem Neustart des Browsers. Zusätzlich wird die Downloadgeschwingikeit von Firefox um bis zu 400 Prozent erhöht, indem mehrer Verbindungen zum entsprechenden Server aufgebaut werden.
Dieses Add-On fügt eine Status-leiste zu Firefox hinzu, die Ihnen up-to-date Informationen über den Cache Ihres Browsers (sowohl RAM und die Festplatte) anzeigt. Zudem kann man den Cache problemlos löschen und es kann auch automatisch geschehen, wenn der Speicher an einer bestimmten Grenze ist.
3.) Schrift optimieren
3.1) Schrift-Verbesserung deaktivieren
Pango ist ein Library zum verbessern der Schrift unter Ubuntu, in Firefox, wenn man diese ausschaltet, soll dies einen Geschwindigkeitsschub für Firefox 3.5 bringen.
Desweiteren benutzt Firefox seit der 3.X Version eine SQLite Datenbank für Bookmarks, Historie, Cookies, Passwörter… wenn man nun viel mit seinem Firefox arbeitet, kann es vorkommen das diese Datenbank im laufe der Zeit fragmentiert und Firefox z.B. länger braucht um zu starten.
sudo aptitude install sqlite3
vim ~/speedup_ff.sh
#!/bin/bash
for f in ~/.mozilla/firefox-3.5/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done
chmod +x ~/speedup_ff.sh
~/speedu_pff.sh
Alternativ kann man diese Funktion nun auch mit einer Erweiterung nachinstallieren…
Normalerweise baut der Browser eine Verbindung zu einer Webseite auf. Wenn du jedoch “Pipelining” baut diese mehrere Verbindungen gleichzeitig auf, welch das laden der Webseite, bis zu einen gewissen Grad beschleunigen sollte.
Achtung!
Die Verwendung von Pipelining ist nicht HTTP-Standard-Konform. Viele Server reagieren unter Umständen sehr langsam, bis hin zum Abbruch, was in unterschiedlichen Fehlermeldungen (meist “Server nicht erreichbar”) münden kann.
Folgendes in die Adresszeile einfügen:
about:config
“network.http.pipelining” -> “true”
“network.http.pipelining.firstrequest” -> “true”
“network.http.proxy.pipelining” -> “true”
“network.http.pipelining.maxrequests” -> “10”
unter Ubuntu kann man die Einstellungen auch per Konsole ausführen, dies geht meistens schneller und hat den selben Effekt.
cd ~/.mozilla/firefox/*.default/
vim user.js
unter Windows können diese Einstellungen in folgender Datei geschrieben bzw. diese Datei angelegt werden
C: Dokumente und Einstellungen < USER > Anwendungsdaten Mozilla Firefox Profiles dkcejehb.default
und z.B. mit notepade oder einem ähnlichen Programm die Einstellungen in folgender Datei abspeichern
user.js
Folgende Zeilen können allgemein Eingefügt werden:
Einiger dieser Einstellungen kann man auch sehr bequem per “Extension” einstellen, dafür gehst du auf die folgende Webseite und installierst dir “Tweak Network Settings” ->www.bitstorm.org/extensions/tweak/
tweak-network
Alternativ kann man unter Windows auch “FireTune” installieren, welches die zuvor vorgestellten Einstellungen per GUI einstellen kann.
Wert : 90000 (diesen Wert je nach Leitung des PC/Laptop anpassen)
Wert : 0 (abschalten der Funktion)
Quelltext mit deinem bevorzugtem Editor öffnen (about:config)
Schlüssel : view_source.editor.external
Standard : false
Wert : true
und dann noch angeben, wo sich dieses Programm befindet
Schlüssel : view_source.editor.path
Standard : Null
Wert : /usr/bin/gedit
Wartezeit beim installieren von Erweiterungen (about:config)
Schlüssel : security.dialog_enable_delay
Standard : 2000
Wert : 0
Man kann auch neue Einträge in die “about:config” schreiben. Indem man die rechte Maustaste drückt und einen neuen Eintag anlegt, z.B.:
“Neu” -> “Integer”
Gibt die Zeit (in Millisekunden) an, die Firefox nach dem Empfang von Daten wartet, bevor er diese an den Bildschirm sendet. Dazu braucht man jedoch auch einen schnellen Computer und DSL. Für einen langsameren PC (z.B. Pentium III) und ISDN ist ein Wert von 100 ganz gut. (about:config)
Wobei Firefox standardmäßig den maximalen Speicherverbrauch selber einstellt. (-1)
um nicht als kompatibel eingestufte Erweiterungen trotzdem installiren zu können (about:config)
“Neu” -> “Boolean”
Schlüssel : extensions.checkCompatibility
Standard : Null
Wert : true (check ist unverändert)
Wert : false (check ist aus)
Festplatten-Cache auslagern (about:config)
“Neu” -> “String”
Schlüssel : browser.cache.disk.parent_directory
Standard : Null
String : /media/ff-cache/
man könnte nun eine Ram-Disk erstellen um und den Cache dorthin auslagern den Speicher, welchen du dafür zur Verfügung stellst, hängt davon ab, wie viel RAM dein System hat. In diesem Beispiel haben wir 256MB verwendet
sudo mount -t tmpfs -o size=256M,nr_inodes=10k,mode=0777 tmpfs /media/ff-cache
um diese RAM-Disk auch nach einem reboot zu erstellen, muss in folgender Datei etwas nachgetragen werden
Ubuntu kommt mit swfdec Plug-in für die wiedergebe von Flash daher, welches nicht wirklich gut unterstützt wird, um nun die Performance von Flash unter Ubuntu (Firefox) zu verbessern installieren wir “flashplugin-nonfree”.
LVM steht für »Logical Volume Manager« und bezeichnet eine Funktion, die seit der Version 2.4 im Standard-Kernel integriert ist. Mittels LVM lässt sich eine logische Schicht zwischen Dateisystem und der Partition einer physikalischen Festplatte schieben.
Was kann LVM?
– hoch verfugbare Systeme
– Verlagern von Speicherplatz
– Snapshots
– Großenanderung
– Striping & Concatenation
– nabhangig von Plattenposition
LVM
Bei Kernel < 2.4 muss man noch das passende Modul nachladen:
modprobe lvm-mod
Bei der Standard-Ubuntu Version muss man noch das folgende Paket nachinstallieren um LVM nutzen zu können:
aptitude install lvm2
LVM einrichten:
1.) Eine Partition mit der Partitions-ID »8e« für LVM kennzeichnen
fdisk /dev/sdb
oder
cfdisk /dev/sdb
2.) Partition nach LVM durchsuchen und ggf. dafür benötigte Dateien anlegen
vgscan -v
3.) Physical Volume anlegen
pvcreate /dev/sdb1
4.) Volume Group anlegen
(man könnte an dieser Stelle auch mehrere “Physical Volume” zu einer “Volume Group” zusammenfassen)
Eine Endlosschleife erzeugen wir nun, indem wir einfach eine Bedingung wählen, die immer erfüllt ist… dies könnte man z.B. wie folgt machen:
while true; do date; sleep 5; done
Dies kann man jedoch auch sehr viel einfacher haben und zwar mit “watch”:
watch -n5 "date"
Wenn die Schleife jedoch noch einigen Durchläufen beendet werden soll, kann man dies z.B. so machen:
for i in`seq 1 50` ; do echo $i ; date ; sleep 5 ; done
Hier noch ein paar Beispiele:
#!/bin/sh
ANZAHL=0
echo "until-Loop"
# gt = groesser
until [ ${ANZAHL} -gt 10 ] ; do
echo ${ANZAHL}
ANZAHL=`expr ${ANZAHL} + 1`
done
# ------------------------------------
ANZAHL=0
echo "while-Loop"
# gt = kleiner/gleich
while [ ${ANZAHL} -le 10 ]
do
echo ${ANZAHL}
ANZAHL=`expr ${ANZAHL} + 1`
done
# ------------------------------------
echo "For-Loop"
# seq = sequenz
for i in `seq 0 10`
do
echo $i
done
exit
# ------------------------------------
Zum Schluss noch ein Beispiel aus der Praxis:
for I in $(ps aux|grep "apache"| awk {'print $2'}); do kill -9 $I; done
vielleicht auf den ersten Blick ein wenig konfus, aus den zweiten Blick erkennt man jedoch, dass mittels ps nach “apache” gesucht wird, die PID-Nunner per awk herausgenommen und diese Programme dann getötet werden.
In order to optimize the website and to continuously improve it, this site uses cookies. By continuing to use the website, you consent to the use of cookies.Ok