Blog geekesque... ou presque

Aller au contenu | Aller au menu | Aller à la recherche

lundi 10 octobre 2016

Décrypteur de log rsync

Comme beaucoup de monde, j'utilise rsync de manière automatisée pour effectuer mes sauvegardes mais les logs sont difficilement interprétables d'un simple regard. J'ai donc décidé de me faire un petit analyseur qui me permettra d'avoir un rendu bien plus lisible. Et en couleur pour que ce soit encore plus visuel.

Le rendu sera, pour chaque ligne de log rsync:

  • l'action effectuée (upload, download, suppression, modification ou ignore)
  • le type de contenu (fichier, répertoire, lien symbolique)
  • le nom du contenu traité
  • les raisons de la modification

A la fin de l'analyse, un comptage des différentes actions sera affiché.

Lire la suite...

lundi 10 octobre 2011

Créer un patch et l'utiliser

Lorsqu'on développe une (ou des) application(s), il y a fréquemment des mises à jour à faire.

Très souvent, et moi le premier, la méthode la plus simple consiste à purement et simplement écraser ce que l'on a mis en place par les nouveaux fichiers, ce qui peut parfois être lourd (en quantité transférée) alors que les modifications sont mineures, et comporte des risques dûs au transfert FTP.

Heureusement, si votre application est gérée par SVN (je le conseille fortement) et si vous avez accès à l'hébergement de votre application par SSH (ce qui est malheureusement rarement le cas dans le cadre des applications web), diff et patch vont vous simplifier grandement le travail.

Lire la suite...

lundi 18 avril 2011

Réveiller un NAS

Si vous êtes l'heureux possesseur d'un NAS, vous appréciez très certainement son économie d'énergie et le fait qu'il se mette "à l'arrêt" lorsqu'il n'est pas sollicité depuis un certain temps.

Enfin, ceci est de la théorie parce qu'en pratique, si vous êtes plutôt Linux que MacOS ou Windows, il va falloir chercher un peu. J'ai moi-même cherché et j'ai trouvé sur un forum une contribution de themadmax.

Je me permet donc de traduire (et expliquer) la contribution.

Lire la suite...

lundi 3 janvier 2011

Screen et Ctrl+Z

J'utilise screen sur mon serveur pour avoir différents processus disponibles via SSH et surtout qu'ils ne s'arrêtent pas lorsque j'ai une coupure réseau, mais parfois je fais une mauvaise manipulation et appuie malencontreusement sur les touches Ctrl (control) et Z simultanément, ce qui a pour effet de mettre le terminal virtuel en tâche de fond.

La solution pour récupérer ces processus n'est pas propre à Screen mais à linux, c'est le moyen de récupérer tout processus, avec la commande de switch %, ou sur le bash fg (les deux fonctionnent, fg est plus facile à retenir à mon avis).

Exemple

# Programme mis en background
vous@local:~$ mutt &
[1] 6106
[1]+  Stopped       mutt
# Liste des processus arrêtés
vous@local:~$ jobs
[1]+  Stopped       mutt
# Récupération
vous@local:~$ fg 1

mercredi 29 décembre 2010

Authentification SSH par clé RSA

Lorsque l'on doit fréquemment accéder par SSH à une machine, il est fastidieux de chaque fois devoir taper son mot de passe. Il existe heureusement une méthode permettant d'avoir une connexion automatique et sécurisée, utilisable pour tout ce qui est habituellement fait à travers le SSH (connexion en console, sftp ou même scp), il s'agit des clés RSA.

Lire la suite...

dimanche 21 mars 2010

Script de sauvegarde automatique

Ce petit script permet de générer des archives horodatées de répertoires sur une machine unix. Il suffit que tar et gunzip soient installés et de configurer les 4 variables, puis d'ajouter une entrée pour ce script dans crontab.

Dans cet exemple, le but est de sauvegarder le répertoire /home/g33kzone/public_html/ (le site) et /var/lib/mysql/g33kzone/ (la base MySQL du site) dans le répertoire /home/backups/. Les fichiers de sauvegarde seront nommés archive_YYYYMMDD.tgz, c'est à dire archive_20100321.tgz pour l'archive du 21 mars 2010.

L'option "VERBOSE" permet d'avoir un affichage des fichiers archivés, elle est à utiliser pour le debug ou si vous voulez enregistrer l'activité d'archivage dans un fichier de log.

#!/bin/bash
 
###############################################
#  Configuration
###############################################
# Destination
BACKUP_DIR="/home/backups/"
# Directories to save
FILESYSTEMS="/home/g33kzone/public_html /var/lib/mysql/g33kzone/"
 
# basename of the archive file
BASE_NAME="archive_"
 
# Would you like to get detailed information from tar and gzip? 0=false,
# 1=true
VERBOSE=0
 
# DO NOT EDIT BELOW THIS LINE
#--------------------------------------------------------
###############################################
#     Application Variables - DO NOT EDIT #
###############################################
# Day of the week;
NOW=`date +"%Y%m%d"`
# Script name
SCRIPTNAME="Backup Script"
# Version
VERSION=0.01
######## Do some error checking #########
# Does backup dir exist?
if [ ! -d $BACKUP_DIR ]
  then
    echo "The specified backup directory $BACKUP_DIR does not exist. Operation canceled."
    exit 1
fi
######## Run Backup #########
LEVEL=0
if [ $VERBOSE -eq 1 ]
  then
    tar cvfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
  else
    tar cfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
fi
 
exit 0

Créer et modifier des compte unix avec un script

Il arrive parfois que l'on ait besoin d'un script pour créer ou modifier des utilisateurs unix de manière automatique.

Je me suis penché sur ce problème pour des raisons de sécurité: une interface web devait permettre de créer des comptes sur le serveur, mais en aucun cas je ne voulais que les pages, potentiellement accessibles à tout le monde, n'aient la possibilité d'exécuter des commandes systèmes, surtout pas en tant que root.

Lire la suite...

lundi 14 décembre 2009

Find pour supprimer les vieux fichiers

Nous avions évoqué sur ce billet l'utilisation de find pour faire des opérations sur une arborescence.

Une autre utilisation pratique des filtres de find est de pouvoir faire une recherche en se basant sur la date de modification des fichiers, ce qui permet par exemple de supprimer les fichiers périmés.

Par exemple, pour supprimer les fichiers de plus de 60 jours:

find /home/vous/logs -type f -ctime +60 -exec rm -rf {} \;

vendredi 26 juin 2009

Limitation de l'accès SSH

Parfois, lors d'une mise à jours d'un serveur par exemple, il peut être intéressans de limiter l'accès SSH au seul utilisateur root. Pour faire cela, c'est très simple: il suffit de mettre la raison dans un fichier /etc/nologin et les autres utilisateurs se verront refuser l'accès, avec comme raison le contenu du fichier.

Pour ré-autoriser l'accès, supprimez le fichier.

Bloquer les attaques "brute force" avec iptables

Iptables est l'interface en ligne de commande permettant de configurer Netfilter, qui est un module du noyau Linux qui offre la possibilité de contrôler, modifier et filtrer les paquets IP, et de suivre les connexions. Il fournit ainsi les fonctions de pare-feu, de partage de connexions internet et d'autorisation du trafic réseau.

Il est possible de configurer iptables pour automatiquement bloquer les adresses IP qui feraient trop de tentatives d'accès à votre serveur, un peu à la manière de fail2ban mais sans installer de module complémentaire.

Lire la suite...

jeudi 12 février 2009

find - Gestion récursive des droits

Il arrive souvent que l'on veuille modifier récursivement les droits des répertoires, mais pas ceux des fichiers. Dans ce cas là, la commande:

chmod -R 755 repertoire/

ne sera pas utilisable.

Heureusement, la commande find permet de filtrer par type de fichier (un répertoire n'est en fait qu'un fichier particulier).
Pour ce faire:

# passer les répertoires en 755
find ./ -type d -exec chmod 755 '{}' \;
# passer les fichiers en 644
find ./ -type f -exec chmod 644 '{}' \;

N'hésitez pas à lire le manuel de find, cet utilitaire est très puissant et je l'ai vu fonctionner pour juste lister un répertoire là où ls échouait.