Archives du mot-clef dédié

panel-d4w

Projet Collaboratif :: Panel d’admin de serveur

Ayant depuis bientôt un an un serveur web, et depuis quelques semaines un deuxième, j’aime pouvoir gérer les actions fréquentes de manières simple. C’est pour cela que j’avais commencé de me créer un panel d’administration de serveur.

Aperçu du panel

Ce panel fonctionne actuelle à l’aide du micro Framework Limonade-PHP, et permet les actions suivantes :

Schéma communication API<->Panel

  • Voir l’état des services du serveur, ainsi que l’état de la mémoire (Ram, Swap, Disque dur, Charge).
  • Configurer le service DNS (ajout/edition/suprression d’un nom de domaine, ou sous-domaine)
  • Configurer les compte FTP
  • Voir les backups réalisés et délester le disque distant
  • Gérer les webcrons
  • Gérer les softs du serveur (Arrêt/Marche/Redémarrage)
  • Faire un ping/whois
  • Voir les process actif, et les ports actifs (ps faux et netstat)

Le panel n’est pas directement lié à la machine, mais il interroge un web service qui réalise les actions. Ainsi il serait possible de placer une api par machine a gérer, et juste un panel central.

En parallèle de cela, réalisé également un monitoring qui lui aussi interroge l’API afin de connaitre certaines informations du/des serveur(s) et les afficher publiquement.

Aperçu du monitoring

J’aimerai donc continuer ce projet afin qu’il devienne collaboratif, et puisse aboutir.
Si vous êtes intéressé, contactez moi.

dump_backup

Backups et dumps

Si comme moi, vous vous demandez comment réaliser des backups(sauvegarde d’un répertoire) ou des dumps(sauvegarde de la base de données) de manière très automatisée sur un serveur dédié.

Alors j’ai une solution à vous proposer à l’aide de scripts en Shell, que vous pourrez améliorer à votre sauce.

Voici l’exemple type pour les dumps

#!/bin/bash

#Variables utilisées
LOCAL_FOLDER="/home/backups/sql";

FTP_SERVER="ftp.distant.fr";
FTP_USER="user";
FTP_PASSWORD="pass";
FTP_FOLDER="/sql/";


#Génération du dump
DATE=$(date +%Y-%m-%d_%H-%M)
FILENAME="dump_${DATE}.sql.gz"
cd $LOCAL_FOLDER

mysqldump -u root --password="pass" --all-databases | gzip> ${FILENAME};


# On référence les fichiers à copier
FTP_FILES=sudo ls $LOCAL_FOLDER/*

# Résumé des données
cd $LOCAL_FOLDER

# Lancement de la copie
                                                                                            
ftp -vin $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD

cd $FTP_FOLDER

binary

mput *

bye

EOF



# Suppression du fichier temporaire
rm $FILENAME

# On envoi un mail de confirmation
mail -s 'Dumps - succès' 'info-gerance@ndd.com' -a 'FROM: mon-srv <root@ndd.com>' <<EOMAIL
Un nouveau dumps de la base de donnée à été créé avec succès.
Fichier ajouté : /sql/dump_${DATE}.sql.gz

EOMAIL

Et voici l’exemple pour réaliser un backup. Ici backup du répertoire des sites web.

#!/bin/bash

#Variables utilisées
LOCAL_FOLDER="/home/backups/www";

FTP_SERVER="ftp.distant.fr";
FTP_USER="user";
FTP_PASSWORD="pass";
FTP_FOLDER="/www/";


#Génération du backup
DATE=$(date +%Y-%m-%d_%H-%M)
FILENAME="www_backup_${DATE}.tar"
cd $LOCAL_FOLDER

tar -cf ${FILENAME} /home/www/;
gzip ${FILENAME};
mv ${FILENAME}.gz ${LOCAL_FOLDER};

# On référence les fichiers à copier
FTP_FILES=sudo ls $LOCAL_FOLDER/*

# Résumé des données
cd $LOCAL_FOLDER

# Lancement de la copie
                                                                                            
ftp -vin $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD

cd $FTP_FOLDER

binary

mput *

bye

EOF



# Suppression du fichier temporaire
rm $FILENAME

# On envoi un mail de confirmation
mail -s 'Backups - succès' 'info-gerance@ndd.com' -a 'FROM: mon-srv <root@ndd.com>' <<EOMAIL
Un nouveau backup du répertoire /home/www a été réalisé.
Fichier ajouté : /www/www_backup_${DATE}.sql.gz

EOMAIL

En espérant que ces deux petits scripts vous aiderons ;)