Eine komplette Sitzung in der Shell aufnehmen

Ein Abschnitt, welcher gute Dienste leisten kann.
Ich hatte den Abschnitt vorübergehend immer in die Datei /etc/bash.bashrc hinzugefügt. Ich fand Ihn perfekt, wenn ein Drittanbieter auf dem Server via SSH arbeiten verrichten musste. Vorher sollte der Drittanbieter informiert werden, dass seine Arbeit überwacht wird . Funktioniert natürlich nicht, wenn mit ansible und ähnlichen gearbeitet wird 😉

if [ "x$SESSION_RECORD" = "x" ]
then
timestamp=`date "+%m%d%Y%H%M"`
output=/var/log/session/session.$USER.$$.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${output}.timing $output
exit
fi

What is my IP für die Shell

Unter der Adresse https://ifconfig.co/ gibt es einen Dienst, welcher die öffentliche Adresse des genutzten Clients ausgibt. ifconfig.co lässt sich sehr gut in eigene Scripte durch die Unterstützung von curl, httpie, GNU Wget und fetch einbinden.

Ausgegeben werden hier nicht nur die IP-Adresse (Oktett, Dezimal), sondern auf Wunsch auch noch der Standort (ISO,Stadt, Land, GPS-Koordinaten) und die Erreichbarkeit von Ports ausgegeben.

Es ist möglich die Webanwendung auf einem eigene Host zu installieren, die Quellen liegen in einem öffentlichen Repository auf Github.

Bash aktiv Liquid Prompt

Oh, habe ich damals doch ganz vergessen es noch hier zu verlinken.
Aber da Dirk einen kleinen Artikel in seinem Blog dazu verfasst hat, werde ich doch einfach den Artikel Liquidprompt von Ihm verlinken ツ
Und bevor ich das nun auch noch vergesse, bei Liquid Prompt geht um einen Bashprompt, welcher sich den Bedürfnissen der jeweiligen Aufgaben in der Shell aktiv anpasst .
Hört sich doch faszinierend an und ist es auch.

md5sum von allen Dateien in einem Verzeichnis

Hat mir schon mehr als einmal geholfen nach der Übergabe eines Servers und überprüfen eines Backups.
Wenn man dann noch die Originaldateien hat und diff nutzt ist man aus dem Schneider und kann dem entsprechend seinen stündlichen Salär einfordern.
Simpel, aber effektiv

seraphyn@sayuri:~ find $VERZEICHNISSNAME -type f -print0 | xargs -0 md5sum > /root/checksums_$VERZEICHNISSNAME_$(date +%Y%m%d).md5
 seraphyn@sayuri:~ md5sum -c checksums_$VERZEICHNISSNAME_$DATUM.md5

Beispiel:

seraphyn@sayuri:~ find /etc -type f -print0 | xargs -0 md5sum > /root/checksums_etc_$(date +%Y%m%d).md5

Testen mit:

seraphyn@sayuri:~ md5sum -c checksums_etc_20110921.md5| grep -v "OK$"

planet@commandline: Ein neuer Planet erblickte das Licht

Es gibt einen neuen Planeten, welchen ich empfehlen möchte, denn die Idee dahinter ist mal eine, welche mich erfreut.
Der Planet planet@commandline kümmert sich um die mittlerweile entstandene „Randsparte“ der Freunde des Kommandozeile und der tastaturorientierten Fenstermanager. Neben all dem Klimbim ist das mal eine schöne Sache, denn ich erfreue mich mehr an solchen Tips und Tricks, sowie auch Neuigkeiten, anstelle der tausendsten Aufgebrühten grafischen Spielerei und Applikation. Diese Tage fand ein kleiner Umbruch in dem Planeten statt, welche von Alex Beckert eine Aufteilung des Planeten ergibt:

Different Flavours of Planet Commandline

Since there were quite some requests for a Planet Commandline feed without the microblogging feeds included, I splitted Planet Commandline into different flavours. I’m quite happy with that solution, because I must admit that the amount of microblogging postings in relation to normal blog postings was indeed higher than initially expected
So from now on Planet Commandline has a basic flavour at http://planet-commandline.org/ and one with the microblogging feeds (climagic and commandlinefu) included at http://planet-commandline.org/+snippets/.

For making this possible I hacked our Planet Venus wrapper to accept arbitary configuration snippets to be added at the end of the configuration as well as as sed-based modifications to the concatenated configuration before Planet Venus is run on them.

This also allowed me to create further flavours of Planet Commandline:

+german where Beat Gätzi’s German-written Chrütertee blog has been moved to, and
+emacs which adds Mickey Petersen’s Mastering Emacs to the list of included blogs.
I hope nobody minds this diversification of Planet Commandline.

Currently no combination of flavours is supported, but if there’s a relevant demand for the one or the other combination of flavours I may have a look if that can be automated, too.

Vertreten sind englisch und deutschsprachige Blogs, Sei es Unix (z.B. Chrütertee, eine BSD-Institution), oder Linux, sowie das Developerblog von GRML.
Wer sich an dem Standardaussehen, Grün auf Schwarz ( wie die alten IBM-Terminals und bei AIX Standard) stört, kann natürlich auch unter anderen Farbgebungen per rechte Seitenleiste (Switch Screen Color) wählen.
Ich hoffe, dass die Kombination der aufgeteilten Feeds bald möglich ist, aber ich empfinde die Aufteilung als gelungen.
Ich hoffe in dem Planeten werden bald mehr Blogs aggregiert, damit mein newsbeuter mir noch etwas mehr aus meiner Randspartenwelt bringt.
Toll, endlich mal wieder ein kleiner Lichtblick in dem ganzen Politik, BlingBling, UbuntumixDebianMacOS-Planeten.
Schade, das Pimp my Shell so stark angefangen hat, aber dann nachließ, denn dieses Blog würde auch Gut in den Planeten passen. Ich hoffe die Jungs machen noch ein wenig weiter…

Meine .bash_functions

Gerne nutze ich kleine Funktionen, welche nicht in der Bash, oder in anderen Programmen vorhanden sind. Um die Datei ~/.bash_functions mit einzubinden habe ich die Zeile:

if [ -f ~/.bash_functions ]; then
    . ~/.bash_functions
fi

in meiner ~/.bashrc.
Das erleichter mir den Überlick und das gleiche mache ich mit den Dateien ~/.bash_aliases ~/.bash_exports.
Niklot. Nein, ich nehme keine zsh;) (ein Insider).

~./bash_functions:

function wikipedia() { w3m  http://de.wikipedia.org/w/wiki.phtml?search="$*" ;}
function mtube {
  video_id=$(curl -s $1 | sed -n "/watch_fullscreen/s;.*(video_id.+)&title.*;1;p");
  mplayer -fs $(echo "http://youtube.com/get_video.php?$video_id");
}
function mkcd() {
  [ -n "$1" ] && mkdir -p "$@" && cd "$1";
}
  
cp_p()
{
   strace -q -ewrite cp -- "${1}" "${2}" 2>&1 
      | awk '{
        count += $NF
            if (count % 10 == 0) {
               percent = count / total_size * 100
               printf "%3d%% [", percent
               for (i=0;i< =percent;i++)
                  printf "="
               printf ">"
               for (i=percent;i<100;i++)
                  printf " "
               printf "]r"
            }
         }
         END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}

1. wikipedia lässt mich in der Shell mit Hilfe von w3m nachschlagen
2. mtube lässt mit Youtube-Videos mit der Hilfe des mplayers anschauen ( Ich muss mal ein irssi-Script schreiben, das …)
3. mkcd lässt mich ein Verzeichnis erstellen und gleichzeitig in jenes hineinwechseln, parents werden auch erstellt, falls nicht vorhanden.
4. cp_p gibt mir einen progress bar für den Kopierbefehl cp. # Der Befehl ist von Chris Lamb .Thank You, Chris

Links 110809

3 Books Giveaway – Learning Nagios 3.0, Hacking Vim and Mastering OpenLDAP
Manchmal freut man sich über Werbegschenke (Giveaway) über alles. Ich gehe mal davon aus, dass die meisten auch diese Giveaways strahlend in Ihren XPDF begrüssen, wie ich auch.

Password Advice by Bruce Schneier
Es ist ein elendiges Thema, aber es muss sein. Auch ich habe es oft genug angesprochen, Tipps, Anleitungen geschrieben. Aber was letzendlich übrigbleibt sind Dinge wie „$NEFFE$GEBURTSJAHR„; „$KATZENNAME1234„, oder sonst irgendwelche lustigen Gebilde, welche nicht wirklich einen netten Passwortcracker mit BruteForce/Wörterbuchattacke und Social Engineering stoppt. WrssdNuW ist ein nettes Bsp, welches ich immer gene nenne. Nur wie merkt man sich es? Wer reitet so spät durch Nacht und Wind. Setzt man nun noch ein ? an das Ende ( Sonderzeichen) inkl. den Geburtstag der liebsten an jede zweite Stelle, dann erhält man etwas sehr nettes und man kann es sich gut merken.

Productive Magazine issue #3 with Michael Bungay Stanier
Prokastinierung. Meiner Meinung nach das Wort des Jahres 2009. So oft wie dieses Jahr wurde die Aufschieberitis mit der Paarung von „mach-deinem-krempel-Fertig-Listenquatsch“ wie niemals zuvor durch das Netz der Netze gehetzt. GTD und Konsorten mögen eine nette Sache sein, nur kommt es mir langsam vor, als hätte Moleskin diesen ganzen Spaß aus Werbemaßnahmen hervorgerufen. So weit, so Gut, für meine Seite habe ich meinen Weg gefunden.

The Definitive Guide to htaccess Techniques: Do’s and Don’ts
.htaccess, für viele ein Buch mit sieben Siegeln, aber meiner Meinung nach, nicht wirklich schwer und immer für einen Hack Gut. Ich denke ein kleiner Einstieg mit ein paar Hints.

Chinese Firm Writes First SMS Worm
Und das ist erst der Beginn des Endes. IMO, Telefon schlicht einfach ist perfekt, max noch einen MP3/OGG-Player und eine Kamera für Unfälle. Mehr nicht. Aber wer auf die Idee kam den netten Telefonen ein komplettes OS zu bescheren hatte einen massiven Hau. Wer braucht denn wirklich aufgrund von nichtvergnügen die ganzen PIMeleien? sind wir doch mal ehrlich, es ist nichts anderes als Gizmospielerei mit netten Features.

Nagios: Monitor Cisco Routers Course
Oben das Buch, hier nun der freie Kurs. Ich kann nicht stark genug betonen, wie wichtig Nagios in einem Netzwerk ist.

10 Essential UNIX/Linux Command Cheat Sheets
Du musst Wissen… Genau!
Meiner Empfehlung nach ist http://cb.vu/unixtoolbox.xhtml wirklich sehr Gut.
Hier werden nämlich sehr positiv die Befehle untereinander verglichen (FreeBSD/Linux/Solaris.. wo ist AIX?) und für Umsteiger ist das ganze somit perfekt. Zwar wird nicht wirklich auf die Unterschiede der Shells (sh,ksh,tcsh,bash) eingegangen, aber genau für dieses Thema habe ich ein sehr gutes Buch. Es kann auch nicht alles bis in das kleinste Detail erkörtert werden. Somit, IMO gut gemacht.

Xplico – Network Forensic Analysis Tool
The goal of Xplico is extract from an internet traffic capture the applications data contained. For example, from a pcap file Xplico extracts each email (POP, IMAP, and SMTP protocols), all HTTP contents, each VoIP call (SIP), FTP, TFTP, and so on. Xplico isn’t a network protocol analyzer. Xplico is an open source Network Forensic Analysis Tool (NFAT). Xplico is released under the GNU General Public License (see License for more details).
Das lasse ich doch einfach mal so stehen und werde dafür keine An/Einleitung machen. Wer es nutzen möchte, muss sich schon selbst damit auseinandersetzen. Happy Penetration wünsche ich.

Wer nun den Unterschied zu den älteren News findet…

BASH 4.0 bringt Neues

Ich muss zugeben, bis jetzt habe ich mir nur die Seiten der einschlägigen Medien durchgelesen und viel gibt es bei jenen nicht als Erklärung was denn die BASH neues hat, oder neues kann. Es sind kurze Abrisse.Abwärtskompatible scheint sie nicht im ganzen zu sein, darauf gibt COMPAT eine Antwort, somit sollte man vielleicht doch mal kurz über seine Scripte schauen. Um einen wirklichen Einblick zu erhalten schaut man am besten in die NEWS. Für meine Seite bleibe ich erstmal bei der Version, welche mir Lenny bringt (Version: 3.2-4) und kümmere mich nicht darum.
Ein wenig komisch ist dieses hier:

12.
The `alias‘ builtin now checks for invalid options and takes a `-p‘ option to display output in POSIX mode. If you have old aliases beginning with `-‚ or `+‘, you will have to add the `–‚ to the alias command that declares them:

alias -x='chmod a-x' --> alias -- -x='chmod a-x'

Somit, einfach mal die Definierung der Aliase überfliegen.
Weiter Infos:
Heise.de: Unix/Linux-Shell Bash in Version 4
Golem.de: Unix-Shell Bash 4.0 verfügbar
Linux-Community.de: Zwei Sternchen für die Bash