mount über SSH

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…)

aptitude install afuse sshfs
mkdir ~/sshfs
afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/sshfs
cd ~/sshfs/root@server

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.

SpeedUp Firefox 3

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…

2.1) Adblock Plus

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.

2.2) Flashblock

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.

2.3) Fasterfox

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.

2.4) DownThemAll!

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.

2.5) Cache Status

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.

echo 'export MOZ_DISABLE_PANGO=1' >> ~/.bashrc
source ~/.bashrc

3.2) Firefox mit schöner Schrift

Link zum HowTo:

firefox-3-mit-schoener-schrift

4.) Datenbank optimieren

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…

addons.mozilla.org/en-US/firefox/addon/13824

5.) about:config Einstellungen

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:

user_pref(“network.http.pipelining”, true);


user_pref(“network.http.pipelining.firstrequest”, true);

user_pref(“network.http.proxy.pipelining”, true);

user_pref(“network.http.pipelining.maxrequests”, 10 );

user_pref(“network.http.keep-alive”, true);

user_pref(“content.notify.backoffcount”, 5);

Schneller Computer / Schnelle Verbindung (z.B. DSL 2000)

user_pref(“content.interrupt.parsing”, true);


user_pref(“content.max.tokenizing.time”, 2250000);

user_pref(“content.notify.interval”, 750000);

user_pref(“content.notify.ontimer”, true);

user_pref(“content.switch.threshold”, 750000);

user_pref(“nglayout.initialpaint.delay”, 0);

user_pref(“network.http.max-connections”, 48);

user_pref(“network.http.max-connections-per-server”, 32);

user_pref(“network.http.max-persistent-connections-per-proxy”, 16);

user_pref(“network.http.max-persistent-connections-per-server”, 8 );

user_pref(“browser.cache.memory.capacity”, 65536);

user_pref(“ui.submenuDelay”, 0);

Schneller Computer / Langsamere Verbindung (z.B. DSL 1000)

user_pref(“content.max.tokenizing.time”, 2250000);


user_pref(“content.notify.interval”, 750000);

user_pref(“content.notify.ontimer”, true);

user_pref(“content.switch.threshold”, 750000);

user_pref(“network.http.max-connections”, 48);

user_pref(“network.http.max-connections-per-server”, 16);

user_pref(“network.http.max-persistent-connections-per-proxy”, 16);

user_pref(“network.http.max-persistent-connections-per-server”, 8 );

user_pref(“nglayout.initialpaint.delay”, 0);

user_pref(“browser.cache.memory.capacity”, 65536);

user_pref(“ui.submenuDelay”, 0);

Schneller Computer / Langsame Verbindung (z.B. ISDN)

user_pref(“content.interrupt.parsing”, true);


user_pref(“content.max.tokenizing.time”, 3000000);

user_pref(“content.maxtextrun”, 8191);

user_pref(“content.notify.interval”, 750000);

user_pref(“content.notify.ontimer”, true);

user_pref(“content.switch.threshold”, 750000);

user_pref(“network.http.max-connections”, 32);

user_pref(“network.http.max-connections-per-server”, 8 );

user_pref(“network.http.max-persistent-connections-per-proxy”, 8 );

user_pref(“network.http.max-persistent-connections-per-server”, 4);

user_pref(“nglayout.initialpaint.delay”, 0);

user_pref(“browser.cache.memory.capacity”, 65536);

user_pref(“ui.submenuDelay”, 0);

Langsamer Computer / Schnelle Verbindung

user_pref(“content.max.tokenizing.time”, 3000000);


user_pref(“content.notify.backoffcount”, 5);

user_pref(“content.notify.interval”, 1000000);

user_pref(“content.notify.ontimer”, true);

user_pref(“content.switch.threshold”, 1000000);

user_pref(“content.maxtextrun”, 4095);

user_pref(“nglayout.initialpaint.delay”, 1000);

user_pref(“network.http.max-connections”, 48);

user_pref(“network.http.max-connections-per-server”, 16);

user_pref(“network.http.max-persistent-connections-per-proxy”, 16);

user_pref(“network.http.max-persistent-connections-per-server”, 8 );

user_pref(“dom.disable_window_status_change”, true);

Langsamer Computer / Langsame Verbindung

user_pref(“content.max.tokenizing.time”, 2250000);


user_pref(“content.notify.interval”, 750000);

user_pref(“content.notify.ontimer”, true);

user_pref(“content.switch.threshold”, 750000);

user_pref(“nglayout.initialpaint.delay”, 750);

user_pref(“network.http.max-connections”, 32);

user_pref(“network.http.max-connections-per-server”, 8 );

user_pref(“network.http.max-persistent-connections-per-proxy”, 8 );

user_pref(“network.http.max-persistent-connections-per-server”, 4);

user_pref(“dom.disable_window_status_change”, true);

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
tweak-network

Alternativ kann man unter Windows auch “FireTune” installieren, welches die zuvor vorgestellten Einstellungen per GUI einstellen kann.

firetune

Download:

www.totalidea.com/firetune

History der Adresszeile reduzieren (about:config)

Schlüssel : browser.sessionhistory.max_total_viewer

Standard : -1

Wert : 0

für alle Text-Boxen die Rechtschreibung prüfen (about:config)

Schlüssel : layout.spellcheckDefault

Standard : 1

Wert : 2

deaktiviere die animierte Toolbar im Vollbildschirm [ F11 ] (about:config)

Schlüssel : browser.download.manager.scanWhenDone

Standard : true

Wert : false

ggf. Verzögerungen bei YouTube (Videos) verhindern (about:config)

Schlüssel : browser.sessionstore.interval

Standard : 10000

Wert : 120000

blende die Toolbar im Vollbildschirm nie aus [ F11 ] (about:config)

Schlüssel : browser.fullscreen.autohide

Standard : true

Wert : false

deaktiviere Anti-Virus Scanning von Downloads (about:config)

Schlüssel : browser.fullscreen.animateUp

Standard : 1

Wert : 0

einfügen mit der mittleren Maustaste (about:config)

Schlüssel : middlemouse.paste

Standard : false

Wert : true

ergonomischeren Dateidialog unter Gnome (about:config)

Schlüssel : platform_file_picker

Standard : false

Wert : true

Standard Firefox-Suche immer im neuen Tab (about:config)

Schlüssel : browser.search.openintab

Standard : false

Wert : true

Auto-Vervollständigung der URL, während du tippst. (about:config)

Schlüssel : browser.urlbar.autoFill

Standard : false

Wert : true

wenn Firefox 3.5 sich beendet, sobald man den letzten Browsertab schließt, schafft folgendes Abhilfe (about:config)

Schlüssel : browser.tabs.closeWindowWithLastTab

Standard : true

Wert : false

öffne JavaScript pop-ups anstat in einem neun Fernster, in einem neuen Tab (about:config)

Schlüssel : browser.link.open_newwindow.restriction

Standard : 2

Wert : 0

abschalte oder verändern der Session-Wiederherstellungsfunktion (about:config)

Schlüssel : browser.link.open_newwindow.restriction

Standard : 10000 (= 10 secs)

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)

Schlüssel : nglayout.initialpaint.delay

Standard : Null

Wert : 0

maximalen Speicherverbrauch einstellen (about:config)

“Neu” -> “Integer”

Schlüssel : browser.cache.memory.capacity

Standard : Null

Wert : 32000

(“32000” für 32000 KB Speicher-Cache)

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

vim /etc/fstab
tmpfs /media/ff-cache tmpfs size=256M,nr_inodes=10k,mode=777 0 0

Auf der folgenden Webseite findest du weitere Einstellungsmöglichkeit in der “about:config”…

kb.mozillazine.org/About:config_Entries

6.) Flash (Firefox) Optimierung

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”.

Link zum HowTo:

Adobe Flash Plugin 10.1

7.) Optimized Mozilla Firefox Build

weitere Erklärungen zu Swiftfox gibt es -> HIER <-

7.1) Optimized Mozilla Firefox Build für Linux

Für Linux gibt es Swiftfox, als optimierte Firefox-Versionen z.B. optimiert für “AMD64” oder “Intel Prescott”.

Download:

getswiftfox.com/download.htm

7.2) Optimized Mozilla Firefox Build für Windows

auf folgender Webseite findest du jeweils drei optimierte Firefox Version

P1 -> für alle CPUs

P2 -> für Athlon XP, Duron 1.1 GHz+, Pentium III ,Celeron 500+

P3 -> für AMD Athlon 64, Sempron, Opteron Prozessoren, Intel Pentium 4/D/M, Intel Xeon, Intel Atom, Intel Core Prozessoren und anderen neuen CPUs

Download:

weblog.pigfoot.org/pigfoot/

LVM – Logical Volume Manager

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
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)

vgcreate /dev/sdb1 (/dev/sdb2)

5.) Logical Volume anlegen
z.B.:

lvcreate -n "home" -L 10G lvcreate -n "tmp" -L 2G lvcreate -n "swap" -L 1G lvcreate -n "var" -L 30G

6.) Dateisysteme anlegen

mkfs -t xfs /dev/mapper/-home
mkfs -t xfs /dev/mapper/-var
mkfs -t xfs /dev/mapper/-tmp
mkfs -t xfs /dev/mapper/-boot
mkswap /dev/mapper/-swap

LVM Infos:

1.) Infos vom “Physical Volume” anzeigen lassen

pvdisplay

2.) “Volume Group” Infos anzeigen, z.B. wie viel Platten-Platz man noch auf die “Logical Volume” verteilen kann

vgdisplay

3.) Anzeigen welche “Logical Volume” zu welcher “Volume Group” gehören und z.B. dessen momentane Größe

lvdisplay

LVM vergrößern:

1.) Logical Volume Größe angeben oder um X vergrößern

lvextend -L 2G /dev/mapper/-swap

oder

lvextend -L +1G /dev/mapper/-swap

2.) unmounten der Partition bzw. swapoff

umount /LVM-Partition

bzw. in diesem Beispiel

swapoff -v /dev/mapper/-swap

3.) nun das Dateisystem prüfen

fsck -f /dev/mapper/-swap

4.) nun wird das Dateisystem selber vergrößert

xfs_growfs /dev/mapper/-X
resize_reiserfs /dev/mapper/-X
resize2fs /dev/mapper/-X
ntfsresize /dev/mapper/-X

bzw. in diesem Beispiel

mkswap /dev/mapper/-swap

5.) Mounten der Partition bzw. swapon

mount -t xfs /dev/mapper/-home /home
swapon -av

LVM verkleinern:

In aktuellen Implementierungen ist es nicht möglich, ein XFS-Dateisystem zu verkleinern, daher nehmen wir als Beispiel ein “ext3”-Dateisystem

1.) unmounten der Partition

umount /dev/mapper/-var

2.) nun das Dateisystem checken

e2fsck -f /dev/mapper/-var

3.) neue Dateisystem-Größe in KB angeben

resize2fs /dev/volg1/logv1 15728640

4.) anschließend LVM entsprechend reduzieren

lvreduce -L -15GB /dev/mapper/-var

5.) und wieder mounten, fertig

mount -t ext3 /dev/mapper/-var /var

Volume Group vergrößern:

1.) ein neues Physical Volume anlegen

pvcreate /dev/sdb3

2.) das neue “Physical Volume” zur Volume Group hinzufügen

vgextend volg1 /dev/sdb3

Volume Group verkleinern:

1.) überprüfen ob das betreffende Physical Volume Daten enthält

pvdisplay -v /dev/sdb3

2.)das neue “Physical Volume” von der Volume Group entfernen

vgreduce volg1 /dev/hdb7

weitere Infos und Anleitungen findest du auf linuxhaven.de

Bash-Programmierung: Schleifen

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.

cdrecord – ISO erstellen und CD brennen

1.) Du musst wissen ob/wo dein CD-Brenner ist…

cdrecord --scanbus

Ausgabe:
0,0,0 0) *
0,1,0 0) *
0,2,0 0) ‘SONY’ […] Removable CD-ROM

2.) Dateien in ein Verzeichniss schaufeln, so dass wir aus dem Verzeichniss ein Image machen können.

cp -v /home/User/Desktop/test_Datei /home/User/brenn_verzeichniss/
cp -v /home/User/Dokumente/test_Datei2 /home/User/brenn_verzeichniss/
mkisofs -R -l /home/User/brenn_verzeichniss/ > /home/User/Desktop/disk.iso

3.) Testen ob im Iso auch alle Dateien sind, welche wir haben wollten

sudo mkdir /mnt/cdrom_iso
sudo mount -t iso9660 -o ro,loop /home/User/Desktop/disk.iso /mnt/cdrom_iso

nachdem man sich vergewissert hat, dass die Dateien alle an Ort und Stelle sind, kann man die ISO wieder unmounten

sudo umount /mnt/cdrom_iso

4.) Brennen der CD

DEVICE="0,2,0"
SPEED=6

(der Speed muss individuell an deine Bedürfnisse/Gegebenheiten angepasst werden)

sudo cdrecord -v dev=${DEVICE} speed=${SPEED} /home/User/Desktop/disk.iso

Bedingungen in der Shell – Linux

Hier soll an einigen Beispielen klar werden, wie man Bedingungen in z.B. Shell-Abfragen (if) einbaut.

Dateien:

-d file

-> file existiert und ist ein Verzeichnis

-e file

-> file existiert

-f file

-> file existiert und ist regulär

Beispiel:

if [ -f /etc/issue ] ; then cat /etc/issue | awk {'print $3'}; fi

-s file

-> file existiert und ist nicht leer

-r file

-> file existiert und ist lesbar

-w file

-> file existiert und ist beschreibbar

datei1 -nt datei2

-> datei1 ist jünger als datei2

datei1 -ot datei2

-> datei1 ist älter als datei2

Strings:

-z string

-> string ist leer

-n string

-> string ist nicht leer

Beispiel:

test="Hallo"
if [ -n $test ] ; then echo $test; fi
unset test
if [ -n $test ] ; then echo $test; fi

s1 == s2

-> s1 ist gleich s2

s1 != s2

-> s1 ist ungleich s2

s1 < s2

-> s1 ist kleiner s2 (bzgl. Sortierung)

s1 > s2

-> s1 ist größer s2

Arithmetik:

n1 -eq n2

-> n1 ist gleich n2

Beispiel:

a=5
b=5
if [ $a -eq $b ]  ; then echo -e "es sind die gleichen Zahlen"; else echo "es sind nicht die gleichen Zahlen" ;fi
b=4
if [ $a -eq $b ]  ; then echo -e "es sind die gleichen Zahlen"; else echo "es sind nicht die gleichen Zahlen" ;fi

n1 -ne n2

-> n1 ist ungleich n2

n1 -lt n2

-> n1 ist kleiner n2

n1 -le n2

-> n1 ist kleiner/gleich n2

n1 -gt n2

-> n1 ist größer n2

n1 -ge n2

-> n1 ist größer/gleich n2

Logik:

expr1 -a expr2

-> Ausdruck expr1 UND expr2

expr1 -o expr2

-> Ausdruck expr1 ODER expr2

netstat + ss + lsof

Mit den folgenden kleinen Kommandos kannst du sehen, welche Verbindungen von welcher IP / Port / Programm zu welchem Ziel aufgebaut wurden.

__________________________________________

netstat -nat

-> aktive Verbindungen (auch solche welche eine Verbindung aufgebaut haben bzw. soeben versuchen)

netstat --udp --tcp --listening --programs --numeric

bzw.

netstat -ntauple

-> alle TCP/UDP-Sockets anzeigen auf denen gelauscht wird

ss -l -p -e

-> alle Sockets anzeigen auf denen gelauscht wird

ss -o state established '( dport = :ssh or sport = :ssh )'

-> aufgebaute SSH-Verbindungen anzeigen

ss -t -a

-> zeigt alle TCP-Verbindungen an

ss -u -a

-> zeigt alle UDP-Verbindungen an

lsof -i -nP

-> zeigt alle Verbindungen, deren Ports, Programme, PID und dessen User an

find – Linux

Es folgen einige Beispiele, wie man den “find-Befehl” nutzen kann… viel Spaß beim ausprobieren.

find -size +10M -20M -exec ls -lah {} \;

-> Sucht Dateien ab dem aktuellen Verzeichnis, die gräßer sind als 10MB, aber kleiner als 20MB und zeigt diese an.

find /home/ -iname '*.jpg' -exec tar -czf bilder.tar.gz {} \;

-> Ab dem home-Verzeichnis nach Dateien suchen, die auf “.jpg/.JPG” enden duchsuchen und diese archivieren.

find / -used 1

-> Ab dem root-Verzeichnis alle Dateien suchen, welche heute (1 -> Tag) verwendet wurde.

find / -amin -10 [ -atime -10 ]

-> Ab dem root-Verzeichnis alle Dateien suchen, auf denen vor weniger als 10 Minuten [ Tage ] zugegriffen wurde.

find / -mmin +10 [ -mtime +10 ]

-> Ab dem root-Verzeichnis alle Dateien suchen, welche vor mehr als 10 Minuten [ Tage ] geändert wurden.

touch --date='15:00' /tmp/ref
find / -newer /tmp/ref

-> Ab dem root-Verzeichnis alle Dateien suchen, welche neuer sind als heute um 15:00 Uhr.

find / -type f -name "*neu*"

-> Ab dem root-Verzeichnis alle Dateien suchen, in welchen “neu” vorkommt.

find / -type d -name "*home*"

-> Ab dem root-Verzeichnis alle Verzeichnisse suchen, in welchen “home” vorkommt.

find . -empty

-> Im aktuellen Verzeichnis nach Dateien suchen, welche eine Größe von “null” haben.

find /home/ -user root [ -group root ]

-> Ab dem home-Verzeichnis nach Dateien suchen, welche dem User “root” [ der Gruppe “root” ] gehören.

find /home/ ! -user root [ ! -group root ]

-> Ab dem home-Verzeichnis nach Dateien suchen, welche nicht dem User nicht “root” [ nicht der Gruppe “root” ] gehören.

 

Es folgt noch ein Beispiel + Erklärung:

# alle Dateien (type f) die älter als 30 Tage (mtime +30) sind außer alt_datum.tar.bz2 (exclude-from alt_`date +%d-%m-%y`.tar.bz2), werden zu einem Archiv zusammengefasst
find / -type f -mtime +30 --exclude-from=alt_`date +%d-%m-%y`.tar.bz2 -exec tar -cjf alt_`date +%d-%m-%y`.tar.bz2 {} \;
# nun alle Dateien, die älter als 30 Tage sind löschen
find / -type f -mtime +30 --exclude-from=alt_`date +%d-%m-%y`.tar.bz2 -exec rm {} \;
# alle Dateien welche den Namen “alt_irendwas.tar.bz2” haben (ianme “alt_*.tar.bz2”, werden gelöscht
find / -type f -iname "alt_*.tar.bz2" -mtime +60 -exec rm {} \;

mv – Linux

[mv = move] mit dem “mv”-Befehl kann man Dateien von einem Ort an einen andern verschieben bzw. wenn dies im selber Verzeichnis ausgeführt wird, eine Datei umbenennen.

eine Datei umbenennen:

ohne Wildcards:

mv data1 dateu_neu1

benennt die Datei “data1” in “dateu_neu1” um

mit Wildcards:

mv *tei1 datei_neu1

-> * = beliebig viele verschiedene Zeichen

mit Wildcards:

mv ?atei1 datei_neu1

-> ? = ein unbestimmter Buchstabe

Dateien verschieben:

mv *.txt old/

alle Dateien welche auf “.txt” enden werden in das Unterverzeichnis old/ verschoben

mehrere Dateien umbenennen:

!!!
mv *.htm *.html
!!!

dieser Befehl funktioniert nicht, da die Bash “*.html” als Verzeichnis interpretiert

Dieses Problem kann man z.B. wie folgt lösen:

for i in *.htm; do mv $i `basename $i .htm`.html; done

mit diesem Befehl, kann man nun alle Dateien welche auf “.htm” enden, mit der neuen Endung “.html” versehen

der ursprüngliche Dateiname welcher in der Variablen $i abgelegt wird, wird jeweils zu dem neuen Dateinamen, welcher sich aus dem “Basisnamen” (basename *1) ohne die Endung und einer neuen Endung “.html” besteht, zusammengefasst und die entsprechende Datei mittels einer “for”-Schleife verschoben

(*1) basename test.txt .txt -> test)

 

for i in *.sh; do mv $i /home/path/; done

verschiebt alle Dateien mit der Endung “.sh” nach /home/path

 

for i in [a-z]*; do mv $i ${i#[a-z]}; done

entfernt das erstes Zeichen von allen Dateien im aktuellen Verzeichnis.

 

for i in [a-z]*; do mv $i z${i}; done

setzt ein “z” vor jeden Dateinamen.

 

Alternativ kann man dieses Problem auch mit dem folgendem Befehl umgehen…

aptitude install mmv

installiere als erstes das Programm “mmv”

mmv -v "*.htm" "#1.html"

wie im vorherigem Beispiel werden auch hier alle Dateien welche auf “.htm” enden umbenannt und enden hinterher auf “.html”

(mit dem Parameter “-c” werden die Dateien nicht verschoben, sondern kopiert)

 

Hier noch ein Beispiel: Welches alle Bilder im aktuellen Verzeichnis um 2 erhört -> “1.jpg” wird zu “3.jpg” …

for i in `ls -r *.jpg`; do
j=$((${i%.*}+2));
echo "$i -> ${j}.${i##*.}";
done;

Endian Firewall – Version 2.2

Was ist Endian?

Endian Firewall ist eine schlüsselfertige Linux-Sicherheits-Distribution, die jedes System zu einer vollwertigen Sicherheits-Applikation macht. Features sind eine Firewall mit zustandsabhängiger Paketinspektion, Proxys auf Anwendungsebene für verschiedene Protokolle (HTTP, POP3, SMTP), Antiviren-Unterstützung, Viren- und Spamfilterung für Email-Traffic (POP und SMTP), Inhaltsfilterung von Web-Traffic und ein stressfreies VPN-System auf Basis von OpenVPN und dies alles unter einer hübschen Web-Oberfläche.

Leider habe ich bei der neuen Version 2.3 noch keine Möglischkeit gefunden “VMWare Tools” zu installieren, wenn jemand weiteres dazu weiß, dann schreibe einfach einen Kommentar zu diesem Artikel.

Link:
Endian Firewall

HowTo – Upgrade:

Als erstes muss man sich unter folgender Adresse Registrieren -> www.endian.org/register

Nun kann das Update in 4 kurzen Schritten durchgeführt werden:

1.) Schalte SSH in deiner Endian Firewall ein

2.) Öffne ein SSH-Terminal und verbinde dich mit der Firewall (z.B. mit putty)

3.) Wenn deine “Endian Firewall Version” älter ist als 2.2 muss du folgendes ausführen

root@efw-2:~ # rpm -ivh http://updates.endian.org/upgrade.rpm

4.) Führe das “efw-upgrade” Script aus

root@efw-2:~ # efw-upgrade

Please choose the appropriate channel for your environment and hit [ENTER]:

1) Production (stable releases)

2) Development (bleeding edge)

1

Please enter your username and hit [ENTER]:
deine@email_adresse.de (welche du bei der Registrierung angegeben hast)

… und schon ist das Updates eingespielt!