Posts Tagged ‘CLI’

Mittwoch, 5. April 2017

Zeichenkette auf der Linux-Kommandozeile in mehreren Dateien suche und ersetzen

Heute hat Cyon meinen Web-Server gezügelt. Dies machte es nötig, dass ich meine Postfix-Konfiguration auf einem halben dutzend Linux-Servern anpassen musste.

Da ich für jeden Server spezifische Konfigurationsdateien verwende, machte ich mich auf die Suche nach einer einfachen Lösung, wie man die Zeichenkette server41.cyon.ch mit s056.cyon.net ersetzen konnte.

Und zwar auf der Kommandozeile, mit einem Befehl?

Wie üblich half Stackexchange weiter:

$ sed -i -- 's/server41.cyon.ch/s056.cyon.net/g' *

Quelle: How can I replace a string in a file(s)?

Und schwupp-di-wupp waren die Konfigurationsdateien angepasst.

Tags: , , , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 30. April 2015

Duplikate und Müll aus OS Xs „Open with“ Menu entfernen

Folgender Befehl bewirkt eine gehörige Entschlackung des Menus:

# /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user
# killall Finder

Quelle: Remove Duplicates from the “Open With” Right-Click Menu in Mac OS X

Tags: , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 29. April 2015

KeePass Portable unter Windows mit einer bestimmten Passwortdatenbank starten

Nichts leichter als das! Man erstelle eine Datei „KeePass.cmd“ und füge folgenden Inhalt ein:

\\Server\Benutzer$\Documents\PortableApps\PortableApps\KeePassPortable\KeePassPortable.exe \\Server\Benutzer$\Documents\passwords.kdb
exit

Mit Doppelklick startet sich KeePass Portable und öffnet den Passwort-Prompt der angegebenen Passwortdatenbank.

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 7. Oktober 2012

Syntax eines PHP-Scripts auf der Kommandozeile überprüfen

Nicht immer produziere ich auf dem lokalen Mac Code in einem Verzeichnis, welches über den lokalen Web-Server angesprochen werden kann. Wenn ich den Code auf den Server des Kunden kopiert habe und mir dort eine gähnende Leere entgegenblickt, ist die Vermutung in der Regel ein Syntax-Problem, welches den PHP-Parser zum Abbruch bewegt. So genau weiss man das natürlich nicht, da man als guter Entwickler display_errors auf einem Produktivsystem auf 0/off/false gesetzt hat und Fehlermeldungen nur in das error_log ablegt.

Entweder öffnet man das error_log via FTP, oder aber man lässt die Syntax auf dem Mac selber von der Kommandozeilenversion von PHP überprüfen:

php -l <Pfad zum syntaktisch defekten PHP-Script>

Dies führt entweder zur Absolution mit

No syntax errors detected in <Pfad zum syntaktisch defekten PHP-Script>

oder aber im unglücklicheren Fall zur folgenden oder ähnlichen Fehlermeldung:

Parse error: parse error in <Pfad zum syntaktisch defekten PHP-Script> on line 146
Errors parsing <Pfad zum syntaktisch defekten PHP-Script>

Tags: , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. Januar 2011

Digitaler Mitschnitt eines Telefonanrufs unter Mac OS X

Soeben packte mich der Reiz, einen Telefonanruf (auf eine nicht mehr gültige Rufnummer, notabene) mitzuschneiden und zwecks Belustigung an meine Kollegen zu versenden.

Unter Mac OS X absolut kein Problem. Man benötigt:

Nachdem man sowohl Skype wie auch Audio Hijack installiert hat, startet man zuerst Audio Hijack und eröffnet eine neue Session, die auf die Applikation „Skype“ zeigt. Ein Klick auf den Knopf Hijack startet Skype und macht Audio Hijack bereit für den Mitschnitt.

Nachdem man die Handy-Nummer in das Wählfeld von Skype eingegeben hat (aber noch ohne den Wählen-Knopf zu drücken), muss man die Audio Hijack-Aufnahme mittels Record starten. Anschliessend wechselt man umgehend zurück nach Skype und wählt die Nummer.

Die Audiodaten, die über den Lautsprecher ertönen, werden im Hintergrund digital mitgeschnitten und im Session-Profil angegeben Ordner im AIFF-Format abgelegt.

Nachdem die Aufnahme abgeschlossen wurde, konvertiert man sich die übergrosse AIFF-Datei ins MP3-Format, damit die Mailserver sich nicht verschlucken:

$ ffmpeg -i Skype\ 20110109\ 1702.aiff -f mp3 -ab 192k -ar 44100 41790000000-2011-01-09.mp3

Es erschien bei mir zwar die Fehlermeldung

[libmp3lame @ 0x189ac00]lame: output buffer too small (buffer index: 8777, free bytes: 1015)
Audio encoding failed

doch das MP3 liess sich mit VLC problemlos abspielen.

Tags: , , , , , , , ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Samstag, 3. Oktober 2009

c’t offline update unter Mac OS X – es geht (doch nicht)!

Damit man das äusserst nützliche Tool c’t offline update unter Mac OS X zum laufen kriegt, sind folgende Schritte notwendig:

  1. MacPorts herunterladen und installieren
  2. sudo port install wget
  3. sudo port install cabextract
  4. sudo port install xmlstarlet
  5. sudo port install dos2unix

Anschliessend führt man folgenden Befehl aus:

$ cd ctupdate/sh
./DownloadUpdates.sh

… und folgt den Anweisungen auf dem Bildschirm.

Usage: ./DownloadUpdates.sh [system] [language] [parameter]

Also beispielsweise:

./DownloadUpdates.sh wxp deu

Schick!

wget: unrecognized option `--connect-timeout=1'

Nachtrag

Unter Mac OS X 10.6 funktioniert der Download der WindowsUpdates.

Tags: , , ,
Labels: Allgemein

1 Kommentar | neuen Kommentar verfassen

Sonntag, 13. September 2009

Druckaufträge von der Kommandozeile aus verwalten

Gerade würgt sich mein HP Laserjet 1300 – immerhin ein Postscript-Drucker mit einem RAM-Upgrade – durch einen Druckauftrag, den ich aus Adobe Acrobat 9 ausgelöst habe. Da für den Druck einer Seite etwa 10 Minuten vergehen (!), wurde mir die Sache zu blöd und ich suchte nach Möglichkeiten, den Druckauftrag zu löschen.

Da er unter Mac OS X bereits an den Druckerserver raus ist, muss ich Linux und lprng bemühen. Wie es sich herausgestellt hat, ist die Verwaltung von Druckjobs äusserst simpel – wenn man denn weiss, wie:

Druckerwarteschlange anzeigen

# lpq -Plaserdrucker
Printer: Laserdrucker@ALPHA 'HP Laserjet 1300'
 Queue: 2 printable jobs
 Server: pid 26486 active
 Unspooler: pid 26487 active
 Status: waiting for subserver to exit at 00:51:43.257
 Rank   Owner/ID               Pr/Class Job Files                 Size Time
stalled(672sec) mario@beta+327      A   327 657247.pdf        19804211 00:41:08
2      mario@beta+514               A   514 657247.pdf         8249902 00:47:05
done   mario@beta+970               A   970 studium:glossar-fra 326256 16:17:30

19804211 Bytes? 19 MB sind viel, kommen aber offensichtlich hin, denn ich drucke einen 18-seitigen Scan eines Artikels, den ich auf JSTOR gefunden habe.

Druckauftrag löschen

Um einen Druckauftrag in der Warteschlange zu löschen, muss man sich die Zahl unter Job merken und gibt anschliessend auf der Kommandozeile folgendes ein:

lprm -Plaserdrucker 327
Printer Laserdrucker@ALPHA:
  checking perms 'mario@beta+327'
  dequeued 'mario@beta+327'

Quelle: In Unix, how do I print files and list or remove print jobs?

Tags: ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 8. August 2009

Auf einen Rutsch alle neuen Dateien ins SVN (svn add)

Selbstverständlich kann man sich streiten, eine Dokuwiki ins SVN zu laden, doch da ich die nächste Woche offline in Frankreich verbringen werde, möchte ich einen einfachen Weg haben, um die an der Côte d’Azur erfassten Änderungen einfach in die Serverinstallation zurückzuspielen.

Doch da ich in der Zwischenzeit noch an einigen Zusammenfassungen weitergeschrieben habe, wurde es nötig, dass ca. 20 neu hinzugekommene Dateien noch ins Repository eingecheckt werden sollten. Wie macht man das möglichst einfach?

Ich habe mich für folgenden Befehl entschieden, den ich im root des versionierten Verzeichnisses ausführte:

svn status | grep "^?" | cut -d ? -f 2 | xargs svn add

Ein

svn add *

ginge natürlich auch, spuckt aber hässliche Fehlermeldungen aus.

Habt ihr einen noch effizienteren Tipp?

Tags: , ,
Labels: Linux

2 Kommentare | neuen Kommentar verfassen

Samstag, 20. Juni 2009

Systeminformationen in der Linux-Shell auslesen

Da unser Printserver auf der Arbeit in letzter Zeit oftmals einen ausgereizten Arbeitsspeicher meldet, werde ich heute ein, zwei zusätzliche Riegel RAM installieren gehen. Doch was für Module muss ich in unserem Ersatzteil-Lager suchen? Mit einem SSH-Zugang ist es absolut kein Problem, alle Fragen zu klären:

PCI-Bus auslesen

Zeigt die Chipsets und alle verbauten PCI-Karten an:

$ lspci
00:00.0 Host bridge: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 04)
00:02.0 VGA compatible controller: Intel Corporation 82815 Chipset Graphics Controller (CGC) (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 02)
00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 Controller (rev 02)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio Controller (rev 02)
02:08.0 Ethernet controller: Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller (rev 01)

CPU-Eigenschaften auslesen

Verbaut ist also ein Pentium III („model name“) mit 1 GHz („cpu MHz“):

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 996.828
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse up
bogomips        : 1995.74
clflush size    : 32
power management:

RAM-Typ

Auf das Tool dmidecode bin ich über der Blog-Artikel Linux: Check Ram Speed and Type aufmerksam geworden. Wie die nachfolgende Ausgabe zeigt, ist momentan ein RAM-Baustein verbaut – und zwar ein Riegel SDRAM 133 MHz mit einer Kapazität von 256 MB. Weiter hat es anscheinend noch Platz für zwei weitere Module („Size: No Module Installed“). Um was für Speicher es sich beim letzten Eintrag handelt, weiss ich hingegen nicht.

# dmidecode --type 17
# dmidecode 2.9
SMBIOS 2.3 present.

Handle 0x0023, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 256 MB
        Form Factor: DIMM
        Set: None
        Locator: XMM1
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: 133 MHz (7.5 ns)
        Manufacturer: JEDEC ID:C1 49 4E 46 49 4E 45 4F
        Serial Number: EEC20808
        Asset Tag: Not Specified
        Part Number: HYS64V32300GU-7.5.

Handle 0x0024, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: Unknown
        Data Width: Unknown
        Size: No Module Installed
        Form Factor: DIMM
        Set: None
        Locator: XMM2
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: Unknown
        Manufacturer: JEDEC ID:
        Serial Number:  
        Asset Tag: Not Specified
        Part Number:  

Handle 0x0025, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: Unknown
        Data Width: Unknown
        Size: No Module Installed
        Form Factor: DIMM
        Set: None
        Locator: XMM3
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: Unknown
        Manufacturer: JEDEC ID:
        Serial Number:  
        Asset Tag: Not Specified
        Part Number:  

Handle 0x0027, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 4 bits
        Data Width: 4 bits
        Size: 512 kB
        Form Factor: Chip
        Set: None
        Locator: XU15
        Bank Locator: Not Specified
        Type: Flash
        Type Detail: Non-Volatile
        Speed: Unknown
        Manufacturer: Not Specified
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified

Nachtrag

Wie ich vor Ort feststellen musste, unterstützt Intels 815er Chipset nur maximal 512MB RAM – egal, ob im dritten DIMM-Slot noch 256MB stecken oder nicht …

image-3445

216-Memory Size Exceeds Maximum Supported
Originally uploaded by emeidi

Tags: , ,
Labels: IT, Linux

3 Kommentare | neuen Kommentar verfassen

Dienstag, 16. Juni 2009

postfix unter Mac OS X 10.4 aktivieren (inklusive SMTP-Relay)

Obwohl es ein kostenpflichtiges GUI zur Konfiguration des postfix-Mailservers gibt, machen wir als Geeks die Sache lieber von Hand auf der Kommandozeile.

Da Apple postfix bereits mit der Standardinstallation von Mac OS X mitliefert, den Daemon aber nicht aktiviert, sind die Arbeiten relativ trivial. Wer nicht das erste Mal mit dem CLI in Berührung kommt und sich mit sudo und vim auskennt, sollte den SMTP-Server innert 5-10 Minuten am Laufen haben.

Wichtig ist, dass hier nicht der lokale SMTP-Server aktiviert, sondern auch gleich ein relayhost eingerichtet wird. In meinem Fall ist das der SMTP-Server meines ISPs Cablecom. Damit ist es möglich, Mails auch tatsächlich in die weite Welt hinauszusenden. Vorausgesetzt, man verfügt über einen SMTP-Account bei seinem ISP.

/etc/hostconfig

...
MAILSERVER=-YES-
...

/etc/postfix/main.cf

...
myhostname = mad4you.homeip.net
mydomain = mad4you.homeip.net
myorigin = $myhostname
...
inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host
mynetworks = 127.0.0.0/8
...
relayhost = smtp.hispeed.ch
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
...

/etc/postfix/sasl_passwd

smtp.hispeed.ch user@hispeed.ch:geheim

Sicherheitsvorkehrungen:

$ chmod 600 /etc/postfix/sasl_passwd
# chown root:root /etc/postfix/sasl_passwd

Anschliessend muss die Passwort-Datei gehasht werden, da die Angaben sonst nicht von postfix interpretiert werden:

# postmap /etc/postfix/sasl_passwd

Neustart des Daemons

# sudo launchctl start org.postfix.master

Test

$ echo `date` | mail -s "Dies ist ein Test-Betreff von der Kommandoziele" spam@eMeidi.com

Ein Blick in /var/log/mail.log zeigt umgehend, ob was rausgegangen ist oder nicht:

$ tail -f /var/log/mail.log
...
Jun 16 15:03:00 BETA postfix/master[1314]: daemon started -- version 2.1.5
Jun 16 15:03:02 BETA postfix/pickup[1315]: 058FE1A17BFE: uid=501 from=
Jun 16 15:03:02 BETA postfix/cleanup[1316]: 058FE1A17BFE: message-id=<20090616130300.058FE1A17BFE@mad4you.homeip.net>
Jun 16 15:03:02 BETA postfix/qmgr[1319]: 058FE1A17BFE: from=, size=342, nrcpt=1 (queue active)
Jun 16 15:03:04 BETA postfix/smtp[1320]: 058FE1A17BFE: to=, relay=smtp.hispeed.ch[213.46.255.24], delay=4, status=sent (250 2.0.0 4d311c07P0MzJ8L01d33xm message accepted for delivery)
Jun 16 15:03:04 BETA postfix/qmgr[1319]: 058FE1A17BFE: removed
Jun 16 15:04:00 BETA postfix/master[1314]: master exit time has arrived
...

Quellen

Tags: , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen