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*

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