Shell

Dump Mysql

mysqldump -u <user> -p<passwd> --all-databases | gzip > backup-$(date -I).sql.gz
mysqldump --add-drop-table -h=<serveur> -u -p -B <DB1> -C -v

Vérification de l’intégrité de fichier après copie

#!/bin/bash
# Script pour verifier l'integrite des fichiers avec sha256sum
# date: 24/09/2013
# auteur: DJE
SRC=$1
DST=$2
DATE=`date +%d.%m.%Y-%Hh%M`
 
# creer un fichier hash pour les fichiers sources
cd $SRC; find . -type f -exec sha256sum {} \; &gt; ~/sha256sum-hashsrc
# verifie le hash sur les fichier de destination
cd $DST; sha256sum -c ~/sha256sum-hashsrc  | grep -i CHEC 2&gt;&amp;1 &gt;&gt; ~/result-$DATE.log

Vérifier l’espace disque et supprimer les fichiers si Trigger déclenché

#!/bin/bash
dsk=/mnt/download
date=`date +%d.%m.%Y-%Hh%M`
log=/var/log/check_space.$date.log
dir=/etc/cron.daily
d=15 #Nombre de jours max de rétention
# PARAM MAIL
mailto="admin1,admin2"
mailfrom="server@domain.tld"
#smtpserver="smtp.domain.tld"
smtpserver="x.x.x.x"
message="Attention la taille du disque est inférieur à 20 Go, les fichiers datant de plus de $d jours ont été effacés, une action manuelle est requise"
subject="Espace disque insuffisant sur $dsk"
 
df -H $dsk &gt; df_stat
# recuperation de l'espace disponible
dsksp=`df -h /mnt/download | less |sed '1,2 d' | cut -d'G' -f 3 | awk "{ sub(/^[ \t]+/,\"\"); print }"`
 
echo "Verification de l'espace disque" 1&gt;$log
if [ "$dsksp" -lt "20" ]
then
        echo "Taille dispo actuellement: $dsksp Go \n" 1&gt;&gt;$log
        printf "%b" " L'espace disque est inférieur à 20 Go \n" 1&gt;&gt;$log
        for ((i=59; i&gt;$d;i--))
        do
        echo "Suppression des fichiers datant de plus de $i jours \n" 1&gt;&gt;$log
        echo del-incoming-file $i 1&gt;&gt;$log
        . $dir/del-incoming-file $i
        echo "valeur de dsksp: $dsksp \n" 1&gt;&gt;$log
        sleep 20
        if [ "$dsksp" -gt "20" ]; then break; fi
        done
        sendemail -f $mailfrom -t $mailto -s $smtpserver -u $subject -m $message
else
        echo "Taille dispo actuellement: $dsksp Go \n" 1&gt;&gt;$log
fi
 
script del-incoming-file:
#!/bin/sh
date=`date +%d.%m.%Y-%Hh%m`
log=delete_incoming_error.$date.log
if [ $1 ]
then
        day=$1
else
        day=60
fi
find /mnt/download/incoming -name "*" -mtime +$day -exec rm -rf "{}" 2&gt;/var/log/$log \;

Copier un grand nombre de fichier sur un serveur distant avec SSH

tar czf - data_to_copy | ssh user@address 'tar xzf -'

pour copier dans un répertoire différent du home de l’utilisateur

tar czf - data_to_copy | ssh user@address 'cd /repertoire &amp;&amp; tar xzf -'

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>