Entries tagged Linux

Windows PCs mit Linux Server herunterfahren

Posted on 12. April 2013 Comments

Das Hochfahren von PCs ist von jeder Platform aus eigentlich ziemlich einfach. Wenn das BIOS WakeOnLAN unterstützt bzw. überhaupt vorhanden ist(der Raspberry Pi hat z.B. keins), dann kann mit einem beliebigen Programm von jedem Betriebssystem so ein Aufweck-Paket geschickt werden.

Herunterfahren gestaltet sich da schon schwieriger, weil es dort natürlich keinen Standard gibt. Gerade um eine große Menge an Computern runterzufahren ist natürlich so eine Batch Lösung ganz angenehm. Das Problem ist nur, dass wir keine Windows-Server haben. Die meisten laufen unter irgendeiner Art von SuSE. Für einen remote shutdown gibt es das Programm PowerOff von Jorgen Bosman. Das Programm wird nicht mehr weiterentwickelt, funktioniert aber für WindowsXP noch wunderbar. Es gibt sogar eine Online Dokumentation. Wie allgemein bekannt sein dürfte, können Windows Programme unter Linux mit wine ausgeführt werden. Dazu wird allerdings meistens eine GUI gestartet, was sich natürlich in einem Bash-Script, welches z.B. über einen cronjob gestartet wird ziemlich unpraktisch ist. Obwohl das Program auch über Kommandozeile steuerbar ist, öffnet sich trotzdem irgendwie eine GUI. Um das zu vermeiden kann man dann das Programm wineconsole nehmen. Damit es zu keiner Fehlermeldung kommt habe ich in dem Skript, welches den PC-Pool herunterfährt nicht den Standard Display genommen sondern vorher durch ein export DISPLAY:=1 auf einen virtuellen Display umgeleitet. Für den virtuellen Display sorgt das Programm Xvfb. Damit dieses einen Display mit der Nummer 1 startet, gibt man einfach den Befehl Xvfb :1 & ein. Der muss natürlich nur einmal gestartet werden, nicht in jedem Skript neu.
Der Befehl für das Herunterfahren eines PCs mit der IP 192.168.1.10 ist:

wineconsole /usr/local/bin/pwo.exe -quiet poweroff -warn -warntime 1 -msg „Shutdown initiated“ -force -nocancel -password yourPWhere -remote 192.168.1.10

Wie man sieht habe ich die PowerOff Binary in /usr/local/bin verschoben, zeige keine ErrorMessage an, warne nur für 1 Sekunde mit dem Hinweis „Shutdown initiated“, das Abbrechen ist deaktiviert(ist in 1 Sekunde auch quasi unmöglich). Das Herunterfahren ist als Service auf dem entsprechenden Windows-Kisten installiert und braucht ein Passwort(„yourPWhere“). Dahinter dann noch die enstprechende IP-Adresse.

Um die eventuell noch an den Rechnern sitzenden User zu warnen, verwende ich folgenden Befehl:

wineconsole /usr/local/bin/pwo.exe -quiet no_action -warn -warntime 300 -msg “ Dieser Computer wird in 5 Minuten abgeschaltet. Bitte alle Anwendungen schliessen und abmelden! “ -force -nocancel -password yourPWhere -remote 192.168.1.10

Wie man hier sieht, führe ich aufgrund des no_action Schalters nichts direkt aus, sondern warne nur.

Nach ein paar Durchläufen führt das bei mir anscheinend zu irgendeiner Art von Speicherüberlauf, deswegen kill ich den Xvfb-Prozess über einen cronjob einmal am Tag und starte ihn neu.

Nützlich könnte auch dieser Artikel von mir sein, in dem ich beschriebe wie man mit einem einfachen Perl-Skript Cronjobs ein und anschaltet. Am Wochenende sind z.B. bei uns die Computer sowieso aus. Außerdem habe ich schonmal darüber gebloggt, wie man feststellt ob Computer einer bestimmten IP-Range online sind, indem man alle mal anpingt.

Bei Perl unter Windows 7 fehlt Tk und lässt sich nicht über cpan installieren

Posted on 7. Februar 2013 Comments

Die neue Perl Version enthält aus irgendeinem Grund Tk nicht (mehr?) standardmässig. Perl schlägt dann vor Tk mit dem folgendem Befehl nachzuinstallieren:

cpan -i Tk

Das funktioniert aber nicht, weil u.a. keine Compiler und Linuxtools wie make installiert sind. Also werden diese automatisch heruntergeladen. Allerdings schlägt die Installation trotzdem mit dem folgenden Ausgaben fehl:

rc -fo tk.res -r -i . -i mTk\win\rc mTk\win\rc\tk.rc
'rc' is not recognized as an internal or external command,
operable prgram or batch file.
dmake.exe: Error code 129, while making 'tk.res'
dmake.exe: Error code 255, while making 'pTk\libpTk.a'.

Was jedoch wunderbar und schnell funktioniert hat ist der folgende Befehl:

ppm install Tk

Ausloggen über Konsolenbefehl bei Ubuntu

Posted on 14. Dezember 2012 Comments

Letztens habe ich mich ein bisschen beim Wechsel der Windowmanager verdaddelt. Zum Glück konnte ich mich noch über SSH einloggen und kam dann mit dem folgenden Befehl zurück zur Anmeldung:

dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1

(Credits)

Mauszeiger unsichtbar machen unter Linux

Posted on 9. November 2012 Comments

Diese Methode funktioniert auf jeden Fall auf dem Raspberry Pi mit Debian 7.0 und Ubuntu 12.04:

Installiert unclutter

sudo apt-get install unclutter

Dann mit den Standardparametern starten:

unclutter ­grab ­visible &

Sobald man den Mauszeiger wieder bewegt ist er wieder da. Für weitere Möglichkeiten siehe:

man unclutter

Weitere Schluesselworte fuer Thunderbird Anhang-Erinnerung unter Linux

Posted on 23. Februar 2012 Comments

Wenn man bei Thunderbird in einer neuen E-Mail z.B. das Schlüsselwort Anhang erwähnt, es aber keinen Anhang gibt bekommt man beim Abschicken eine Warnung, ob man nicht vergessen hat die Dateien anzufügen. Neulich habe ich eine formelle E-Mail geschrieben, in der ich schrieb „anbei finden Sie Datei xyz“. Leider ist anbei keines dieser Schlüsselwörter und so habe ich leider den Anhang vergessen. Damit das nicht nochmal passiert habe ich aus dem Konfigurationseditor* mal die Schlüsselwörter rausgesucht. Der Key heisst mail.compose.attachment_reminder_keywords und die Wörter werden mit Kommata getrennt. Unter Windows findet sich das wohl bequemer unter Extras/Einstellungen/Allgemein/Schlüsselwörter, der Konfigurationseditor funktioniert natürlich trotzdem.

* das, was bei Firefox about:config ist findet man bei Thunderbird unter Bearbeiten(Linux) bzw. Extras(Windows)/Einstellungen/Erweitert/Allgemein/Konfiguration bearbeiten

Mit acp_commander root Zugriff auf Buffalo TeraStation Pro

Posted on 9. Februar 2012 Comments

Bei der Arbeit haben wir eine TeraStation Pro II und eine TeraStation Live. Dort kommt man leider nur per Web-Interface drauf, wir brauchten aber root haben also hab ich mich mal umgeguckt. Man kann natürlich die Firmware flashen, aber es geht auch noch einfacher. Mit dem Tool acp_commander und ein paar Linux-Befehlen kann man sich ebenfalls root Zugriff verschaffen.

Bei der TeraStation Live klappte folgendes:

java -jar acp_commander -t IPADRESSE -o

Vorrausgesetzt ist natürlich eine funktioniernde Java Installation. Wenn das unter Windows geschieht, muss das bin-Verzechnis der Java Installation im PATH sein(war bei mir nicht standardmässig der Fall). Für IPADRESSE ist die IP-Adresse des Geräts einzusetzen(wird evtl. auf Display angezeigt).

Wenn man folgende Meldung bekommt, sollte man der TeraStation eine statische IP geben, dem PC ebenfalls und die dann einfach direkt verbinden, denn irgendwas ist in den Router/W-LAN Einstellungen nicht in Ordnung bzw. zu restriktiv:

A SocketTimeoutException usually indicates bad firewall settings.
Check especially for *UDP* port 22936 and make sure that the connection to your LS is working.
ERROR: Exception: SocketTimeoutException (Receive timed out) [ACP Send/Receive (Packet:8020 = ACP_Discover)]

Wenn alles geklappt hat, kann man sich mit root und keinem Passwort über telnet anmelden:

telnet -l root IPADRESSE

oder über putty(telnet auswählen, Standard ist natürlich SSH). Jetzt kann man SSH nach belieben in /etc/sshd_config konfigurieren und dann mit /etc/init.d/ssh restart neustarten.

Die andere Kiste war nicht ganz so einfach zu öffnen, hier braucht man ein paar Linux-Befehle:

Setzen eines neuen root Passworts:

java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "(echo ADMINPASS;echo ADMINPASS)|passwd"

Schaltet die Authentifizierung über PAM via SSH wieder an:

java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS  -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"

Einstellung in der /etc/sshd_config, dass sich auch root direkt anmelden kann und nicht über su ein User zum root wird(gibt es unter busybox wohl nicht):

java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"

Zu guter Letzt: SSH Server neu starten

java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "/etc/init.d/sshd.sh restart"

Für ADMINPASS ist jeweils das Administratorpassowort einzusetzen und für IPADRESSE die IP-Adresse(s.o.). Auch hier muss der UDP Port frei sein, also am besten direkt über statische IPs mit nem Kabel von Computer zu TeraStation verbinden.

Man findet sonst auch noch interessante Informationen auf cpradio.org.

Credits to BigDiver und eine andere Quelle, die ich gerade nicht mehr wiederfinde.

dd Statusanzeige

Posted on 12. September 2011 Comments

dd ist das Kommandozeilen Kopiertool von *nix-Betriebssystemen. Im Gegensatz zu den meisten Programmen, hat es aber keine Statusanzeige oder gar einen Statusbalken um den Fortschritt anzuzeigen, so dass man kontrollieren kann, ob sich das Programm nicht vielleicht aufgehängt hat.

Mit diesem Trick kann man aus dd dennoch zu einer Ausgabe zwingen:

  1. dd Kopiervorgang starten, z.B.:
    $ dd if=/dev/sdb of=/dev/sdc
  2. Neue Konsole öffnen
  3. PID vom dd-Prozess herausfinden:
    $ ps -A |grep dd

    Die Ausgabe könnte z.B. so aussehen:

    $ 4905 pts/0   00:00:00 dd
  4. Statusreport-Signal an dd senden(PIDist die Nummer die Schritt 3. ergeben hat, z.B. 4095):
    $ kill -USR1 PID
  5. In der Konsole aus der ddgestartet wurde müsste jetzt eine Ausgabe kommen, z.B.
    75273+0 Datensätze ein
    75273+0 Datensätze aus
    38539264 Bytes (39 MB) kopiert, 27,4718 s, 1,4 MB/s

 

Ausserdem gibt es noch ein grafisches Tool für dd: air-imager

Credits to jma89 and h4shBrpwnz at linuxquestions.org

//update:
Das kleine Programm pipe viewer(pv) tuts auch und man bekommt sogar noch Datenrate und Fortschrittsbalken. Einfach installieren:

$ sudo apt-get install pv

Und dann über den geraden Strich über den eckigen Klammern an den dd Befehl hängen:

$ dd if=/mnt/sdx of=/mnt/sdy | pv

Credits to Peteris Krumin for finding this.

 

//update2:

Manchmal klappt das so nicht, z.B. beim Raspberry Pi (interne SD Karte auf USB Stick(/dev/sda) sichern). Dort muss man das folgendermaßen machen:

sudo dd if=/dev/mmcblk0 | pv | sudo dd of=/dev/sda

Thanks to from urfix.com

Ubuntus braunen Hintergrund beim Starten entfernen

Posted on 13. Februar 2008 Comments

Dieses Braun hat mich schon immer gestört, dabei ist es ganz einfach.

In /etc/gdm/PreSession nur den Wert BACKCOLOR in Zeile 61 ändern und fertig:)

# Default value
if [ "x$BACKCOLOR" = "x" ]; then

BACKCOLOR="#000000"

Die gewünschte Farbe kann z.B. mit Gimp oder Farbtabellen rausgesucht werden. Danke an ubuntu-forum.de für die Mühe.

Speedlink Sl-6810 Webcam mit Linux

Posted on 10. Januar 2008 Comments

Ich hab da mal etwas gegoogelt und man findet was von komischen Treibern etc. Das ganze braucht man unter Ubuntu(7.1) garnicht. Einfach ranstecken. lsusb müsste sowas in der Art ausgeben:

Bus 001 Device 002: ID 093a:2468 Pixart Imaging, Inc. Easy Snap Snake Eye WebCam

Dann einfach mal

sudo apt-get install camorama

eingeben. Das Programm ist dann unter Anwendungen/Grafik zu finden. Damit müsste die Cam schon so laufen. Als Messenger benutze ich aMSN, da funktioniert die Kamera nach kurzen Einstellen wunderbar;)

//edit: Da hier schon einige nach den Windows Treibern gesucht haben: Click here

//edit2: Mit Ubuntu 9.10 funktionierte das ganze irgendwie nicht so einfach, probiert mal das Standard-Programm cheese aus. Die Webcam braucht die libv4l Treiber (/usr/lib/libv4l), probiert mal fuer die Programme

sudo LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so PROGRAMMNAME

Mein lsusb gibt inzwischen auch was anderes aus:

Bus 005 Device 002: ID 093a:2468 Pixart Imaging, Inc. Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye Webcam

Camorama und cheese funktionieren jetzt mit sudo.