Catégorie : Bash

[Linux] tar over ssh

Dans certains cas spécifiques, notamment lors de migration de données entre différents réseaux, le transfert de dossiers distants/locaux par SSH m’a été fort utile. Cela permet notamment de palier à un manque de place de chaque côté (source ou destination).

Exemple pour archiver en local un dossier se trouvant sur un serveur distant :

bob@server1:~$ ssh bob@server2 tar czf - /srv/data/ > /srv/data_server2.tar.gz

Exemple pour archiver un dossier local sur un serveur distant :

bob@server1:~$ tar zcvf - /srv/data | ssh bob@server2 "cat > /srv/data_server1.tar.gz"

 

[Bash] Script pour dumper des bases MySQL

#!/bin/bash
#
# MySQL_DB_Dump
#
# Auteur      : Johan
# Contact     : johan@slashroot.fr
# Date        : 13/07/2011
# Version     : 1.0
# Description : Dump une base donnee MySQL
# Commentaire : Le fichier de dump peut etre envoye par email
# Requis      : Besoin de mutt si l'option -m est selectionnee
#

#
# Usage
#
usage(){
    echo ""
    echo "Utilisation : mysql_db_dump -s server_name -u mysql_user -p file/password -b database1,database2... -d save_folder [-m adresse@domain.com]"
    echo ""
    echo "OPTIONS :"
    echo "   -h     Affiche l'aide"
    echo "   -u     Utilisateur MySQL a utilise pour le dump"
    echo "   -s     Serveur contenant la base de données"
    echo "   -p     Type d'authentification a utiliser (prompt du password ou fichier ~/.my.cnf)"
    echo "   -b     Specifie la ou les bases a dumper"
    echo "   -d     Dossier a utiliser pour stocker les dumps"
    echo "   -m     Envoi le fichier de dump par email"
    echo ""
    echo "EXEMPLE :"
    echo "   - Dump des bases db1 et db2 avec une authentification par fichier et l'envoi des fichiers par email"
    echo "          mysql_db_dump -s localhost -u bob  -p file -b db1,db2 -m dba@slashroot.fr"
    echo ""
}
 (suite…)

[Bash] Récupérer la taille des bases MySQL

#!/bin/bash
#
# MySQL_DB_Sizes
#
# Auteur      : Johan 
# Contact     : johan@slashroot.fr
# Date        : 13/07/2011
# Version     : 1.0
# Description : Recupère la taille de chaque base de données et envoi les résultats par email
# Commentaire : L'utilisateur doit avoir acces en lecture a toutes les bases dont on souhaite connaitre la taille

# Reminder for a MySQL read only user
# CREATE USER 'ro-user'@'localhost' IDENTIFIED BY 'MySQL_Ro_User_Password';
# GRANT SELECT ON database1.* TO 'ro-user'@'localhost';
# GRANT SELECT ON database2.* TO 'ro-user'@'localhost';
# ...

#
# Usage
#
usage(){
    echo ""
    echo "Utilisation : mysql_db_sizes -s server_name -u mysql_user -p file/password [-b database1,database2...] [-m adresse@domain.com]"
    echo ""
    echo "OPTIONS :"
    echo "   -h     Affiche l'aide"
    echo "   -u     Utilisateur MySQL a utilise pour la requete SQL"
    echo "   -s     Serveur contenant la base de données"
    echo "   -p     Type d'authentification a utiliser (prompt du password ou fichier ~/.my.cnf)"
    echo "   -b     Specifie les bases a afficher (par defaut toutes celles accessibles"
    echo "   -m     Envoi le resultat par email au lieu de l'afficher dans le terminal"
    echo ""
    echo "EXEMPLES :"
    echo "   1 - Affichage de la taille de toutes les bases avec une authentification par mot de passe"
    echo "          mysql_db_sizes -s localhost-u bob  -p password"
    echo "   2 - Envoi de la taille des bases db1 et db2 par email avec une authentification par fichier"
    echo "          mysql_db_sizes -s localhost -u bob -p file -b db1,db2 -m bob@admin.fr"
    echo ""
}
 (suite…)

[Bash] Replication d’une base Kerberos

Ce script permet de répliquer une base de royaume Kerberos d’un master vers un ou plusieurs slave en s’appuyant sur le service kpropd.

#!/bin/bash  
#
# Kerberos_Replication
#
# Auteur      : Johan
# Contact     : johan@slashroot.fr
# Date        : 04/07/16
# Version     : 1.0
# Description : Ce script permet de repliquer une base de royaume kerberos vers un ou plusieurs serveurs slaves
# Commentaire : A mettre en crontab


print_usage ()
{
    echo ""
    echo "Utilisation : kerberos_replication ROYAUME SLAVE1 SLAVE2 ..."
    echo ""
}

 (suite…)

[Cron] Dernier jour de chaque mois

Voici la configuration à renseigner dans la crontab pour exécuter un script à 23h59 le dernier jour du mois :

59 23 28-31 * * [ `/bin/date +\%d` -gt `/bin/date +\%d -d "1 day"` ] && /scripts/Stats_Du_Mois.sh

[Bash] Alias

Pour configurer ses propres alias ca se passe dans le fichier .bashrc de l’utilisateur.

Alias que j’utilise couramment :

alias maj='apt-get update && apt-get upgrade'
alias mem='ps aux --sort:rss'
alias ..='cd ..'
alias ...='cd ../../'
alias ....='cd ../../../'
alias clean='sed '\''/^#/d;/^$/d'\'''
alias l.='ls -d .* --color=auto'
alias ll='ls -lh --color'
alias lla='ls -lah --color'
alias taille='ls -lahSr --color'
alias vi='vim'

A noter qu’il faut se reconnecter pour pouvoir profiter des alias fraîchement créés.

[Bash] Rechercher des fichiers contenant une chaîne de caractère

Syntaxe :

find /chemin -name "FiltrageNomFic" -exec grep -Hn "chaine" {} \;

Exemple : tous les fichiers de log dans le dossier /var/log contenant la chaîne « Ven 18 »

find /var/log -name "*.log" -exec grep -Hn "Ven 18" {} \;

-H permet d’afficher le nom du fichier où se trouve la chaîne

-n permet d’afficher le numéro de ligne où se trouve la chaîne

Cette méthode permet également de rechercher des chaines de caractères dans des fichiers.