KategorieUncategorized

Limit memory of clamd on Debian/ubuntu

Nur als kurzes HowTo. HIer seht Ihr, wie ich den Speicherbedarf vom clamd begrenzen könnt.

nano /etc/systemd/system/clamav-daemon.service.d/extend.conf

[Service]
ExecStartPre=-/bin/mkdir /run/clamav
ExecStartPre=/bin/chown clamav /run/clamav
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
MemoryLimit=256M
CPUQuota=30%
Nice = 19

Gosund EP2, Teckin 22, Tuya Geräte ohne China Cloud und ohne flashen

Nachdem man leider die “flashbaren” Wlan-Steckdosen von Gosund SP111 nicht mehr bei Amazon bekommt ist es schwierig diese in Home Assistant zu integrieren. Schließlich bin ich auf die Component “localtuya” gestoßen. Zwar braucht man trotzdem einmalig die Tuya-App für die Einrichtung, dannach ist man aber von der China-Cloud befreit. In meiner Firewall habe ich auch den Zugriff für die Tuya Geräte auf der Internet geblockt.

Um nun die notwendigen Device-Ids und Keys zu bekommen muss man zunächst einen Account auf https://iot.tuya.com anlegen.

Im Anschluss erzeugt man unter “Cloud Develoment” eine neue App.

Gosund EP2, Teckin 22, Tuya Geräte ohne China Cloud und ohne flashen

Im Anschluss daran müsst ihr eine App unter “App Services –> App SDK” anlegen.

Gosund EP2, Teckin 22, Tuya Geräte ohne China Cloud und ohne flashen

Zum Abschluss müsst ihr noch die App aus dem AppSDK in der App in Cloud Development hinzufügen. Eine detailierte Beschreibung gibt es hier.

Nachdem das soweit erledigt ist, und Ihr nun Access ID/Client ID und Access Secret habt, braucht ihr ein Linux System (beispielsweise eine Raspberry).

Aus dem System installiert ihr nun npm mit folgendem Befehl:

apt install -y npm

Sobald alles durch ist, müsst ihr die tuya-cli installieren. Dies macht ihr mit folgendem Command:

npm i @tuyapi/cli -g

Beachtet bitte Schritte 1-4 von Github.

Nun solltet ihr erfolgreich die Device-Id’s eurer Geräte ausgelesen haben.

Gosund EP2, Teckin 22, Tuya Geräte ohne China Cloud und ohne flashen

Zum Schluss muss noch der Ordner custom_components/localtuya aus disem Git nach custom_components/localtuya in euer Home Assistant Konfiguration kopiert werden.

Mit dieser Konfiguration für Home Assistent kann man nun aus HA ohne die Tuya Cloud auf die Geräte zugreifen.

localtuya:
  - host: 192.168.1.x
    device_id: xxxxx
    local_key: xxxxx
    friendly_name: Tuya Device
    protocol_version: "3.3"
    entities:
      - platform: binary_sensor
        friendly_name: Plug Status
        id: 1
        device_class: power
        state_on: "true" # Optional
        state_off: "false" # Optional

      - platform: cover
        friendly_name: Device Cover
        id: 2
        open_close_cmds: ["on_off","open_close"] # Optional, default: "on_off"
        positioning_mode: ["none","position","fake"] # Optional, default: "none"
        currpos_dps: 3 # Optional, required only for "position" mode
        setpos_dps: 4  # Optional, required only for "position" mode
        span_time: 25  # Full movement time: Optional, required only for "fake" mode
        
      - platform: fan
        friendly_name: Device Fan
        id: 3

      - platform: light
        friendly_name: Device Light
        id: 4 # Usually 1 or 20
        color_mode: 21 # Optional, usually 2 or 21, default: "none"
        brightness: 22 # Optional, usually 3 or 22, default: "none"
        color_temp: 23 # Optional, usually 4 or 23, default: "none"
        color: 24 # Optional, usually 5 (RGB_HSV) or 24(HSV), default: "none"
        brightness_lower: 29 # Optional, usually 0 or 29, default: 29
        brightness_upper: 1000 # Optional, usually 255 or 1000, default: 1000
        color_temp_min_kelvin: 2700 # Optional, default: 2700
        color_temp_max_kelvin: 6500 # Optional, default: 6500


      - platform: sensor
        friendly_name: Plug Voltage
        id: 20
        scaling: 0.1 # Optional
        device_class: voltage # Optional
        unit_of_measurement: "V" # Optional

      - platform: switch
        friendly_name: Plug
        id: 1
        current: 18 # Optional
        current_consumption: 19 # Optional
        voltage: 20 # Optional

Postfix: Reprozessieren der Queue erzwingen

Postflix ist ein MTA. Manchmal ist es aus veschiedenen Gründen notwendig die Mailqueue zu reprozessieren.

Die Mailqueue kann man einfach mit “mailq” oder “postqueue -p” abfragen.

Um die Mailqueue zu reprozessieren einfach folgenden Befehl ausführen:

postqueue -f

In den Logs könnt Ihr den Fortschritt verfolgen:

tail -f /var/log/mail.log

Proxmox LXC Root Disk verkleinern

Wo es bei Proxmox einfach möglich ist, eine disc zu vergößern ist es schwieriger eine “große” Disc wieder zu verklenern. Im prinzip besteht die Prozedur aus folgenden Schritten:

  1. Container stoppen
  2. Backup Erstellen
  3. Container löschen
  4. Backup wiederherstellen mit verkleinerter Disk
pct stop 106
pct destroy 106
vzdump 106 -storage local -compress lzo
pct restore 106 /var/lib/vz/dump/vzdump-lxc-106-*.tar.zst --rootfs local:10

Im Beispiel oben gibt die local:10 die Größe der neuen Disk in GB an.

Proxmox LXC Root Disk verkleinern

Docker OpenVPN Client Container für jDownloader, Torrent usw.

Um Dockercontainer über einen VPN Container zu routen muss man nicht viel konfigurieren. Am Beispiel von NordVPN erkläre ich wie ihr andere Container, beispielsweise jDownloader über ein VPN Netzwerk routen könnt.

docker run -ti --cap-add=NET_ADMIN --device /dev/net/tun --name vpn -e RECREATE_VPN_CRON="5 */3 * * *" -e RANDOM_TOP=10 -e USER=<username> -e PASS=<password> -d azinchen/nordvpn

Bei dem obigen aufruf ist es wichtig den Name des Containers zu setzen. In meinem Beispiel “vpn”.

Im Anschluss kann man nun jeden belibigen Container and den VPN Client binden. Im folgenden Beispiel verknüpfe ich einen Debian Container mit dem VPN Client. Hier ist es wichtig –net=container:vpn anzugeben.

docker run -it --net=container:vpn -d debian

Startet man ein traceroute im Debian Container sieht man nun, dass Pakete über den VPN tunnel geroutet werden. Jeder Container kann so über den Tunnel geroutet werden.

MySQL/MariaDB – Tabellen von MyISAM nach InnoDB konvertieren

Manchmal ist es notwendig Datenbank/Tabellen zu konvertieren. Kürzlich stand ich vor dem Problem eine Datenbank reparieren zu müssen.

Table 'tablename' is marked as crashed and should be repaired 

Hier die Queries, welche die notwendigen ALTER statements generieren.

InnoDB nach MyISAM


SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=MyISAM;') 
FROM information_schema.TABLES WHERE ENGINE = 'InnoDB';

MyISAM nach InnoDB

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=InnoDB;') 
FROM information_schema.TABLES WHERE ENGINE = 'MyISAM';
MySQL/MariaDB - Tabellen von MyISAM nach InnoDB konvertieren

MotionEye oder Synology Survilance Station

Kürzlich stand ich vor dem Problem mehr als zwei Kameras in einer Überwachungssoftware zu betreiben. Synology bietet mit der Survilance Stattion ein sehr gutes und einfach zu administrierendes Tool an. Leider schlagen die Lizenzen deutlich zu Buche. Aus diesem Grund habe ich mich entschieden eine OpenSouce zu nutzen.

Auf der suche stieß ich auf MotionEye. Ebenso gibt es docker als auch native Versionen. Ich entschied mich, die Last von meinen Server zu “off-loaden” und nahm eine Raspberry Pi 3, die sowieso im Schrank rum lag.

Zum Einsatz kam nun das fertige Image von Github und dre ganze Prozess, vom Download, Image-Schreiben bis zum booten dauert nur wenige Minuten.

Nun noch die Initiale Konfiguration durchführen und schon ist die kostenlose Survilance Station mit MotionEye online.

[HowTo] Passwortschutz in Hiawatha

Möchtet ihr ein Verzeichnis mit einem Passwortschutz versehen, geht das wie folgt.

  1. User:Passwort Kombination erzeugen
  2. In Datei speichern
  3. Referenze in Konfig herstellen
  4. Hiawantha neu starten

Nun die Schritte im Detail

  1. Passwort erzeugen
root@server:~# wigwam -b USERNAME

Enter password:
USERNAME:$1$NgPZr/kS$AoYOt7e1.hKk5g99EjkX3

2. Ergebnis in Datei Speichern

echo "USERNAME:$1$NgPZr/kS$AoYOt7e1.hKk5g99EjkX3" > /pathToFolder/.password

3. In Konfig einfügen (/etc/hiawatha/hiawatha.com)

# Add this to vHost or folder to protect

PasswordFile = basic:/pathToFolder/.passwords

4. Neustarten des Webservers

/etc/init.d/hiawatha restart

 

Windows Fax via SIP

Kürzlich stand ich vor dem Problem, mehrere Seiten per Fax (ja es gibt noch Leute die das benutzen) zu verschicken. Leider gibt es im Netz zwar freie Dienste (google berühren) aber leider habe ich keinen gefunden, welche mehr als 5 Seiten zulässt.

Unter Linux gibt es natürlich die Möglichkeit mittels Asterisk und Hylafax ein fax via SIP zu verschicken, jedoch ist das etwas mit Kanonen auf Spatzen geschossen. Es gibt auch die Möglichkeit mittels Fritz!Fax zu faxen, aber bei mir war die Software nicht zum Laufen zu bringen. Also musste ich etwas im Netz recherchieren. Dabei bin ich auf einen virtuellen Modem Treiber gestoßen, welche ein SIP <–> Modem Verbindung herstellst und das ganze auch noch als Freeware.

Der Anbieter Trialware bietet einen solchen Treiber hier an.

http://www.faxback.com/Products/FreeMSFaxDownload.aspx