Informatik und Kram

Da wir lange nicht wußten, wo wir das für die Uni ausgearbeitete Material unterbringen sollten und auch einen schrecklichen Drang hatten der Welt diverse Sachen aufzudrücken...

Linux-Sammlung
de-flagge aktiviert en-flagge deaktiviert

Da man ja manchmal sein System neu aufsetzen muss oder nach nützlichen Tips zur Einrichtung des Systems sucht, hier mal eine kleine Zusammenstellung (wächst ständig)..

rip last.fm tracks

Nach einigigem Suchen, TheLastRipper und mplayer, unschlagbar einfach, gut, und funktioniet 1A!http://code.google.com/p/thelastripper/downloads/listund anschliessend
mplayer http://127.0.0.1:8000
Die tracks werden einzeln als mp3 in einem gewählten verzeichnis abgelegt, das cover wird runtergeladen, und love/hate, skip, etc., die ganzen Funktionen von lastfm gibts auch in der TheLastRipper-GUI. Anhören mit mplayer!

Python skript automatisch neu starten

Hat man ein Python-Skript, was manchmal unerwartet beendet wird, und man will es immer nur genau einmal gestartet haben, muss man irgendwie überprüfen, ob es schon läuft, bevor es startet..Lockfiles wären eine gute variante, aber da das besagt skript wie gesagt manchmal unerwartet abschmiert, hier eine andere Lösung:Bei beiden Varianten muss die shebang im skript gesetzt sein, also erste zeile im python-skript:
#!/usr/bin/python
Variante a):
ein bash-skript (startskript.sh) mit folgendem inhalt automatisch bei systemstart starten:
#!/bin/sh
CHECKINGPERIOD=60   # in sekunden
while [ 1=1 ];
do
    date=`date`
    if [ ! "$(pidof -x skript.py)" ]
    then
        echo $date" - WARNING! skript crashed! trying to restart" >> /tmp/skript.log
        cd /path/to/skript/ && ./skript.py
    fi
    echo $date - checking >> /tmp/skript
    sleep $CHECKINGPERIOD
done
Dieses läuft aufgrund der while-schleife einfach immer mit, und checkt alle 60 sekunden, ob das skript.py noch läuft.
Ich habe mich für variante b entschieden, nämlich das skript ohne while, dafür mit cronjob alle fünf minuten..
Variante b, startskript.sh
#!/bin/sh
date=`date`
if [ ! "$(pidof -x skript.py)" ]
then
    echo $date" - WARNING! skript crashed! trying to restart" >> /tmp/skript.log
    cd /path/to/skript/ && ./skript.py
fi
echo $date - checking >> /tmp/skript.log
Dann mit crontab -e die cron tabelle bearbeiten und folgendes eintragen:
*/5 * * * * /path/to/startskript.sh

NetworkManager

Skripte bei Verbindung ausführen

In der rc.conf bei DAEMONS einfach networkmanager-dispatcher nach networkmanager eintragen.
Anschliessend kann man dann in /etc/NetworkManager/dispatcher.d/ eigene skripte anlegen.
Hier mal eins, um einen eigenen DNS/nameserver in die /etc/resolv.conf einzutragen, nachdem man mit einem Netzwerk verbunden ist. (Der DNS-Server, der per DHCP dort eingetragen wird, ist meistens der Router, und der ist manchmal übel langsam):
#!/bin/bash
su -c "sed -i '1i\nameserver 194.25.2.129' /etc/resolv.conf"
Dieses Script noch ausführbar machen, dann wird es jedesmal ausgeführt, sobald NetworkManager zu einem Netz verbindet!
[% UNKNOWN DIRECTIVE: 'endcode' %]

Mencoder

Tausende Bilder in Film konvertieren

Ich mach mit motion alle 2 seks nen snapshot mit der webcam, das ganze wird in /tmp/motion gespeichert. Wenn man jetzt einfach nen Film aus Bildern machen will, hilft mencoder:
mencoder mf:///tmp/motion/*.jpg -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi
Das Problem ist, dass bei vielen Bildern schnell die Arguments-Liste zu lang wird, also muss das ganze in Schleifen (ist noch nicht ausgereift!):
for i in $(seq 1 9); do mencoder mf:///tmp/motion/0$i-*.jpg -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/vid_$i.avi
Somit wären die einstelligen Fälle behandelt. (Geht sicher auch in einem Aufwasch mit den zweistelligen, aber ich bin mies in reg-ausdrücken). Jetzt also die zweistelligen:
for i in $(seq 10 200); do mencoder mf:///tmp/motion/$i-*.jpg -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/vid_$i.avi
Wenn das alles durchgelaufen ist, werden die ganzen mini-filmchen noch aneinandergebaut:
TODO!

Mpegs und avi files aneinanderhängen

cat file1.mpg file2.mpg > all.mpg
mencoder -forceidx -ovc copy -oac copy -o all_indexed.mpg

Mpg umwandeln und mit vierfacher Geschwindigkeit kodieren:

mencoder -vf hqdn3d=5:4:10,filmdint=io=10:1 -speed 10 \
-ovc lavc -lavcopts vcodec=msmpeg4v2:mbd=2:trell:vbitrate=8000 \
-of avi -o output.avi all_indexed.mpg

Gkrellm

Skins

http://www.muhri.net/gkrellm/

Battery-Warnungen

mit xosd kritischen Akkustand anzeigen lassen (als Command eintragen):
sh -c "echo 'Akku kritisch!' | osd_cat -p top -A right -o 50 -i 50 -c blue -f -adobe-helvetica-bold-*-*-34-*-* -O 1 -u white"

mICQ Infos automatisch versenden

Um mitzukriegen, wenn jemand neue Bilder auf den WG-Server geladen hat, hier folgendes Skript:
#!/bin/sh
a=`ls /YOUR_FOLDER/ | head -1`
if ! [ -z "$a" ] ; then mv /YOUR_FOLDER/"$a" /YOUR_TARGET_FOLDER/"$a" & /usr/local/bin/micq -u ICQ_SENDER_NR -p PASSWORD -C "msg ICQ_TARGET_NR New File:"$a"" "exit" "quit" ; fi
Dieses Skript ausführbar machen (chmod +x), in /usr/bin packen, und dann mit crontab -e folgende Zeile hinzufügen:
*/5 * * * * /usr/bin/move_new_files.sh

Kommentare

Kommentar schreiben