Mittwoch, 27. Juli 2016

SMS Server einrichten

SMS Server einrichten

Auf einem Ubuntu 16.04 Server soll ein SMS Server Dienst zur Alarmierung über SMS eingerichtet werden. Dazu soll das Paket "gammu" eingesetzt werden.
Als Hardware dient ein Huawei E1552 web'n'walk Stick Fusion II USB stick.
Zunächst soll sicher gestellt werden, dass der Stick im richtigen Modus (Modem) arbeitet und immer die selbe Device Bezeichnung zugewiesen bekommt.

Udev Regel zur Umschaltung von Storage in Modem Funktion

USB ModeSwitch muss installiert werden und folgende Regeln werden in /etc/udev/rules.d/ eingefügt:

# eigene udev-Regeln für UMTS-Sticks 
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1446 -M '55534243123456780000000000000011062000000100000000000000000000'"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1436", RUN+="/bin/bash -c 'modprobe option && echo 12d1 1436 > /sys/bus/usb-serial/drivers/option1/new_id'"

Eindeutiger Device Name festlegen

Damit der USB Stick auch immer den selben Namen bekommt, muss man eine weitere Regel in /etc/udev/rules.d einfügen:
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1436",  SYMLINK+="mytty-huawei-stick"

Beim erneuten Einstecken wird der Stick nun immer als /dev/mytty-huawei-stick angemeldet.

Gammu installieren und konfigurieren

$ apt get install gammu gammu-smsd 
Eine Konfigurationsdatei anlegen /etc/gammu-smsdrc
# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/mytty-huawei-stick
connection = at115200
# Debugging
logformat = textall

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
PIN = 'xxxx'
# Increase for debugging information
debuglevel = 0

# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Der gamu-smsd Service kann nun aktiviert und gestartet (systemd) werden
$ sudo systemctl enable gammu-smsd
$ sudo systemctl start gammu-smsd

Prüfen kann man die Funktion mit
sudo gammu-smsd-monitor -n 1 -d 1
Damit man in einem cron job den Stick überwachen kann - ohne root zu sein - ist es anzuraten, dem Binary das Setuid Bit zu setzen, dann kann jeder unprivilegierte User das Kommando (als root) ausführen:
$ chmod u+s /usr/bin/gammu-smsd-monitor

Versenden von SMS

Zuerst sollte man die Spool Directories für alle schreibbar machen sonst kann nur ein Benutzer senden:
$ chmod -R o+rwx /var/spool/gammu/

Jetzt kann die erste Textnachricht versendet werden:
echo "Testnachricht" | gammu-smsd-inject TEXT +4917XXXXXX

Option

Wer noch mag, kann sich noch Kalkun installieren, der mittels einer SQL Datenbank einen kompletten SMS Server, vergleichbar mit einem Email Server realisiert.

Montag, 18. Juli 2016

pull or push Google Drive files

drive is a tiny program to pull or push Google Drive files.

find drive sources here: https://github.com/odeke-em/drive

Installation unter Ubuntu 14.04

Um sich die Mühe der Installation von Go etc zu ersparen kann auch ein PPA hinzufügen:
/etc/apt/sources.list.d/twodopeshaggy-drive-trusty.list 

deb http://ppa.launchpad.net/twodopeshaggy/drive/ubuntu trusty main

Das installiert drive in der Version 0.3.7-0
drive 0.3.7-0  i386 Google Drive tool written in Go language

Initialisierung

$ drive init ~/gdrive
$ cd ~/gdrive

Benutzung: Daten herunterladen, Daten hochladen

$ drive pull
$ drive push

Freitag, 1. Juli 2016

Home Server auf Intel NUC Basis

Home Server auf Intel NUC Basis

Hardware:

Die Einzelteile

Das leere Chassis 

Das bestückte Chassis mit Speicher und mSATA SSD

Betriebssystem

Plattenaufteilung

Folgendes Design soll angewendet werden:

Bootdisk (128 GB):
  • 500MB /boot, ext2
  • 8,5 GB swap
  • Rest /, ext4
Datendisk (1 TB):
  • komplette Disk eine Partition für Logical Volume Manager (LVM)
    • Eine LVM Volume Group
      • ein logical volume 500 GB /home, btrfs
      • ein logical volume 500 GB, /export, btrfs
So sieht es dann rein physikalisch aus:

Modell: ATA ST1000LM024 HN-M (scsi)
Festplatte  /dev/sda:  1000GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      1049kB  1000GB  1000GB  primary               LVM

Modell: ATA TS128GMTS400 (scsi)
Festplatte  /dev/sdb:  128GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Typ       Dateisystem     Flags
 1      1049kB  511MB   510MB   primary   ext2            boot
 2      511MB   9010MB  8500MB  primary   linux-swap(v1)
 3      9011MB  128GB   119GB   extended
 5      9011MB  128GB   119GB   logical   ext4

Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/majestix--vg-majestix--lg1:  500GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: loop
Disk-Flags: 

Nummer  Anfang  Ende   Größe  Dateisystem  Flags
 1      0,00B   500GB  500GB  btrfs

Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/majestix--vg-majestix--lg2:  500GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: loop
Disk-Flags: 

Nummer  Anfang  Ende   Größe  Dateisystem  Flags
 1      0,00B   500GB  500GB  btrfs

Dateisystem    1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
/dev/sdb5      114279016 1968800 106482120    2% /
/dev/sdb1         481959  103510    353566   23% /boot
/dev/dm-1      488476672   16896 486361856    1% /export
/dev/dm-0      488280064   16928 486165248    1% /home

Stromverbrauch

Im Leerlauf ohne Last: ca. 8 Watt und im Betrieb ca 10,5 Watt.