You are here

Oli's Spickliste

Mein Hirn wird langsam alt und matschig, daher fange ich an, mir Zeugs aufzuschreiben...

Inhaltsliste


File Limit für MySQL hoch setzen

Caution: This is obsolete nowadays. Use SystemD if possible!

shell> su - mysql
shell> ulimit -Sn
1024
shell> ulimit -Hn
4096

shell> cat /etc/security/limits.d/mysql.conf
#
# /etc/security/limits.d/mysql.conf
#

mysql            hard    nofile          16384
mysql            soft    nofile          16384

shell> grep pam_limits /etc/pam.d/common-session
session required        pam_limits.so

Login reicht und Reboot sollte auf Ubuntu 14.04 nicht notwendig sein.

shell> su - mysql
shell> ulimit -Sn
16384
shell> ulimit -Hn
16384

Achtung: Siehe auch SystemD Notizen.

Entropie auf virtuellen Maschinen (VM guests)

Ein neues Phänomen, mit welchem wir möglicherweise in Zukunft zu kämpfen haben, ist die Entropie in virtuellen Maschinen. Diese wird für Verschlüsselung benötig. Da wir aus Sicherheitsgründen vermehrt https und SSL etc. verwenden sollten, und alle Welt Virtualisierung so super cool findet, wird dieses Problem in naher Zukunft verstärkt auftreten. Insbesondere auch mit MySQL ab der Version 5.7 bei welcher ja SSL per default eingeschaltet ist.

Je nach Quelle sollte die Entropie nicht unter 1000 oder nicht unter 100 fallen. Wie dem auch sei: Monitoren kann nicht schaden:

shell> cat /proc/sys/kernel/random/entropy_avail
956

Siehe dazu auch:


Unleserliche Firefox Tooltips unter KDE/Kubuntu

Deutsch: KDE-Menü: Einstellungen -> Systemeinstellungen -> Allgemeines Aussehen und Verhalten -> Anwendungs-Aussehen (öffnet neues Fenster) -> Farben (in Auswahl links) -> Farben (als Reiter) -> Tooltip Hintergrund und Tooltip Text

English: KDE-Menue: Settings -> System Settings -> Common Appearance and Behavior -> Application Appearance -> Colors (left column) -> Colors (tab) -> Tooltip Background and Tooltip Text

Apache mod_rewrite Beispiele

Gilt nur für Apache 2.4 und neuer: Rewrite trace aktivieren (nicht auf der Produktion!)

#
#/etc/apache2/conf-available/rewrite_log.conf 
#
LogLevel rewrite:trace8

shell> a2enconf rewrite_log
shell> service apache2 restart

Logged ins Apache Error Log (/var/log/apache2/error.log) und sieht wie folgt aus:

[Thu Feb 23 11:24:15.615062 2017] [rewrite:trace3] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] strip per-dir prefix: /var/www/html/forumdisplay.php -> forumdisplay.php
[Thu Feb 23 11:24:15.615147 2017] [rewrite:trace3] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] applying pattern 'forumdisplay.php' to uri 'forumdisplay.php'
[Thu Feb 23 11:24:15.615181 2017] [rewrite:trace4] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] RewriteCond: input='fid=1q' pattern='fid=1' => matched
[Thu Feb 23 11:24:15.615195 2017] [rewrite:trace2] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] rewrite 'forumdisplay.php' -> 'https://fromdual.com/forum/416'
[Thu Feb 23 11:24:15.615216 2017] [rewrite:trace2] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] discarding query string
[Thu Feb 23 11:24:15.615229 2017] [rewrite:trace2] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] explicitly forcing redirect with https://fromdual.com/forum/416
[Thu Feb 23 11:24:15.615241 2017] [rewrite:trace1] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] escaping https://fromdual.com/forum/416 for redirect
[Thu Feb 23 11:24:15.615255 2017] [rewrite:trace1] [pid 19548] mod_rewrite.c(468): [client 127.0.0.1:46136] 127.0.0.1 - - [localhost/sid#7efc6e9452d8][rid#7efc6e6710a0/initial] [perdir /var/www/html/] redirect to https://fromdual.com/forum/416 [REDIRECT/301]

Einige Rewrite Regeln:

#
# ./.htaccess
#

# To activate .htaccess it needs:
# AllowOverride All
# on <Directory ... />

# Activate the following line to test if .htaccess is read (Error 500):
# Break.

RewriteEngine On

# Forum rewrite: /forumdisplay.php&fid=1 -> https://fromdual.com/forum/416
# Do NOT attach query string (QSD), Redirect permanently (R), Do not continue if match
RewriteCond "%{QUERY_STRING}" ="fid=1"
RewriteRule "forumdisplay.php" "https://fromdual.com/forum/416" [QSD,R=301,L]

...

RewriteCond "%{QUERY_STRING}" ="fid=99"
RewriteRule "forumdisplay.php" "https://fromdual.com/forum/775" [QSD,R=301,L]

# Catch-all
RewriteRule ".*" "https://fromdual.com/forum" [QSD,R=301,L]

Historische Performance-Daten mittels sar

Allenfalls vorgängig sar entsprechend konfigurieren (Ubuntu):

# /etc/default/sysstat
ENABLED="true"

# /etc/cron.d/sysstat
# Activity reports every minute everyday
*  *  *  *  * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Die sar History-Files (31 verfügbare Tage) liegen hier:

# Ubuntu
shell> ll -ltr /var/log/sysstat/sa??

# CentOS
shell> ll -ltr /var/log/sa/sa??

Network

shell> sar -n DEV,EDEV -s 09:00:00 -e 10:59:59 -f /var/log/sysstat/sa03 | grep -e IFACE -e eth0

09:56:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
09:58:01         eth0      2.45      2.74      0.69      0.52      0.00      0.00      0.01      0.00
10:00:01         eth0      7.47      6.95      0.84      0.87      0.00      0.00      0.01      0.00
10:02:01         eth0      4.78      5.03      0.85      1.05      0.00      0.00      0.01      0.00
10:04:01         eth0      6.42      5.70      2.90      0.79      0.00      0.00      0.01      0.00
Average:         eth0      5.28      5.10      1.32      0.81      0.00      0.00      0.01      0.00

09:56:01        IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
09:58:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:02:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:04:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

shell> sar -n DEV,EDEV -s 09:00:00 -e 10:59:59 -4 | grep -e IFACE -e eth0
Linux 3.13.0-110-generic (chef)         03/03/17        _x86_64_        (4 CPU)

09:54:24          LINUX RESTART

09:56:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
09:58:01         eth0      2.45      2.74      0.69      0.52      0.00      0.00      0.01      0.00
10:00:01         eth0      7.47      6.95      0.84      0.87      0.00      0.00      0.01      0.00
10:02:01         eth0      4.78      5.03      0.85      1.05      0.00      0.00      0.01      0.00
10:04:01         eth0      6.42      5.70      2.90      0.79      0.00      0.00      0.01      0.00
10:06:01         eth0      5.21      3.20      0.62      0.49      0.00      0.00      0.01      0.00
Average:         eth0      5.26      4.72      1.18      0.74      0.00      0.00      0.01      0.00

09:56:01        IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
09:58:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:02:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:04:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:06:01         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Disk

shell> sar -d -p -1 -f /var/log/sysstat/sa03  | grep -e DEV -e sdb

09:56:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09:58:01          sdb      3.92      1.73    100.04     25.94      0.04      9.63      0.75      0.29
10:00:01          sdb      3.39      0.00     76.45     22.55      0.05     14.07      0.47      0.16
10:02:01          sdb      5.46      0.00    294.50     53.94      0.11     20.54      0.76      0.42
10:04:01          sdb      3.20      0.00     91.65     28.65      0.04     11.02      0.71      0.23
10:06:01          sdb      3.98      1.07    105.26     26.69      0.06     14.45      0.59      0.23
Average:          sdb      3.99      0.56    133.67     33.62      0.06     14.56      0.67      0.27

Swap und Swapping

shell> sar -B -s 15:00:00 -e 15:59:59 -f /var/log/sysstat/sa02

15:00:01     pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
15:01:01         1.66    822.28   5624.93      0.08   5309.67    239.14      0.00    232.13     97.07
15:02:01        18.77    506.68   4902.25      0.20   5094.89      0.00      0.00      0.00      0.00
15:03:01         5.81    644.31   3742.01      0.07   3823.89      0.00      0.00      0.00      0.00
15:04:01         4.82    507.51   4387.05      0.17   4695.08      0.00      0.00      0.00      0.00
15:05:01         9.48    563.11   6127.06      0.02   6717.79      0.00      0.00      0.00      0.00

shell> sar -S -s 15:00:00 -e 15:59:59 -f /var/log/sysstat/sa02

15:00:01    kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
15:01:01     30132988   1117440      3.58     18380      1.64
15:02:01     30132988   1117440      3.58     18380      1.64
15:03:01     30132988   1117440      3.58     18380      1.64
15:04:01     30132988   1117440      3.58     18388      1.65
15:05:01     30132988   1117440      3.58     18388      1.65

shell> sar -W -s 15:00:00 -e 15:59:59 -f /var/log/sysstat/sa02

15:00:01     pswpin/s pswpout/s
15:01:01         0.00      0.10
15:02:01         0.00      0.00
15:03:01         0.00      0.00
15:04:01         0.03      0.00
15:05:01         0.00      0.00

Debian Pakete mit Abhängigkeiten installieren

shell> dpkg -i some_package.deb
shell> apt-get install --fix-broken

Linux Filesystem Cache flushen

shell> sudo echo 3 > /proc/sys/vm/drop_caches

MySQL/MariaDB CLI mini-Benchmark mit Microsekunden Präzision

SQL> SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)) INTO @begin; DO BENCHMARK(10, SLEEP(1)); SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)) INTO @end; SELECT ROUND(@end - @begin, 6) AS elapsed;
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (10.00 sec)
Query OK, 1 row affected (0.00 sec)
+-----------+
| elapsed   |
+-----------+
| 10.000955 |
+-----------+
1 row in set (0.00 sec)

Bilder auf 1200x900 skalieren

shell> for i in $(ls -1 *.JPG | cut -b5-8) ; do
  convert DSCN${i}.JPG -resize 1200x900 DSCN${i}_1200x900.JPG
done

StarOffice Dokumente nach LibreOffice ODF konvertieren

LibreOffice 5.3 soll StarCalc (.sdc), StarDraw/StarImpress (.sda, .sdd, .sdp) und StarWriter (.sdw) wieder unterstützen. Vielleicht ist das der einfachere Weg?

Basis: VirtualBox Debian 9 VM. StarOffice Download.

shell> wget https://downloadarchive.documentfoundation.org/libreoffice/old/3.6.7.2/deb/x86_64/LibO_3.6.7.2_Linux_x86-64_install-deb_en-US.tar.gz
shell> wget https://downloadarchive.documentfoundation.org/libreoffice/old/3.6.7.2/deb/x86_64/LibO-SDK_3.6.7.2_Linux_x86-64_install-deb_en-US.tar.gz

shell> tar xf LibO_3.6.7.2_Linux_x86-64_install-deb_en-US.tar.gz 
shell> tar xf LibO-SDK_3.6.7.2_Linux_x86-64_install-deb_en-US.tar.gz 

shell> dpkg -i libobasis3.6-core01_3.6.7.2-2_amd64.deb libreoffice3.6-ure_3.6.7.2-2_amd64.deb
shell> dpkg -i libobasis3.6-core0?_3.6.7.2-2_amd64.deb
shell> dpkg -i libreoffice3.6-writer_3.6.7.2-2_amd64.deb libobasis3.6-writer_3.6.7.2-2_amd64.deb libreoffice3.6_3.6.7.2-2_amd64.deb libobasis3.6-images_3.6.7.2-2_amd64.deb 
shell> dpkg -i libobasis3.6-writer_3.6.7.2-2_amd64.deb libreoffice3.6-base_3.6.7.2-2_amd64.deb libobasis3.6-base_3.6.7.2-2_amd64.deb
shell> dpkg -i *.deb
shell> dpkg -i libobasis3.6-sdk_3.6.7.2-2_amd64.deb 
shell> apt-get install openjdk-8-jre

Dann von einer neuen Konsole aus:

shell> ssh -X root@192.168.56.101
/opt/libreoffice3.6/program/swriter

Dokumente finden

shell> find . \( -name "*.sdw" -o -name "*.sdc" -o -name "*.sdd" \)

Zu alte Dokumente (2001) haben nicht funktioniert. Um noch zumindest an den Text zu gelangen wurde wie folgt vorgegangen:

shell> strings rumtopf.sdw > rumtopf.txt

HPLIP Farbdruckproblem-Workaround

  • VirtualBox Ubuntu 16.04 starten.
  • HPLIP installieren (deinstallieren hat nicht funktioniert):
    shell> sudo hp-uninstall
    shell> dpkg -l | grep hpli
    shell> ./hplip-3.17.11.run
    shell> hp-setup
    
  • Drucker konfigurieren:
    shell> ssh -X oli@192.168.1.131
    shell> hp-setup
    shell> hp-testpage
    
  • Show all status information:
    shell> lpstat -t
  • Show printers:
    shell> lpstat -p
  • Show default destination:
    shell> lpstat -d
  • Set default destination:
    shell> lpoptions -d<printer>
  • List print jobs:
    shell> lpq -P<printer>
    shell> lpq -l -P<printer>
    
  • Delete a job:
    shell> lprm -P<pritner> <job_id>
  • Print a file:
    shell> lpr -P<printer> <file>
  • Drucken:
    shell> lp -d HP_PageWide_Pro_477dw_MFP *.pdf

ISO Image aus CD/DVD bauen

Geklaut bei Thomas Krenn (hat sehr oft sehr gute Artikel dort!).

shell> isoinfo -d -i /dev/cdrom | grep -i -E 'block size|volume size'
Logical block size is: 2048
Volume size is: 327867
shell> dd if=/dev/cdrom of=test.iso bs=<block size> count=<volume size>

Pile of Poo Emoji

Caution: My current Drupal 7 cannot Emojis!

SQL> SET NAMES utf8mb4;
SQL> ALTER TABLE test CONVERT TO CHARACTER SET utf8mb4;
SQL> INSERT INTO test VALUES (NULL, 0xF09F92A9, NULL);
SQL> -- 💩
SQL> -- U+1F4A9
SQL> -- 0xF09F92A9
SQL> SELECT id, HEX(data), data FROM test;
+----+-----------+------+
| id | hex(data) | data |
+----+-----------+------+
|  1 | F09F92A9  | 💩    |
+----+-----------+------+

echo before cat

shell> echo 'SET SESSION sql_log_bin = 0;' | gzip --to-stdout | \
       zcat - full_dump.sql.gz | mysql --user=root

or even nicer:

shell> {
  echo 'SET SESSION sql_log_bin = 0;'
  zcat full_dump.sql.gz
} | mysql --user=root

or alternatively:

shell> cat full_dump.sql | mysql -u root --init-command='SET SESSION sql_log_bin=0; \
          SET GLOBAL innodb_flush_log_at_trx_commit=0; SET GLOBAL super_read_only = off;'

File download from Xiaomi Mi Mix 2 on Linux

On my Linux I get some strange error messages when I want to download the photos from my mobile via USB. So I had to find another way.
I installed an ssh server and then I can easily download my photos and GPS tracks. Unfortunately this ssh server only allows the weak dss (DSA) keys. It seems like somebody wants to participate in my pleasure:

shell> scp -o HostKeyAlgorithms=+ssh-dss -P 12222 ssh@192.168.1.121:/storage/emulated/0/DCIM/Camera/* .
ssh@192.168.1.121's password: 
IMG_20180530_174731.jpg                       100% 5274KB   5.2MB/s   00:01    
IMG_20180603_110345_1.jpg                     100% 6294KB   3.1MB/s   00:02    

shell> scp -o HostKeyAlgorithms=+ssh-dss -P 12222 ssh@192.168.1.121:/storage/emulated/0/Android/data/net.osmand/files/tracks/rec/*.gpx .
ssh@192.168.1.121's password:                                                                                                   
2018-06-02_21-17_Sat.gpx                      100%   14KB  14.1KB/s   00:00     
2018-06-03_09-27_Sun.gpx                      100%  122KB 122.0KB/s   00:00

Pretty Print MariaDB output

shell> mysql --user=root --execute='SHOW GLOBAL VARIABLES LIKE "innodb%undo%"' | column -t
Variable_name             Value
innodb_max_undo_log_size  10485760
innodb_undo_directory     ./
innodb_undo_log_truncate  OFF
innodb_undo_logs          128
innodb_undo_tablespaces   0

List Listeners with lsof

List Listeners without using old netstat or ugly ss.

shell> lsof -itcp:3306 -P
COMMAND   PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
mysqld  22798 mysql   38u  IPv6 11528169      0t0  TCP *:3306 (LISTEN)

shell> lsof -itcp -P | grep mysqld | grep LIST
mysqld     3406    mysql   19u  IPv6    19530      0t0  TCP *:35622 (LISTEN)
mysqld     4384    mysql   35u  IPv6    19278      0t0  TCP *:3311 (LISTEN)
mysqld     4440    mysql   45u  IPv6    20634      0t0  TCP *:3309 (LISTEN)
mysqld     4440    mysql   63u  IPv6    19309      0t0  TCP *:33060 (LISTEN)
mysqld     4487    mysql   33u  IPv6    19319      0t0  TCP *:3324 (LISTEN)
mysqld     4532    mysql   24u  IPv6    20681      0t0  TCP *:3320 (LISTEN)
mysqld     4581    mysql   23u  IPv6    20714      0t0  TCP *:3332 (LISTEN)
mysqld     4904    mysql   35u  IPv6    20863      0t0  TCP *:3340 (LISTEN)
mysqld    16950    mysql   31u  IPv6  6647356      0t0  TCP *:3392 (LISTEN)
mysqld    20285    mysql   30u  IPv6  6671523      0t0  TCP *:3391 (LISTEN)
mysqld    22798    mysql   11u  IPv4 11528151      0t0  TCP *:4567 (LISTEN)
mysqld    22798    mysql   38u  IPv6 11528169      0t0  TCP *:3306 (LISTEN)
mysqld    25909    mysql   14u  IPv6  4128243      0t0  TCP *:3319 (LISTEN)
mysqld    26049    mysql   16u  IPv6  8302167      0t0  TCP *:3318 (LISTEN)

SystemD Notizen

SystemD paged per default nach less. Das ist ungewohnt und doof, weil es gegen allgemeines Linux-Verhalten verstösst. Abilfe schafft:

shell> systemctl --no-pager status
shell> alias systemctl='systemctl --no-pager'

Das selbe können wir auch verwenden, wenn wir bei MariaDB start/stop Problemen im SystemD Journal nachschauen müssen:

shell> journalctl --no-pager -xe --unit=mariadb

Eine weitere Herausforderung könnte die Anpassung des MariaDB Unit Files sein:

shell> export SYSTEMD_EDITOR=vi
shell> export EDITOR=vi
shell> export VISUAL=vi
# C-x C-e
# /etc/systemd/system/mariadb.service.d/override.conf
shell> systemctl edit mariadb
[Service]
LimitNOFILE=12288
# systemctl edit --full mariadb
shell> systemctl daemon-reload
shell> systemctl restart mariadb
shell> systemctl cat mariadb
shell> systemctl revert mariadb

Leider funktioniert auf meinem Kubuntu 16.04 das setzten der $EDITOR Variable nicht wie erwartet... Bei älteren SystemD Versionen ist die Funktion edit noch nicht implementiert.

Cutting and manipulating PDF

shell> kpdf file.pdf
shell> evince file.pdf
shell> gpdf file.pdf

# Remove pages from PDF
shell> pdftk A=file.pdf cat A1-9 A11-end output cut.pdf

# Rotate 180°
shell> pdftk file.pdf cat 1-endS output out.pdf

# Concatenate PDF documents:
shell> pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

# Convert PDF to PNG and JPG to PDF
shell> convert nda_3.pdf -resize 2380 nda_3.png
shell> convert -page A4 file.jpg file.pdf (with OpenOffice!)

# Putting 2 A4 input pages onto 1 A4 output page
# Ubuntu: package "bookletimposer"
shell> bookletimposer -o OUTPUT.pdf -p 2x1 INPUT.pdf

# Cut some pages from ad PDF document
shell> pdftk document.pdf cat 1-3 5 output part_p1-3_and5.pdf

See also: Shrink PDF size with this command line trick

Stopping Baloo

shell> balooctl status
Baloo Index could not be opened
shell> balooctl stop
shell> balooctl disable
Disabling the File Indexer

Distribution independent PHP configuration

shell> cd /etc/php/7.2/mods-available
shell> touch fromdual_cli.ini
shell> touch fromdual_apache2.ini

shell> phpenmod -s cli fromdual_cli
shell> phpenmod -s apache2 fromdual_apache2

shell> phpquery -v 7.2 -s cli -m fromdual_cli
shell> phpquery -v 7.2 -s apache2 -m fromdual_apache2

# This does NOT show the correct values vor apache2 SAPI!!!
shell> php -r 'phpinfo();' | grep --color timezone
Default timezone => Europe/Zurich
date.timezone => Europe/Zurich => Europe/Zurich

Check if a Linux reboot is required

  • Red Hat/CentOS: sudo yum install yum-utils; sudo needs-restarting -r; sudo needs-restarting -s
  • Debian/Ubuntu: cat /var/run/reboot-required

Vim Cheat Sheet

  • Word to upper/lower case: gUw / guw
  • Record: ESC q<letter>...ESC q
  • Play: @<letter> or @@ for last recording.

Create Swap File and set Swappiness

shell> swapon --show
shell> fallocate -l 16G /swapfile
shell> # dd if=/dev/zero of=/swapfile bs=1048576 count=16384
shell> chmod 600 /swapfile
shell> mkswap /swapfile
shell> swapon /swapfile
shell> swapon --show
shell> echo '/swapfile none swap sw 0 0' >>/etc/fstab
shell> free

shell> sysctl vm.swappiness=1
shell> echo 'vm.swappiness=1' >> /etc/sysctl.d/30-mysql.conf
shell> systemctl restart procps
shell> sysctl vm.swappiness

Teamviewer hacks

In Teamviewer sessions the following problemes regularly appear:

  • ESC does not work any more or launches Windows Start Menu. Hack: Ctrl+[ [1].
  • Copy/Paste does not work as expected (Windows style: right mouse click).
  • Mouse pointer gets black (you do not see any more where you click on a black background). Change PuTTY color: PuTTY Configuration -> Window -> Colours -> Use system colours.

Ersatz für ifconfig Statistiken

Der Linux Befehl ifconfig ist heute veraltet und sollte daher nicht mehr benutzt werden [ Lit ]. Auf einigen Distributionen wird er schon gar nicht mehr mit installiert und muss nachinstalliert werden. Es ist somit an der Zeit sich nach zeitgemässen Alternativen umzuschauen:

shell> ifconfig enp0s25
enp0s25: flags=4163  mtu 1500
        inet 192.168.1.135  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::d250:99ff:fe70:f88e  prefixlen 64  scopeid 0x20
        inet6 2a02:120b:2c01:ac30:d250:99ff:fe70:f88e  prefixlen 64  scopeid 0x0
        ether d0:50:99:70:f8:8e  txqueuelen 1000  (Ethernet)
        RX packets 31134351  bytes 40549421982 (40.5 GB)
        RX errors 0  dropped 23616  overruns 0  frame 0
        TX packets 12088228  bytes 11847729353 (11.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xefc00000-efc20000  

Ein möglicher Ersatz ist der Befehl netstat. Aber auch dieser Befehl ist inzwischen obsolet und sollte nicht mehr verwendet werden: This program is mostly obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr.

shell> netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens160    1500    19929      0    961 0           622      0      0      0 BMRU
lo       65536       92      0      0 0            92      0      0      0 LRU

Somit kommen wir zum empfohlenen Befehl:

shell> ip -s link show ens160
2: ens160:  mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:a4:5c:27 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    1466147    17798    0       861     0       883     
    TX: bytes  packets  errors  dropped carrier collsns 
    100282     383      0       0       0       0       

xrabackup 2.4 - wichtigste Befehle

# Place ssh keys on target
shell> export PATH=$PATH:/home/mysql/product/percona-xtrabackup-2.4.16-Linux-x86_64/bin
shell> xtrabackup --user=root --backup --compress --stream=xbstream | ssh -p 22 mysql@targethost "/home/mysql/product/xtrabackup/bin/xbstream -x -C /var/lib/mysql"

# Install qpress on target
shell> wget http://repo.percona.com/apt/pool/main/q/qpress/qpress_11-1.bionic_amd64.deb
shell> dpkg -i qpress_11-1.bionic_amd64.deb 

shell> xtrabackup --user=root --decompress --target-dir=/var/lib/mysql
shell> xtrabackup --user=root --prepare --target-dir=/var/lib/mysql

CentOS boot device full

shell> vi /etc/yum.conf
installonly_limit=3

shell> yum install yum-utils

shell> package-cleanup --oldkernels --count=2

Literature: StackExchange

Convert LibreOffice Spreadsheet to CSV file format

shell> file *.ods
expenses_2019-40.ods: OpenDocument Spreadsheet

shell> unoconv --show
shell> unoconv --doctype spreadsheet --format=csv expenses_2019-*.ods
func=xmlSecCheckVersionExt:file=xmlsec.c:line=188:obj=unknown:subj=unknown:error=19:invalid version:mode=abi compatible;expected minor version=2;real minor version=2;expected subminor version=25;real subminor version=26

shell> libreoffice --convert-to csv expenses_2019-*.ods

func=xmlSecCheckVersionExt:file=xmlsec.c:line=188:obj=unknown:subj=unknown:error=19:invalid version:mode=abi compatible;expected minor version=2;real minor version=2;expected subminor version=25;real subminor version=26
convert /tmp/expenses_2019-40.ods -> /tmp/expenses_2019-40.csv using filter : Text - txt - csv (StarCalc)

shell> cat *.csv | grep -v -e ',,,,,,' -e Employee -e Submitted -e Exchange > expenses_2019.csv 

Compare LibreOffice Presentations

shell> unoconv --doctype presentation --format=html galera*.odp
shell> diff galera_new.html galera_old.html

DHCP client handling

Stop running DHCP client without releasing the current lease:

shell> dhclient -x

Stop running DHCP client and release current lease.

shell> dhclient -r

Start DHCP client and configure interface using the DHCP protocol:

shell> dhclient enp4s0f1

Excise Baloo

I hope this helps:

shell> dpkg -l | grep baloo
ii  baloo-kf5                                       5.44.0-0ubuntu1                                          amd64        framework for searching and managing metadata
ii  libkf5baloo5                                    5.44.0-0ubuntu1                                          amd64        framework for searching and managing metadata core lib.
ii  libkf5balooengine5                              5.44.0-0ubuntu1                                          amd64        framework for searching and managing metadata plugins
ii  libkf5baloowidgets-bin                          4:17.12.3-0ubuntu1                                       amd64        Wigets for use with Baloo - binaries
ii  libkf5baloowidgets-data                         4:17.12.3-0ubuntu1                                       all          Wigets for use with Baloo - data files
ii  libkf5baloowidgets5:amd64                       4:17.12.3-0ubuntu1                                       amd64        Wigets for use with Baloo

shell> dpkg-query -L baloo-kf5 | grep bin
/usr/bin
/usr/bin/baloo_file
/usr/bin/baloo_file_extractor
/usr/bin/balooctl
/usr/bin/baloosearch
/usr/bin/balooshow

shell> dpkg -r --force-depends baloo-kf5

Cat from STDIN to file for fpmmm test

cat << _EOF >>/tmp/tst
FromDual.maas2.prod2 FromDual.MySQL.backup.schema_rc 1587719826 "42"
FromDual.maas2.prod2 FromDual.MySQL.backup.schema_duration 1587719826 "4242"
FromDual.maas2.prod2 FromDual.MySQL.backup.schema_size 1587719826 "424242"
_EOF

Remote Syslog Server

Remote Syslog Server