BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Herausfinden, welcher Benutzer wieviel Speicherplatz verbraucht

Um herauszufinden, welcher Benutzer wieviel Speicherplatz verbraucht, kann man quot(8) verwenden. Möchte man dies von allen Partitionen sehen, so kann man die -a Option verwenden:

# quot -a

Die Ausgabe erfolgt in der Grösseneinheit, die in der System-Variable BLOCKSIZE definiert ist. Die standardmässig gesetzte Grösse ist KB. Möchte man z.B. die Benutzung von /usr anzeigen und die Ausgabe in MB darstellen, so setzt man BLOCKSIZE auf M :

# setenv BLOCKSIZE M
# echo $BLOCKSIZE
M
# quot /usr
/dev/ar0s1f:
27398 alain
11956 root
974 mysql
347 www
208 beat
4 nobody
...

Mit der Option -v können nun auch die Anzahl Dateien angezeigt werden, die in den letzten 30, 60 und 90 Tagen nicht benutzt wurden:

# quot -v /usr
/dev/ar0s1f:
27398 alain 27264 27264 27264
11956 root 9626 4020 2644
974 mysql 598 537 519
347 www 92 92 76
208 beat 16 16 16
4 nobody 0 0 0
...

Hat man auf einer Partition zu wenig Speicherplatz, so kann mit quot(8) herausgefunden werden, welcher Benutzer viel Speicherplatz braucht und seine abgelegten Daten nicht benutzt.

quot(8) ist sowohl auf FreeBSD als auch auf OpenBSD im Basissystem enthalten.

Comments (5)  Permalink

Binäre Aktualisierung des Basissystems

Werden im FreeBSD Basissystem Sicherheitslücken gefunden, so kann man diese auch binär mit freebsd-update stopfen. In FreeBSD 6.2 und 7-CURRENT befindet sich freebsd-update im Basissystem, alle älteren Versionen können freebsd-update aus den Ports installieren:

# cd /usr/ports/security/freebsd-update && make install clean

Nun können noch gebrauchte Patches heruntergeladen werden:

# freebsd-update fetch

Wurden Patches gefunden, die noch nicht eingespielt wurden, so können diese nun installiert werden:

# freebsd-update install

Auch der Kernel wird aktualisiert, allerdings nur wenn man den GENERIC Kernel verwendet. Hat man einen selber zusammengestellten Kernel, so muss man den Quellcode aktualisieren und den Kernel selber neu bauen. Aber auch wenn man den Kernel mit freebsd-update aktualisiert, muss das System neu gestartet werden, damit der neue Kernel in Betrieb genommen wird.

Man kann freebsd-update auch in einen cron-Job aufnehmen. So wird regelmässig nach Aktualisierungen gesucht, diese Heruntergeladen und per Mail eine Meldung verschickt, dass neue Patches eingespielt werden können. Verwendet man ein System mit freebsd-update im Basissystem, so kann folgende Zeile in /etc/crontab eingetragen werden:

 0 5 * * * root /usr/sbin/freebsd-update cron

Verwendet man freebsd-update aus den Ports, so lautet der Pfad /usr/local/sbin/freebsd-update.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Tunneln mit OpenSSH

Möchte man auf einen Port eines Rechners von einem anderen Rechner aus zugreifen, dies allerdings nicht erlaubt oder durch eine Firewall geblockt ist, mit SSH der Zugriff auf den Rechner aber möglich ist, so kann man den gewünschten Port tunneln.

# ssh -L <Lokaler Port>:<Zielrechner>:<Port auf Zielrechner> <Benutzer>@<Tunnelrechner>

Möchte man zum Beispiel von Rechner B den Port 3306 benutzen und es ist möglich, sich auf Rechner B per SSH einzuloggen, so kann man dies wie folgt tun:

# ssh -L 3306:localhost:3306 <Benutzer>@<Rechner B>

Möchte man zum Beispiel auf Port 3306 von Rechner C zugreifen, welcher von Rechner B aus erreichbar ist, aber nicht von unserem Rechner, man kann sich aber auf Rechner B per SSH einloggen, so kann man das folgendermassen machen:

# ssh -L 3306:<Rechner C>:3306 <Benutzer>@<Rechner B>

Nun kann man in beiden Fällen auf den localhost Port 3306 zugreifen, welcher dann von OpenSSH auf den Zielrechner getunnelt wird.

Ist auf dem SSH-Server die Option AllowTcpForwarding no gesetzt, so wird das Tunneln nicht funktionieren. Ob dies der Fall ist, kann auf FreeBSD und OpenBSD in der /etc/ssh/sshd_config nachgeschaut werden.

Comments (1)  Permalink

Notizen zur Konfiguration eines Servers mit FreeBSD 6.2

Rechtzeitig zum Erscheinen von FreeBSD 6.2 wurde das PDF mit "Notizen zur Konfiguration eines Servers mit FreeBSD" auf FreeBSD 6.2 aktualisiert. Zudem wurden die Optionen in den Konfigurationsdateien besser dokumentiert sowie die pf-Firewall und gmirror hinzugefügt.
Das PDF kann unter http://www.chruetertee.ch/freebsd/ heruntergeladen werden. Es handelt sich dabei nicht um eine Schritt-für-Schritt Anleitung, sondern mehr um eine Sammlung von Möglichkeiten zur Konfiguration.
Comments (3)  Permalink

Befehle in der tcsh zu einer bestimmten Zeit ausführen

In der tcsh lassen sich Befehle zu einer bestimmten Zeit ausführen. Muss man zum Beispiel um 17:00 gehen, so kann man sich um 16:45 eine Warnung in der Shell ausgeben, um 17:00 den Shellpromt ändern und um 17:05 den Rechner automatisch herunterfahren lassen:

# sched 16:45 echo Du musst langsam gehen
# sched 17:00 set prompt="Los jetzt >"
# sched 17:05 shutdown -p +1 Ich hab Dich gewarnt

Die gespeicherten Befehle lassen sich mit sched ansehen:

# sched
1 16:45 echo Du musst langsam gehen
2 17:00 set prompt="Los jetzt >"
3 17:05 shutdown -p +1 Ich hab Dich gewarnt

Möchte man jetzt einen Befehl wieder entfernen, so benutzt man die Nummer, die von sched vor jeden Befehl angezeigt wird:

# sched -3
# sched
1 16:45 echo Du musst langsam gehen
2 17:00 set prompt="Los jetzt >"

Auch lässt sich die Zeit in Stunden und Minuten von der aktuellen Zeit her angeben:

# date 
Sa 13 Jan 2007 11:34:20 CET
# sched +0:5 echo xyz zurückrufen
# sched
1 11:39 echo xyz zurückrufen

Was man Bedenken sollte ist, dass wenn man die Shell schliesst, auch die gespeicherten Befehle weg sind.

Related Entries:
Wort in der tcsh löschen
Programm mit which finden
Liste der besuchten Verzeichnisse merken
foreach-Schleife in der tcsh
tcsh bei Inaktivität beenden
 Permalink

history der tcsh benutzen

Die tcsh merkt sich die zuletzt verwendeten Befehle, so dass man diese zu einem späteren Zeitpunkt wieder verwenden kann. Die ganze Liste der verwendeten Befehle kann wie folgt angeschaut werden:

# history
114 9:56 cd /tmp/
115 9:56 ls -aol
116 9:56 more test
117 9:57 ssh test.chruetertee.ch
118 9:57 history

Die Grösse der History kann für einen Benutzer in der ~/.cshrc oder für alle Benutzer in der /etc/csh.cshrc festgelegt werden:

set history = 1000

Auch kann festgelegt werden, wieviele Befehle bei einem Logout gespeichert werden sollen, damit sie beim nächsten Anmelden wieder zur Verfügung stehen:

set savehist = 100

Der zuletzt verwendete Befehl kann ganz einfach mit zwei Ausrufezeichen nochmals ausgeführt werden:

# !!
history
114 9:56 cd /tmp/
115 9:56 ls -aol
116 9:56 more test
117 9:57 ssh test.chruetertee.ch
118 9:57 history
119 9:58 history

Vor jedem Befehl in der History steht eine Nummer. So kann ein ganz bestimmter Befehl nochmals ausgeführt werden, indem man ein Ausrufezeichen und die Nummer des Befehls in der tcsh eingibt:

# !115
ls -aol

Gibt man ein Ausrufezeichen und einige Buchstaben ein, so wird der letzte Befehl ausgeführt, welcher mit diesen Buchstaben beginnt:

# !mo
more test

Möchte man nur den Befehl sehen und nicht ausführen, so hängt man ein Doppelpunkt und ein p an:

# !mo:p
more test

Mit einem Fragezeichen nach dem Ausrufezeichen wird der letzte Befehl ausgeführt, der die Zeichenfolge nach dem Fragezeichen beinhaltet:

# !?tmp
cd /tmp/

Auch lassen sich Befehle direkt mit einem sed nach einem Doppelpunkt bearbeiten. Folgendes Beispiel führt Befehl 117 aus, tauscht allerdings test mit bla aus:

# !117:s/test/bla/
ssh bla.chruetertee.ch
Related Entries:
Wort in der tcsh löschen
Programm mit which finden
Liste der besuchten Verzeichnisse merken
foreach-Schleife in der tcsh
tcsh bei Inaktivität beenden
 Permalink

portsopt Version 1.1 erschienen

Die Version 1.1 von portsopt ist erschienen. Folgende Änderungen wurden vorgenommen:

  • Probleme mit Zeilenumbrüchen behoben, wodurch vorher einige Optionen nicht angezeigt wurden
  • Gleiche Optionen werden nicht mehrmals angezeigt
  • BROKEN_WITH werden nicht mehr angezeigt

portsopt durchsucht FreeBSD-Port-Makefiles nach WITH- und WITHOUT-Optionen und gibt diese aus. Auch lassen sich die Optionen der Abhängigkeiten eines Ports anzeigen.

portsopt findet man nun auch in den FreeBSD-Ports unter sysutlis/portsopt:

# cd /usr/ports/sysutlis/portsopt && make install clean

UPDATE 05.02.2007:

portsopt wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portsopt kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portsopt && make install clean
 Permalink
1-7/7