BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Zeilen einer Datei in zufälliger Reihenfolge ausgeben

Mit Hilfe von rl lassen sich die Zeilen einer Datei in zufälliger Reihenfolge wiedergeben. Im FreeBSD-Portbaum findet man rl unter textproc/rl:

# cd /usr/ports/textproc/rl && make install clean

Nun kann der Inhalt einer Datei verwürfelt dargestellt werden:

# cat datei 
1
2
3
4
5
# rl datei
2
1
5
3
4

Mit der -c Option kann angegeben werden wieviele Zeilen ausgegeben werden sollten. Im folgenden Beispiel wird zufällig eine MP3 Datei aus der Musiksammlung angezeigt:

# find ~/Music -name "*mp3" | rl -c 1

Mehr Informationen zu rl findet man in der Manpage rl(1).

 Permalink

SSH Public-Key auf einen anderen Rechner kopieren

Möchte man einen SSH Public-Key auf einen anderen Rechner kopieren so dass man sich danach mit Public Key Authentifizierung anmelden kann, kann dazu ssh-copy-id verwendet werden. Im FreeBSD-Portbaum findet man ssh-copy-id unter security/ssh-copy-id:

# cd /usr/ports/security/ssh-copy-id && make install clean

Damit der Schlüssel kopiert werden kann, muss man sich mit einem Password auf dem anderen Rechner anmelden können. Standardmässig wird der ~/.ssh/id_rsa.pub Schlüssel kopiert. Möchte man einen anderen Schlüssel kopieren, kann dieser mit der -i Option angegeben werden:

# ssh-copy-id test@test.chruetertee.ch
Password:
Now try logging into the machine, with "ssh 'test@test.chruetertee.ch'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Existiert schon eine ~/.ssh/authorized_keys Datei, so wird der neue Schlüssel an die existierende Datei angehängt. Mehr Informationen zu ssh-copy-id findet man in der Manpage ssh-copy-id(1).

 Permalink

Prozess und dessen Kind-Prozesse beenden

Mit Hilfe von pslist können alle Kind-Prozesse eines Prozesses angezeigt werden und allenfalls ein Signal an alle diese Prozesse gesendet werden. Im FreeBSD-Portbaum findet manpslist unter sysutils/pslist:

# cd /usr/ports/sysutils/pslist && make install clean

Übergibt man eine Prozess-ID an pslist, so werden die Prozess-IDs aller Kind-Prozesse angezeigt:

# pslist 4816
4816 sh 4817 4818 4819
# pstree -p 4816
-+= 00001 root /sbin/init --
 \-+- 02761 root /usr/local/bin/xdm -nodaemon ttyv8
   \-+= 02817 root xdm: :0 (xdm)
     \-+= 02829 beat fluxbox
       \-+= 03854 beat /bin/csh -c xterm
         \-+- 03861 beat xterm
           \-+= 03863 beat csh
             \-+= 04816 beat /bin/sh ./test
               \-+- 04817 beat /bin/sh ./test
                 \-+- 04818 beat /bin/sh ./test
                   \--- 04819 beat sleep 60

Sendet man nun ein SIGTERM-Signal an den Prozess welcher die Kind-Prozesse gestartet hat, so laufen die Kind-Prozesse weiter, werden jedoch Kind-Prozesse des init Prozesses:

# kill 4816
# pstree
-+= 00001 root /sbin/init --
[...]
 \-+- 04817 beat /bin/sh ./test
   \-+- 04818 beat /bin/sh ./test
     \--- 04819 beat sleep 60

Soll das SIGTERM-Signal an einen Prozess und allen seinen Kind-Prozessen  gesendet werden kann rkill verwendet werden:

# rkill 4816

Möchte man ein anderes Signal als das SIGTERM-Signal verwenden, so kann auch dies an rkill übergeben werden. Im folgenden Beispiel wid das SIGKILL-Signal an alle Prozesse gesendet:

# rkill -9 4816

Mehr Informationen zu pslist und rkill findet man in der Manpage pslist(1).

 Permalink

Zeitzonen-Einstellung änden

Möchte man die aktuelle Zeitzone seines Rechners ändern, so kann dies mit tzsetup gemacht werden. Die angegebene Zeitzone muss dabei unter /usr/share/zoneinfo existieren:

# date
Sa  1 Jan 2011 18:39:15 CET
# tzsetup Australia/Sydney
# date
So  2 Jan 2011 04:39:24 EST

Auf FreeBSD ist tzsetup standardmässig im Basissystem vorhanden. Mehr Informationen zu tzsetup findet man in der Manpage tzsetup(8).

 Permalink
Prev21-24/24