Overblog
Suivre ce blog Administration + Créer mon blog
28 février 2014 5 28 /02 /février /2014 11:50

Si vous êtes hébergeur web vous pouvez être confronté au problème des acces logs d'apache qui deviennent illisibles et trop lourds ( sauf à utiliser aiwstats! ).

Dans ce cas vous pouvez, grâce à la directive env, du custom log ne logger que les fichier php et html par exemple.

Cela  vous permettra de réduire le poids des fichiers de logs tout en gardant des logs lisibles en cas de problème.

 

 

Pour ce faire dans les virtualhost de vos sites vous devez rajouter les commandes suivantes :

 

        SetEnvIf Request_URI "\.html$" dolog
        SetEnvIf Request_URI "\.php$" dolog
        CustomLog /var/log/apache2/monsite-access.log combined env=dolog
       

Partager cet article
Repost0
12 juin 2013 3 12 /06 /juin /2013 14:25

pinguin

 

Sauvegarde automatisé en script des bases de données et sources de vos sites internet et application.

 

Rien de plus simple qu'un petit script de backup de différents répertoires dans un shell script sous linux.

 

Le principe un shell script lancé via la commande crontab -e va sauvegarder tous les répertoires contenu dans un micro fichier de conf (ici : /root/liste_rep.conf).

 

L'interêt d'un fichier de conf : quand vous ajoutez un répertoire vous ne modifiez pas le script.

 

Etape 1 : le fichier de conf des répertoires

Créez un nouveau fichier texte /root/liste_rep.conf et saisissez tous les répertoire que vous souhaitez sauvegardé ligne par ligne.

 

Etape 2 : copiez et adaptez le script ci-dessous /root/script_backup_source.sh

a savoir que les backups sont dans ce cas copiés en tar.gz dans /home/backup ils seront supprimés après transfert ( option enlever le rm)

paramètrez les accès ftp pour votre serveur et n'oubliez pas de donner les droits d'execution à votre script ( chmod ug+x script_backup_source)

#!/bin/bash

 

LC_TIME=fr_FR

today=`date +%d`

day=`date +%u`

month=`date +%b`

 

CHEMIN_BASE='/home'

CHEMIN_BACKUP='/home/backup'

FTP_HOTE='monadresseftp.com'

FTP_LOGIN='backup'

FTP_PASS='backup'

 

 

for i in `cat /root/liste_rep.conf`;

do

tar -czf /home/backup/$i$day.tar.gz /home/$i

echo " Sauvegarde de $i effectue ";

ftp -in <<EOF

open ${FTP_HOTE}

user ${FTP_LOGIN} ${FTP_PASS}

bin

verbose

prompt

lcd ${CHEMIN_BACKUP}

cd local_rep

mput $i$day.tar.gz

bye

EOF

 

rm /home/backup/$i$day.tar.gz

 

done

 

 

Etape 3: le crontab

éditez le fichier crontab et ajoutez la ligne

 

9 2 * * * /root/script_backup_source.sh

Pour plus d'info sur la commande crontab : cliquez-ici

Partager cet article
Repost0
20 juin 2012 3 20 /06 /juin /2012 11:46

Pour un projet de développement il est courant  d'avoir deux plate-formes, une de Test et une de Prod. Il est alors souvent galère de gérer les mises à jour de chacune des bases de données. Pour ce faire évidement un fichier de maj SQL dans le gestionnaire de version s'impose !

Cependant il est souvent pratique en cas d'erreur d'avoir rapidement le dif structurel d'une base de donnée à une autre.

 

Voici donc un petit script à mettre dans un sh exécutable ( chmod u+x nom_du_script). bd1 est le nom de la base1, bd2 le nom de la deuxième. Ce script peut se contenter de la structure de la base mais vous pouvez aussirajouter le contenu de certaines tables contenant par exemple des metat données ( paramètrage de l'application) Ceci peut vous permettre de comparer le paramètrage de vos applications

 

 

mysqldump -ulogin1 -ppass1 bd1 --no_data > bd1_fc.sql
mysqldump -ulogin1 -ppass1 --extended_insert=false bd1 --tables ici_mettez_les_tables_contenant_des_meta_donnees >> bd1_fc.sql


mysqldump -ulogin2 -ppass2 jdm --no_data > bd2_fc.sql
mysqldump -ulogin2 -ppass2 jdm --extended_inser=false --tables
ici_mettez_les_tables_contenant_des_meta_donnees >> bd2_fc.sql


diff bd1_fc.sql bd2_fc.sql | grep -v AUTO_INCREMENT | grep -v database > diff_bd1_bd2.sql
rm bd1_fc.sql
rm bd2_fc.sql
cat diff_bd1_bd2.sql

 

 

pour le diff nous enlevons les auto increment qui n'ont pas à ressortir en tant que différence de  structure.

en savoir plus sur la commande diff : cliquez-ici

Partager cet article
Repost0
23 février 2012 4 23 /02 /février /2012 17:24

Un petit script pour sauvegarder tous vos sites et application sur un serveur ftp 'monsiteftp.com'.

 Si vous avez plusieurs serveurs (web ) vous aimeriez sans doute centraliser les sauvegardes ! certes il existe des logiciels libres qui font cela très bien mais le temps de maîtriser le bazard c'est pas forcément simple ...

du coup voici un petit script permettant  de faire des sauvegardes automatiques.

 

Le premier fichier '/root/repertoire_a_sauvegarder' contient la liste des répertoires à sauvegarder comme cela si on ajoute un site on ne modifie absolument pas le script de sauvegarde mais uniquement le fichier text en ajoutant le répertoire.

le fichier 'repertoire_a_sauvegarder'

contient par exemple

/home/mon_site1

/home/mon_site2

/home/mon_site3

 

 

et le script de sauvegarde :

 

 

#!/bin/bash

LC_TIME=fr_FR
today=`date +%d`
day=`date +%u`
month=`date +%b`

CHEMIN_BASE='/home'
CHEMIN_BACKUP='/home/backup'
FTP_HOTE='monsiteftp.com'
FTP_LOGIN='backup'
FTP_PASS='backuppassword'

#day=`date | cut -d' ' -f2 `


for i in `cat /root/repertoire_a_sauvegarder`;
do
       tar -czf /home/backup/$i$day.tar.gz /home/$i

       echo " Sauvegarde de $i effectue ";
ftp -in <<EOF
        open ${FTP_HOTE}
        user ${FTP_LOGIN} ${FTP_PASS}
        bin
        verbose
        prompt
        lcd ${CHEMIN_BACKUP}
        mput $i$day.tar.gz
        bye
EOF

done

 

le tout est évidement à ajouter dans le crond et le tour est joué !!

Partager cet article
Repost0