08Aug
Tags: Allgemein | Debian (Linux) | Webserver
Kommentieren
Der Cronjob auf dem Server sendet in regelmäßigen Abständen (ca. 4 Stunden) folgende E-Mail:
|
To: <root@localhost> Subject: info: mpt raid status change on localhost Message-ID: <XXXXXXX-XXXXX-XX-X@localhost> From: root <root@localhost> Date: Mon, 8 Aug 2016 07:40:47 +0200 MIME-Version: 1.0 Content-Type: text/plain This is a RAID status update from mpt-statusd. The mpt-status program reports that one of the RAIDs changed state: Report from /etc/init.d/mpt-statusd on localhost |
Die Lösung ist denkbar einfach. Wird kein RAID eingesetzt, kann der betroffene Dienst einfach gestoppt und deaktiviert werden:
|
/etc/init.d/mpt-statusd stop update-rc.d -f mpt-statusd remove |
Quellen:
cronjob, debian, email, error, mail, mpt, raid, status
02Jul
Tags: Allgemein | Debian (Linux) | Raspbian (Raspberry Pi) | Ubuntu
Kommentieren
Benutzer hinzufügen
|
# Benutzer im System anlegen sudo adduser --no-create-home --disabled-login --shell /bin/false <username> # Benutzer zu Gruppe hinzufügen usermod -g <gruppe> <username> # Benutzer zu Samba hinzufügen sudo smbpasswd -a <username> |
Benutzer entfernen
|
sudo userdel -r <username> sudo smbpasswd -x <username> |
Quellen
22Jun
Tags: Allgemein | Apache | Debian (Linux) | PHP | Webserver
Kommentieren
Dieser Fehler besagt, dass die Extension „yaml“ nicht geladen wurde. Dies kann man beheben, indem man in der entsprechenden php.ini (z.B. /etc/php5/apache2/php.ini
) die Zeile
hinzufügt und anschließend der Webserver neu startet.
Als Position in der php.ini
bietet sich der folgende Bereich an:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; If you wish to have an extension loaded automatically, use the following ; syntax: ; ; extension=modulename.extension ; ; For example, on Windows: ; ; extension=msql.dll ; ; ... or under UNIX: ; ; extension=msql.so ; ; ... or with a path: ; ; extension=/path/to/extension/msql.so ; ; If you only provide the name of the extension, PHP will look for it in its ; default extension directory. ; extension=yaml.so |
extension, php, php.ini, yaml, yaml.so, yaml_parse_file
25Jan
Tags: Debian (Linux)
Kommentieren
Bei einem simplen Update meines Debian-Servers (8.2 => 8.3) brach der Update-Prozess ab, da der Dienst rsyslog
nach dem Update nicht neu gestartet werden konnte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
$ sudo apt-get upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paketaktualisierung (Upgrade) wird berechnet... Fertig 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. 1 nicht vollständig installiert oder entfernt. Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J rsyslog (8.4.2-1+deb8u2) wird eingerichtet ... Job for rsyslog.service failed. See 'systemctl status rsyslog.service' and 'journalctl -xn' for details. invoke-rc.d: initscript rsyslog, action "restart" failed. dpkg: Fehler beim Bearbeiten des Paketes rsyslog (--configure): Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück Fehler traten auf beim Bearbeiten von: rsyslog E: Sub-process /usr/bin/dpkg returned an error code (1) |
|
$ sudo service rsyslog start Job for rsyslog.service failed. See 'systemctl status rsyslog.service' and 'journalctl -xn' for details. |
|
$ sudo journalctl -xe ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled) Active: failed (Result: start-limit) since Mo 2016-01-25 13:13:56 CET; 5s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Process: 30703 ExecStart=/usr/sbin/rsyslogd -n (code=exited, status=1/FAILURE) Main PID: 30703 (code=exited, status=1/FAILURE) Jan 25 13:13:56 hostname systemd[1]: Failed to start System Logging Service. Jan 25 13:13:56 hostname systemd[1]: Unit rsyslog.service entered failed state. |
In den Griff bekam ich das Problem, indem ich manuell alle laufenden Prozesse von rsyslog beendete:
|
$ sudo ps aux | grep rsyslog root 31991 0.0 0.0 258656 1884 ? Ssl 13:18 0:00 /usr/sbin/rsyslogd -n root 32018 0.0 0.0 12736 964 pts/0 S+ 13:22 0:00 grep rsyslog $ sudo kill 31991 |
Anschließend lief die Neu-Installation problemlos durch:
|
$ sudo apt-get remove rsyslog $ sudo apt-get install rsyslog |
rsyslog
10Dez
Tags: Betriebssystem | Debian (Linux) | Raspbian (Raspberry Pi)
Kommentieren
Warum parted
, wenn auch fdisk
funktioniert?
fdisk
arbeitet mit MBR
, parted
mit GPT
– zwei verschiedene Formate, Partitionen auf eine Festplatte zu schreiben. Der Grund, weshalb ich hier auf GPT
zurückgreife anstatt das allseits bekannte und beliebte MBR
, ist, dass MBR
nur Partitionen bis 2TB unterstützt.
Partitionieren der Festplatte
Für die folgenden Schritte ist das Programm parted
nötig. Dieses kann mittels
|
$ sudo apt-get install parted |
nachinstalliert werden.
- Untersuchen der aktuellen Festplattenkonfiguration:
|
Disk /dev/sdb: 110 GiB, 118111600640 bytes, 230686720 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa659f109 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 60262399 60260352 28,8G 83 Linux /dev/sda2 60264446 62912511 2648066 1,3G 5 Extended /dev/sda5 60264448 62912511 2648064 1,3G 82 Linux swap / Solaris |
- Untersuchen der Partitionierung der entsprechenden Festplatte (in diesem Falle
/dev/sdb
):
|
Disk /dev/sdb: 110 GiB, 118111600640 bytes, 230686720 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes |
- Starten von
parted
mit der gewählten Festplatte /dev/sdb
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: /dev/vdd: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdd: 21,5GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: (parted) mklabel gpt (parted) print Model: VMware Virtual disk (scsi) Disk /dev/sdb: 118GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart primary 0% 100% (parted) print Model: VMware Virtual disk (scsi) Disk /dev/sdb: 118GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 118GB 118GB primary (parted) q Information: You may need to update /etc/fstab. |
- Anzeigen der gesamten angeschlossenen Festplattenkonfiguration:
|
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 30G 0 disk ├─sda1 8:1 0 28,8G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 1,3G 0 part [SWAP] sdb 8:16 0 110G 0 disk └─sdb1 8:17 0 110G 0 part sr0 11:0 1 1024M 0 rom |
- Formatieren der neuen Partition als
ext4
:
|
$ sudo mkfs.ext4 /dev/sdb1 |
|
mke2fs 1.42.12 (29-Aug-2014) Ein Dateisystems mit 28835328 (4k) Blöcken und 7208960 Inodes wird erzeugt. UUID des Dateisystems: fb6bed30-7a04-4638-a12b-ae55d2c5de2e Superblock-Sicherungskopien gespeichert in den Blöcken: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 beim Anfordern von Speicher für die Gruppentabellen: erledigt Inode-Tabellen werden geschrieben: erledigt Das Journal (32768 Blöcke) wird angelegt: erledgt Die Superblöcke und die Informationen über die Dateisystemnutzung werden geschrieben: erledigt |
Die 1
in sdb1
ist übrigens äußerst wichtig, da ihr ansonsten die gesamte Festplatte ohne Partitionen formatiert, was unter umständen später Probleme bereiten kann (es funktioniert, wäre jedoch nicht zu empfehlen).
- Mounten unserer neuen Partition:
|
$ sudo mount /dev/sdb1 /data |
18Nov
Tags: Allgemein | Debian (Linux) | macOS / OS X (Mac) | Raspbian (Raspberry Pi) | Webserver
Kommentieren
OS X / Linux
Im Folgenden beschreibe ich, wie das Ganze mit einem Linux- oder Mac-Client beim Zugriff auf einen Linux-Server funktioniert.
Lokal: Key erstellen
|
$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/Users/USER/.ssh/id_rsa/): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/USER/.ssh/id_rsa. Your public key has been saved in /Users/USER/.ssh/id_rsa.pub. The key fingerprint is: 32:33:a6:c9:04:c9:c9:b9: test@localhost.local The key's randomart image is: |
Key übertragen
|
scp /Users/USER/.ssh/id_rsa.pub user@deinserver.com:~ |
Remote: Key zu den authorized_keys hinzufügen
|
# Falls die nötigen Verzeichnisse nicht existieren, anlegen: mkdir ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # Key hinzufügen cat ~/id_rsa.pub >> ~/.ssh/authorized_keys |
Lokal: Key automatisch mit senden
|
ssh-add /Users/USER/.ssh/id_rsa Need passphrase for /Users/USER/.ssh/id_rsa.pub user@deinserver.com. Enter passphrase: |
Troubleshooting
Fehler: „Could not open a connection to your authentication agent.“
In diesem Fall hilft es meist, den SSH-Agent zu starten:
Quellen:
08Okt
Tags: Allgemein | Debian (Linux) | MySQL | MySQL-Server | Webserver | xt:Commerce
Kommentieren
Ein Kunde hatte das Problem, dass der auf unserem Server installierte xt:commerce 3 teilweise so hohen Datenbank-Load verursachte, dass der MySQL-Server abrauchte und somit den ganzen Server kurzzeitig in einer Nicht-Erreichbarkeit stürzte. Zwar war schon länger ein Update auf eine neue xt:commerce-Version geplant, jedoch befand sich der neue Shop noch in der Entwicklung und es musste kurzfristig eine Lösung erarbeitet werden, da die Ausfälle sich häuften (teilweise bis zu 3x am Tag).
Relativ schnell entpuppte sich die Suchfunktion des xt:commerce als ausschlaggebend, welche bei meinen Tests bei einer Volltextsuche meist zwischen 40 und 50 Sekunden benötigte, dabei den MySQL-Server komplett belastet – nun stelle man sich dies am Tages-Hoch mit hunderten Besuchern vor.
Mit den folgenden Umstellungen in der MySQL-Datenbank lässt sich die Suche durch einfaches Setzen von Indizes stark beschleunigen:
Tabelle „products_description„:
- products_id
- language_id
- products_name
- products_description (FULLTEXT)
- products_short_description (FULLTEXT)
- products_keywords
Tabelle „products_options„:
- language_id
- products_options_name
Tabelle „products_attributes„:
Tabelle „products_options_values„:
- language_id
- products_options_values_name
Tabelle „specials„:
Wichtig ist, dass die neuen Indexes eine möglichst hohe Kardinalität besitzen (also viele verschiedene Werte), damit eine Performancesteigerung erreicht werden kann.
Quellen
- http://forums.xt-commerce.com/topic/60364-suchfunktion-sehr-langsam-sessions/
- http://thomas.eses.name/mysql-indexe-richtig-setzen/
27Mai
Tags: Debian (Linux) | Raspbian (Raspberry Pi)
Kommentieren
Um die Ausgabe eines Befehls zu beobachten, bietet sich das Programm watch
an, das in angegebenem Zyklus die Bildschirmausgabe aktualisiert:
|
Options: -b, --beep beep if command has a non-zero exit -c, --color interpret ANSI color sequences -d, --differences[=<permanent>] Unterschiede zwischen den Ausgaben werden hervorgehoben -e, --errexit exit if command has a non-zero exit -g, --chgexit Beende watch, wenn sich die Ausgabe des Befehls ändern -n, --interval <secs> Anzahl der Sekunden zwischen den Aktualisierungen [2s] -p, --precise attempt run command in precise intervals -t, --no-title Verstecke die Kopfzeile (Uhrzeit und Kommando) -x, --exec pass command to exec instead of "sh -c" -h, --help Zeige diese Hilfe -v, --version Zeige die Version von watch |
Beispiel
Das folgende Beispiel überwacht die aktuelle RAM-Belegung in /proc/meminfo
und aktualisiert sich jede Sekunde. Zudem werden die Veränderungen hervorgehoben:
|
watch -n 1 -d 'cat /proc/meminfo' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Every 1,0s: cat /proc/meminfo Wed May 27 21:11:09 2015 MemTotal: 4060708 kB MemFree: 1598172 kB MemAvailable: 3695240 kB Buffers: 33728 kB Cached: 2189016 kB SwapCached: 0 kB Active: 164308 kB Inactive: 2136732 kB Active(anon): 67788 kB Inactive(anon): 24780 kB Active(file): 96520 kB Inactive(file): 2111952 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 1324028 kB SwapFree: 1324028 kB Dirty: 56 kB |
Weiterführende Informationen
aktualisieren, befehl, command, kommando, refresh, watch