Archiv

Archive for the ‘Terminal’ Category

Awesome Battery Widget

Seit einer Woche bin ich stolzer Besitzer eines Netbooks (Lenovo S10-3).

Auf dem Netbook läuft natürlich Gentoo mit aktuellem 2.6.38 Kernel (leider noch ~amd64), den brauche ich für den W-LAN-Chip (bcm4313) in dem Netbook. Dort wird nämlich der seit 2.6.37 enthaltene Staging Treiber brcm80211 benötigt. Über Google solltet ihr aber mehr dazu finden. Ein kleiner Tipp hier schon, wenn ihr die sys-kernel/linux-firmware installiert müssen die Symlinks noch angepasst werden ;).

Soviel also dazu.

Als Window-Manager setze ich awesome ein. Leider bietet awesome keine Widget zur Anzeige des Akku-Ladestandes bzw. wird eines angeboten über die Vicious Bibliothek, welches aber bei mir nicht funktioniert hat.
Deshalb hab ich mir gedacht, ich bau mir da selbst was.

Gesagt, getan….

Ich habe mir folgendes Script geschrieben, welches mit Hilfe von sys-power/acpi die Ladezustand bzw. die verfügbare Kapazität ausliest.


#!/bin/bash

# Get ACPI-State
str_ACPI=$(acpi | awk '{print $4}')
str_State=$(acpi | awk '{print $3}')

# Get Length of strings
i_ACPI_Length=$(expr length $str_ACPI)
i_State_Length=$(expr length $str_State)

# Get length of the strings without comma
let i_New=$i_ACPI_Length-1
let i_StLen=$i_State_Length-1

# Get substrings to delete comma
i_State=${str_ACPI:0:$i_New}
str_State=${str_State:0:$i_StLen}

# Print state;
# Return state to rc.lua

echo " $str_State $i_State"

Der Zustand des Akkus und die Restkapazität werden dann mit Hilfe des echo-Befehls zurückgegeben.

Dieses Script wird automatisch alle 10 Sekunden aus der lua.rc aufgerufen.
Hier mal der Code dazu:


-- Eigenes Widget
mybat = widget( {type = "textbox"} )
mytimer = timer( {timeout = 10 } )
mytimer:add_signal("timeout",  function() local fd =  io.popen("/home/fabi/Programmierung/Bash/bat_state.sh") mybat.text =  fd:read("*a") fd:close() end)
mytimer:emit_signal("timeout")
mytimer:start()

Der Timer (mytimer) ruft das Script alle 10 Sekunden auf, und der übergebene Wert wird in den Inhalt des zuvor erstellten Text-Widget mybat geschrieben.

Dieses Widget muss nun noch in den Tray eingefügt werden:


mywibox[s].widgets = {
 {
 mylauncher,
 mytaglist[s],
 mypromptbox[s],
 layout = awful.widget.layout.horizontal.leftright
 },
 mylayoutbox[s],
 mytextclock,
 mybat,
 s == 1 and mysystray or nil,
 mytasklist[s],
 layout = awful.widget.layout.horizontal.rightleft
 }

So, nun sollte das ganze funktionieren.

Hier mal ein paar Screenshots davon:

Laufen bzw. getestet ist das ganze unter awesome 3.4.8.

Das Script wurde auch schon hier im Winfuture-Forum veröffentlicht. Entstanden ist das ganze mit freundlicher Unterstützung von psychon aus dem Winfuture-IRC-Channel (irc.spotchar.org/#winfuture).

Für Kritik und Anregungen bin ich wie immer dankbar.
Viel Spaß damit.

Advertisements

Backup Script

September 24, 2010 Hinterlasse einen Kommentar

Hier mal mein Backupscript zum sicher meiner /home-Partition.
Das Script steht unter der LGPL.

Ich nutze es in Verbindung mit vixie-cron. Das Script macht eine alles 15 min ein Backup.

Abhängigkeiten:
rdiff-backup

</span>#!/bin/bash

#Backup-Script um Backups der Ordner /home und /etc
#Mit kleiner Logging-Funktion
#Die Log-Files werden nach /home/$user/BackupLog geschrieben

#Definition des Backup-Directories für den /home-Ordner
bkphome="/mnt/backup/workstation/home"
#Definition des Backup-Log-Files
bkplog="/home/fabi/BackupLog/log.txt"
#Definition des Backup Devices
bkpdev="/dev/sdb1"


#Überpfüfen ob das Tool rdiff-backup installiert ist
bkptool=`which rdiff-backup`

if [ $bkptool ]
then
 #Auslesen ob auf dem Backup-Medium genügen Speicher vorhanden ist.
 devinf=`df -h | grep $bkpdev | awk '{print $5}'` #Used Ausgabe von df-h
 rest=`expr match "$devinf" '\(.*[0-9]\)'` #Zahlen von Buchstaben trennen; für Vergleich
 echo $rest
 #Wenn mehr als 90% belegt sind erhält der User eine Meldung
 if [ $rest -lt "90" ]
 then
 #------------------------------/home-Backup----------------------------start
 rdiff-backup --exclude /home/lost+found /home $bkphome


 #Überprüfen des Return-Codes
 if [ $? -eq 0 ]
 then
 date >> $bkplog #Ausgabe des Datums
 echo "/home-Backup wurde erfolgreich ausgeführt." >> $bkplog
 echo "Verwendeter Speicher: " >> $bkplog
 echo $rest"%" >> $bkplog
 echo >> $bkplog #Leerzeile ausgeben
 else
 errcode=$?
 date >> $bkplog #Ausgabe des Datums
 echo "/home-Backup konnte nicht erfolgreich ausgeführt werden." >> $bkplog
 echo "Verwendeter Speicher: " >> $bkplog
 echo $rest"%" >> $bkplog
 echo "Return-Code = " >> $bkplog
 echo $errcode >> $bkplog #Return-Code ausgeben
 echo >> $bkplog #Leerzeile ausgeben
 fi
 #------------------------------/home-Backup----------------------------end
 else
 xmessage -center "Weniger als 10% Speicherplatz sind auf dem Backupmedium vorhanden."
 date >> $bkplog
 echo "Zu wenig Speicher auf dem Medium vorhanden." >> $bkplog
 echo "Genutzter Speicherplatz: " >> $bkplog
 echo $rest"%" >> $bkplog
 echo $bkplog
 fi
else
 xmessage -center "Bitte rdiff-backup installieren! Programm wird beendet."
 date >> $bkplog
 echo "Bitte rdiff-backup installieren! Programm wird beendet." >> $bkplog
 echo >> $bkplog
fi
<span style="color: #000000;">

Kategorien:BASH, Debian, Gentoo, Linux, Terminal, VIM

GNU Midnight Commander – Everybodys Darling

Da ich gerade mal wieder meine MacPorts aufräume, bin ich wieder zufällig über den Midnight Commander aka MC gestoplert, und hab kich sofort wieder dran erfreut.

Ich muss wirklich sagen, dass der MC gegenüber dem Finder doch einige tolle Funktionen und Eigenschaften hat.
Was ich wirklich gut fände, wäre eine Fensterteilung im Finder, wie sie z.B. auch der Gnome Commander oder Dolphin bietet.

Mal sehn, vielleicht schafft es Apple, den Finder ja irgendwann auch mal änlich effektiv zu gestalten.

GNU Midnight Commander

Kategorien:Apple, Mac OS X, MacPorts, Terminal Schlagwörter: , , ,