Mit Hilfe von rsvndump kann ein Subversion-Archiv kopiert werden, ohne dass man Zugriff zum Archiv via svnadmin dump hat. Im FreeBSD Portbaum findet man rsvndump unter devel/rsvndump:
# cd /usr/ports/devel/rsvndump && make install clean
Nun kann die URL zum Subversion-Archiv an rsvndump übergeben werden. Mit der -u und der -p Option ein Benutzernamen und ein Passwort angegeben werden, dass benötigt wird um auf das Subversion Archiv zuzugreifen:
# rsvndump https://trillian.chruetertee.ch/svn/freebsd-gecko > freebsd-gecko-svn.dump
* Dumped revision 0.
* Dumped revision 1.
[...]
* Dumped revision 317.
Nun kann das Archiv mit Hilfe von svnadmin load an einem neuen Ort eingelesen werden:
# svnadmin create freebsd-gecko
# svnadmin load freebsd-gecko < freebsd-gecko-svn.dump
<<< Started new transaction, based on original revision 1
* adding path : trunk ... done.
* adding path : branches ... done.
* adding path : tags ... done.
------- Committed revision 1 >>>
<<< Started new transaction, based on original revision 2
* adding path : trunk/www ... done.
* adding path : trunk/Mk ... done.
------- Committed revision 2 >>>
<<< Started new transaction, based on original revision 3
* adding path : trunk/www/firefox ... done.
* adding path : trunk/www/firefox/distinfo ... done.
* adding path : trunk/www/firefox/pkg-descr ... done.
* adding path : trunk/www/firefox/files ... done.
* adding path : trunk/www/firefox/files/patch-xptcall-sparc64 ... done.
* adding path : trunk/www/firefox/files/patch-ff-414540 ... done.
* adding path : trunk/www/firefox/files/patch-xptcall-alpha ... done.
* adding path : trunk/www/firefox/files/patch-ff-460425 ... done.
* adding path : trunk/www/firefox/files/patch-ff-331088 ... done.
* adding path : trunk/www/firefox/files/patch-ff-380418 ... done.
[...]
Mehr Informationen zu rsvndump findet man in der Manpage rsvndump(1).
Genau so wie mit tail(1) die letzten Zeilen einer Datei angezeigt werden kann, kann man mit head die ersten Zeilen einer Datei betrachten:
# head <Datei>
Standardmässig werden die ersten 10 Zeilen einer Datei ausgegeben. Möchte man eine bestimmte Anzahl Zeilen anzeigen lassen, so kann dazu die -n Option verwendet werden:
# head -n 50 <Datei>
Auf FreeBSD ist head standardmässig im Basissystem vorhanden. Mehr Informationen zu head findet man in der Manpage head(1).
Möchte man ein tar-Archiv bearbeiten, ohne dass man das Archiv entpacken, verändern und wieder erstellen muss, kann dazu tardy verwendet werden. Im FreeBSD -Portbaum findet man tardy unter archivers/tardy:
# cd /usr/ports/archivers/tardy && make install clean
Mit der -downcase Option werden alle Dateinamen in Kleinbuchstaben konvertiert:
# tar tf test.tar
test/
test/Photo2.JPG
test/Photo3.JPG
test/photo.jpg
# tardy -downcase test.tar testnew.tar
# tar tf testnew.tar
test/
test/photo2.jpg
test/photo3.jpg
test/photo.jpg
Mit der -group und -user Option werden die Besitzer- und Gruppen-Rechte aller Dateien angepasst:
# tar xf test.tar
# ls -l test
total 556
-rw-r--r-- 1 beat wheel 188827 22 Mai 16:58 Photo2.JPG
-rw-r--r-- 1 beat wheel 196190 22 Mai 16:58 Photo3.JPG
-rw-r--r-- 1 beat wheel 181427 22 Mai 16:58 photo.jpg
# tardy -group nobody -user nobody test.tar testnew.tar
# tar xf testnew.tar
# ls -l test
total 556
-rw-r--r-- 1 nobody nobody 188827 22 Mai 16:58 Photo2.JPG
-rw-r--r-- 1 nobody nobody 196190 22 Mai 16:58 Photo3.JPG
-rw-r--r-- 1 nobody nobody 181427 22 Mai 16:58 photo.jpg
Mit der -prefix Option wird ein zusätzliches Wurzel-Verzeichnis ins Archiv eingefügt:
# tardy -prefix foo test.tar testnew.tar
# tar tf testnew.tar
foo/test/
foo/test/Photo2.JPG
foo/test/Photo3.JPG
foo/test/photo.jpg
Mit der -remove_prefix 1 Optionen wird das Wurzelverzeichnis im Archiv entfernt:
# tardy -remove_prefix 1 test.tar testnew.tar
# tar tf testnew.tar
Photo2.JPG
Photo3.JPG
photo.jpg
Mehr Informationen zu tardy findet man in der Manpage tardy(1).
Mit Hilfe von units lassen sich Einheiten auf der Kommandozeile umrechnen. Im folgenden Beispiel wird ausgerechnet wieviele Fuss einen Meter sind (3.28 Fuss) und wieviele Pfund ein Kilo sind (2.2 Pfund):
# units
586 units, 56 prefixes
You have: 1 m
You want: ft
* 3.2808399
/ 0.3048
You have: 1 kg
You want: lb
* 2.2046226
/ 0.45359237
Alle verfügbaren Einheiten findet man in der Datei /usr/share/misc/units.lib. Auf FreeBSD ist units standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von units findet man in der Manpage units(1).
Mit Hilfe von rsync lassen sich Daten an einen weiteren Speicherplatz vie zum Beispiel eine externe USB-Disk oder via SSH auf einen anderen Rechner synchronisieren. Führt man rsync mehrere Male aus, so werden nur die Änderungen zur letzten Synchronisation übertragen. Im FreeBSD -Portbaum findet man rsync uter net/rsync:
# cd /usr/ports/net/rsync && make install clean
Im folgenden Beispel werden die Benutzerverzeichnisse auf eine USB-Disk synchronisiert, welche unter /mnt/usb gemountet ist. Mit der -a Option wird sichergestellt, dass alle Datei-, Besitzer- und Gruppen-Rechte synchronisiert, die Modifikationsdaten beibehalten und alle Unterverzeichnisse rekursiv mitübertragen werden. Mit der -v Option wird angezeigt, welche Datei zurzeit übertragen wird:
# rsync -av /usr/home/ /mnt/usb/home
Soll nur dargestellt werden, welche Daten synchronisiert würden ohne die Daten jedoch zu kopieren, kann die -n Option verwendet werden:
# rsync -anv /usr/home/ /mnt/usb/home
Mit der --delete Option werden auf dem Quellverzeichnis nicht mehr existierende Daten auch im Zielverzeichnis gelöscht. Im folgenden Beispiel werden die Daten via SSH auf einen anderen Rechner synchronisiert:
# rsync -avz --delete /usr/home/ backup@192.168.1.10:/mnt/backup/home
Sollen gewisse Daten nicht übertragen werden so können diese mit der --exclude Option aufgeführt werden:
# rsync -avz --delete --exclude="/.VirtualBox/" /usr/home/ backup@192.168.1.10:/mnt/backup/home
Mehr Informationen zu rsync findet man in der Manpage rsync(1).
Mit Hilfe von aespipe können Daten via Standard-Eingabe/Ausgabe mit AES verschlüsselt werden. Im FreeBSD-Portbaum findet man aespipe unter security/aespipe:
# cd /usr/ports/security/aespipe && make install clean
Nun können Daten an die Standard-Eingabe zum Beispiel via einer Pipe von aespipe übergeben werden und die verschlüsselten Daten werden an die Standard-Ausgabe geschickt. Datei wird man nach einem Passwort gefragt das zur Verschlüsselung verwendet wird:
# file testdatei
testdatei: PDF document, version 1.4
# cat testdatei | aespipe > testdatei.enc
Password: *******************
# file testdatei.enc
testdatei.enc: data
Mit der -d Option können die Daten wieder entschlüsselt werden:
# cat testdatei.enc | aespipe -d > testdatei
Password: *******************
# file testdatei
testdatei: PDF document, version 1.4
Mehr Informationen zu aespipe findet man in der Manpage aespipe(1).
Möchte man mehrere CPU-Kerne zum Komprimieren mit gzip verweden, so kann dazu pigz verwendet werden. Im FreeBSD-Portbaum findet man pigz unter archivers/pigz:
# cd /usr/ports/archivers/pigz && make install clean
Im folgenden Beispiel wird zuerst eine Datei mit gzip komprimiert und danach mit gunzip wieder entpackt:
# du -h test
155M test
# /usr/bin/time -h gzip test
17.76s real 17.47s user 0.09s sys
# du -h test.gz
47M test.gz
# /usr/bin/time -h gunzip test.gz
3.16s real 1.36s user 0.20s sys
# du -h test
155M test
Danach wird die gleiche Datei mit pigz komprimiert, wobei alle vorhanden (in diesem Beispiel zwei) CPU-Kerne verwendet werden. Danach wird die Datei mit unpigz wieder entpackt:
# du -h test
155M test
$ /usr/bin/time -h pigz test
9.30s real 17.80s user 0.22s sys
# du -h test.gz
47M test.gz
# /usr/bin/time -h unpigz test.gz
3.14s real 1.35s user 0.30s sys
# du -h test
155M test
Mehr Informationen zu pigz findet man in der Manpage pigz(1). Möchte man mehrere CPU-Kerne für das bzip2-Komprimieren verwenden, so kann dazu pbzip2 verwendet werden.
Möchte man aus irgendeinem Grunde GCC Flags zur Optimierung verwenden, so kann mit cpuflags die zum Prozessor geeigneten Flags bestimmt werden. Im FreeBSD Portbaum findet man cpuflags unter devel/cpuflags:
# cd /usr/ports/devel/cpuflags && make install clean
Nachdem cpuflags installiert ist, kann das Skript ausgeführt werden und die GCC Flags werden angezeigt:
# cpuflags
-mfpmath=sse -msse3 -march=nocona
Möchte man auf FreeBSD seine Login-Shell ändern, kann dazu chsh verwendet werden. Nun kann im gestarteten Standard-Editor die Login-Shell und andere Benutzerinformationen geändert werden:
# chsh
#Changing user information for beat.
Shell: /bin/csh
Full Name: Beat Gätzi
Office Location:
Office Phone:
Home Phone:
Other information:
Beendet man den Editor, muss man zur Kontrolle sein Passwort eingeben. Danach werden die Änderungen gespeichert. Führt man chsh als root aus, können weitere Details eines Benutzers geändert werden:
# chsh <Benutzer>
Auf FreeBSD ist chsh standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von chsh findet man in der Manpage chsh(1).
Mit Hilfe von iostat kann die Aktivität der Systemdisks beobachtet werden. Im folgenden Beispiel werden die Werte alle 5 Sekunden aktualisiert:
# iostat 5
tty ad4 da0 cd0 cpu
tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni sy in id
6599 1377 24.46 2 0.04 3.16 0 0.00 3.00 0 0.00 1 0 1 0 98
10680 1716 122.46 148 17.67 0.00 0 0.00 0.00 0 0.00 31 0 3 1 65
10816 10607 35.46 46 1.58 0.00 0 0.00 0.00 0 0.00 15 0 6 0 79
28934 18233 8.12 24 0.19 0.00 0 0.00 0.00 0 0.00 0 0 1 0 98
15441 3369 23.27 66 1.51 0.00 0 0.00 0.00 0 0.00 9 0 13 0 78
5261 1332 24.35 128 3.05 0.00 0 0.00 0.00 0 0.00 8 0 5 1 86
496 406 5.64 181 0.99 0.00 0 0.00 0.00 0 0.00 0 0 1 1 98
450 927 8.89 230 2.00 0.00 0 0.00 0.00 0 0.00 3 0 4 0 93
353 1251 8.44 420 3.46 0.00 0 0.00 0.00 0 0.00 3 0 7 1 89
365 603 50.22 245 12.02 0.00 0 0.00 0.00 0 0.00 30 0 5 0 65
435 359 36.42 59 2.08 0.00 0 0.00 0.00 0 0.00 1 0 1 0 98
Die Ausgabe kann mit Ctrl + c abgebrochen werden. Die Werte werden dabei in Kilobytes pro Transfer (KB/t), Transfers pro Sekunde (tps) und Megabytes pro Sekunde (MB/s) angegeben. Auch ist es möglich nur eine bestimmte Anzahl von Messungen durchzuführen. Im folgenden Beispiel wird die Ausgabe nach zwei Messungen beendet:
# iostat 5 2
tty ad4 cpu
tin tout KB/t tps MB/s us ni sy in id
3 70 30.84 22 0.66 26 0 5 0 69
1 26 127.43 11 1.39 51 0 8 1 41
Auf FreeBSD ist iostat standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von iostat findet man in der Manpage iostat(8).