Ajouter les nouveaux fichiers dans un dépôt subversion

Pour versionner les fichiers non versionner, placer vous a la racine de votre " dépôt " puis procéder de la manière suivante :

svn status | grep -v "^.[ \t]*\..*" | grep "^?" | awk '{print $2}' | xargs svn add

Il vous reste a commiter les nouveaux fichiers.

Tips  svn 

Centralisation des logs Nginx avec Rsyslog

Configuration de rsyslog coté nginx Créer le fichier de configuration /etc/rsyslog.d/nginx.conf pour y placer $ModLoad imfile $InputFileName /var/log/nginx/access.log $InputFileTag nginx_access_log: $InputFileStateFile nginx_access_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor $InputFileName /var/log/nginx/error.log $InputFileTag nginx_error_log: $InputFileStateFile nginx_error_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor # lit le fichier de log toutes les deux secondes $InputFilePollingInterval 2 #envoie les logs en tcp a 192.1.2.3 port 514 if $syslogtag == 'nginx_access_log:' then @@(z9)192.1.2.3:514 if $syslogtag == 'nginx_error_log:' then @@(z9)192. [Lire]

Postfix – Spécifier une IP différente en fonction du domaine de l'émetteur

sender_dependent_default_transport_maps va permettre, en fonction de l’émetteur de l’email sur votre serveur de spécifier une IP précise. echo "/@domain-src-1\.ltd$/ domain_src_1:" > /usr/local/etc/postfix/outgoingips.regexp echo "/@domain-src-2\.ltd$/ domain_src_2:" >> /usr/local/etc/postfix/outgoingips.regexp echo "/@domain-src-3\.ltd$/ domain_src_3:" >> /usr/local/etc/postfix/outgoingips.regexp Création des routes, ajouter dans master.cf les " entrées " suivante domain_src_1 unix - - n - - smtp -o smtp_bind_address=192.168.0.1 -o smtp_helo_name=domain-src-1.ltd -o syslog_name=postfix-domain_src_1 domain_src_2 unix - - n - - smtp -o smtp_bind_address=192.168.0.2 -o smtp_helo_name=domain-src-2.ltd -o syslog_name=postfix-domain_src_2 domain_src_3 unix - - n - - smtp -o smtp_bind_address=192. [Lire]

Détail sur l'utilisation de la mémoire vive par MySQL

L’utilisation maximum de la mémoire vive par MySQL se calcule de la manière suivante d’après mysqltuner.pl :

key_buffer_size + max_tmp_table_size + ( read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size ) * max_connections

max_tmp_table_size : si tmp_table_size > max_heap_table_size -> max_heap_table_size sinon tmp_table_size

Configurer Varnish pour Drupal

Dans cet article, uniquement les spécificité de configuration pour Drupal seront indiqué Dans la vcl_recv, on nettoie les cookies si vous ne l’avez pas déjà fait : set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|has_js)=[^;]*", ""); set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); if (req.http.Cookie ~ "^\s*$") { unset req.http.Cookie; } On spécifie ce qu’il faut cacher, ou pas : if (req.url ~ "^/sites/") { unset req.http.Cookie; } if (req.url ~ "^/misc/") { unset req. [Lire]

Import/Export MySQL "rapide"

export.sh Les données sont exporté avec mysqldump et le paramètre -T -T : Creates tab separated textfile for each table to given path. (creates .sql and .txt files). NOTE: This only works if mysqldump is run on the same machine as the mysqld daemon. Ce script doit donc etre exécuté directement sur le serveur MySQL Export #!/bin/bash DST='/var/backup/mysql/dump for bdd in `mysql --skip-column-names -B -e "show databases;" | egrep -v "^information_schema$|^mysql$"`; do echo -ne $bdd mysql --skip-column-names -B -e "SHOW CREATE DATABASE $bdd;" | cut -d" " -f2- > $DST/create-$bdd. [Lire]

Lister toutes les tables/base

Cette requête va lister toutes les bases/tables du serveur MySQL en ignorant les " bases " performance_schema et information_schema mais aussi en filtrant les tables dont le nom commence par tmp_ et la table test.

SELECT table_schema, table_name
 FROM information_schema.tables
 WHERE table_schema NOT IN ('performance_schema','information_schema')
  AND table_name NOT REGEXP '^tmp_|^test$
 ORDER BY table_schema;

Vous pouvez filtrer sur tout ce qui est dans la table " tables "

desc tables;
+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | YES  |     | NULL    |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(80)         | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+

Lister les tables en InnoDB/MyISAM

Voici la requête SQL :

SELECT table_schema, table_name, engine
FROM information_schema.tables
WHERE table_schema NOT IN ('performance_schema','information_schema')
AND engine != 'NULL
ORDER BY table_schema;

Afficher les "scores" d'oom-killer

Les scores oom-killer sont stocké dans /proc

Ci-dessous une boucle pour afficher le top 20 des process qui se feront détruire en premier dans le cas ou le serveur a alloué 100% de la ram et swap.

#!/bin/sh
for procdir in $(find /proc -maxdepth 1 -regex '/proc/[0-9]+'); do
  printf "%10d %6d %s\n" \
    "$(cat $procdir/oom_score)" \
    "$(basename $procdir)" \
    "$(cat $procdir/cmdline | tr '\0' ' ' | head -c 100)"
done 2>/dev/null | sort -nr | head -n 20