apache über reverse-proxy: Client IP anzeigen

Hat man vor einem apache Web-Server einen reverse-proxy (z.B. nginx) am laufen, sieht man statt der „echten“ IP des Besuchers, lediglich die IP des reverse-proxies.
Damit man im apache die tatsächliche IP des Bescuhers sieht kann man mittels mod_remoteip den Header vom reverse-proxy auslesen.
Continue reading apache über reverse-proxy: Client IP anzeigen

mysql: Alle Konfigurationsoptionen anzeigen

Leider gibt es keine Option in mysql um sich alle konfigurierten Optionen anzeigen zu lassen.

Mittels folgendem Code kann man dies aber von mysql Abfragen:

{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL `mysql -V|sed 's,^.*\(V.*\)\, for.*,\1,'` - By: `logname`@`hostname -f` on `date +%c`\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n\1,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n\1,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log

Quelle: Mysql Export current configuration to a file

mismatch_cnt is not 0 on /dev/md*

Bei einem Linux Soft-RAID (md-raid) kann es vorkommen, dass man mit einem Mail informiert wird, dass „cnt nicht 0 ist“:

Subject: Cron <root @server> /usr/sbin/raid-check
WARNING: mismatch_cnt is not 0 on /dev/md127
</root>

Dies könnte ein Hinweis auf defekte Sektoren auf einer Disk sein.
Continue reading mismatch_cnt is not 0 on /dev/md*

cURL host header senden

Mittels dem tool curl kann man einfach Webseiten von der Kommandozeile aufrufen.
Möchte man jedoch eine bestimmten NameVirtualHost über eine IP addresse Aufrufen, muss man den Host header mitsenden:

curl --header 'Host: www.example.com' 'http://93.184.216.34/'

Beispiel zum Aufrufen einer Unterseite:

curl --header 'Host: www.example.com' 'http://93.184.216.34/seite/index.html'

Quelle:Using cURL and the host header to bypass a load balancer

Ansible: mysql Abfrage

Möchte man mittels Ansible z.B. in eine Datenbank einen Wert hinzufügen, jedoch nur, wenn dieser noch nicht besteht, kann man das mittels einer Vorherigen SQL-Abfrage machen:

- name:             "Get setting: myName"
  command:           mysql --defaults-file=/root/.my.cnf myDatabase -Ns -e "select value from settings where name='myName';"
  register:          setting_myName
  changed_when:      setting_myName.stdout != "12345"

- debug:             msg="{{ setting_myName.stdout }}"
 

- name:             "Insert setting into database"
  mysql_db:
    login_host:     "myDBhost"
    login_user:     "myDBuser"
    login_password: "myDBPass"
    name:           "myDatabase"
    state:          "import"
    target:         "/tmp/set_setting_myName.sql"
  when:             setting_myName.stdout != "12345"

Zuerst holt man sich den Wert aus der Datenbanktabelle und ändert diesen nur, wenn er noch nicht da steht (when: setting_myName.stdout != „12345“).

Quellen