Salut a celui qui me lira
J'ai fait 2 petit script de backup:
1:
#!/bin/sh
DATE=`date +%Y%m%d`;
red="\e[1;31m";
green="\e[1;32m";
yellow="\e[1;33m";
blue="\e[1;34m";
cyan="\e[1;36m";
nc="\e[0m";
echo -e "\t$yellow Démmarage de la sauvegarde système";
for file in /home/jul /etc/fstab /root /etc/mtab /etc/inittab /etc/sudoers /etc/X11/xorg.conf /etc/rc.d/ /etc/swaret.conf /etc/ntp.conf /var/spool/cron/crontabs/ ; do tar -rf save_slack${DATE}.tar $file ; done
#gzip -9 save_slack$.tar
echo -ne "$nc Moving created save package to mnt/fichier/os/save";
mv "save_slack${DATE}.tar" /mnt/fichier/os/save
if [ $? -eq 0 ]; then
echo -e "\t$green Fait, sauvgarder dans /mnt/fichier/os/save $nc";
else
echo -e "\t$red Erreur $nc";
fi
Xdialog --msgbox "Bakup_sys effectuer" --title "backu_sys"
2:
---
#!/bin/sh
red="\e[1;31m";
green="\e[1;32m";
yellow="\e[1;33m";
blue="\e[1;34m";
cyan="\e[1;36m";
echo -e "\t$green Démmarage de la sauvegarde";
cp -rvu /mnt/fichier/audio /mnt/save
cp -rvu /mnt/fichier/bd_images /mnt/save
cp -rvu /mnt/fichier/os /mnt/save
cp -rvu /mnt/fichier/table /mnt/save
Xdialog --msgbox "Mise a jour fichier effectuer" --title "backu_fichier"
Comme vous pouvez le voir rien de bien évoluer.
J'ai modifier le cron :
10 19 * * * /usr/bin/aterm -name backup-systeme -g 67x16+517+72 -bg black -fg white +sb -e /home/jul/backup
00 19 * * * /usr/bin/aterm -name backup-fichier -g 67x16+545+136 -bg black -fg white +sb -e /home/jul/backup2
Le problème c'est qu'il exécute deux fois. Je peut enlever le aterm mais je ne sais si il ya eu des erreur.Sinon Comment je peut faire une sortie vers un log?
Ya t-il un moyen pour que je supprime l'ancien tar du premier script?
Merci d'avance
# Envoi vers les logs
Posté par Ellendhel (site web personnel) . Évalué à 1.
Ah juste des détails :
Xdialog --msgbox "Mise à jour fichier effectuée" --title "backu_fichier"
echo -e "\t$green Démarrage de la sauvegarde";
# cron
Posté par didit . Évalué à 1.
Ce que j'utilise personellement , c'est juste un script qui se lance et lorsque tout se passe bien, il n'affiche aucune sortie. Lorsque quelque chose se passe mal (plus d'espace libre sur le périphérique de sauvegarde par exemple) il y a un message d'erreur et cron l'envoie par mail. Il suffit donc de surveiller son mail local pour être au courant.
Dans ton cas, si tu veux toujours une confirmation, il suffit d'écrire ce que tu veux sur la sortie standard.
Pour l'exécution en double, ne serait-ce pas un problème lié à une mauvaise interaction entre anacron et cron?
[^] # Re: cron
Posté par transpi . Évalué à 2.
Je ne n'utilise pas anacron.
[^] # Re: cron
Posté par JaguarWan . Évalué à 1.
En gros, il fait un gros tarball pour chaque répertoire dans le tableau $BACKUP_DATA et les range tous dans un dossier YYYY-MM-DD à l'intérieur de $BACKUP_PATH.
Si ça peut t'être utile, voilà le code:
root@Jaguar:~/Admin# cat backup-o-matic
#! /bin/sh
BACKUP_PATH="/root/backup"
BACKUP_DATE=`date --iso-8601=date`
# The directory/files to compress and save
BACKUP_NUM=4
BACKUP_DATA[0]="/etc"
BACKUP_DATA[1]="/home"
BACKUP_DATA[2]="/root"
BACKUP_DATA[3]="/boot"
if [ ! -d $BACKUP_PATH/$BACKUP_DATE ]; then
# Create the directory
mkdir -p $BACKUP_PATH/$BACKUP_DATE
# Archive the data
for ((i=0;i<$BACKUP_NUM;i++)); do
echo "Compressing ${BACKUP_DATA[i]}..."
nice -n 10 tar czfP $BACKUP_PATH/$BACKUP_DATE/`echo "backup${BACKUP_DATA[i]}" | sed s/"\/"/"-"/g | cut -f1 -d\ `.tgz --exclude-from ./exclude-list ${BACKUP_DATA[i]}
done
fi
Ce script ne doit marcher qu'avec bash (boucle for spécifique entre autres) et n'est pas élégant (voire carrément brut de décoffrage), mais il fait son boulot. Le fichier exclude-list est une simple liste de fichiers, comme ça:
root@Jaguar:~/Admin# cat exclude-list
/home/jaguarwan/.wine/drive_c/*
/home/jaguarwan/Download/*
/home/jaguarwan/Playground/*
/home/jaguarwan/.pearpc/*
/home/jaguarwan/.aMule/Incoming/*
/home/jaguarwan/.aMule/Temp/*
/home/invite/*
/root/backup/*
[^] # Re: cron
Posté par didit . Évalué à 1.
Les sauvegardes de moins d'une semaine sont copiées avec rsync sur une machine distante (il faut configurer ssh pour qu'il ne réclame pas de mot de passe).
Périodiquement, il faut enlever les anciennes sauvegardes locales complètes à la main. Si j'oublie de le faire, je reçois un mail qui contient un message d'erreur du type "no space left on device". Dans mon cas, les sauvegardes locales sont sur une partition séparées qui est montée uniquement au moment de la sauvegarde.
#!/bin/bash
# Ce script DOIT être édité pour refléter votre configuration.
# Vous devez modifier les variables ci-dessous ainsi que les "exclude" dans la
# commande tar pour enlever tout ce qui ne mérite pas une sauvegarde (cache de
# mozilla, ...)
# Répertoire local où sont stockées les sauvegardes
dir="/backup"
# Répertoire distant = remotemachine:remotedir/
remotemachine="remote"
remotedir="backup/"
# Jour de la semaine où une sauvegarde complète est effectuée.
# 0=dimanche, 1=lundi, ...
day="0"
# Répertoire personnel à sauvegarder. Il est obtenu à partir de $HOME.
# D'autres répertoires peuvent être ajoutés à la fin de la commande tar. La
# boite au lettre entrante est sauvegardée en utilisant $LOGNAME
home=`echo $HOME"/" | sed 's#^/##'`
mount /backup
if [ `date +%w` = $day ]; then
archivename=$dir"/old/`date +%Y%m%d`.tgz"
param=""
remotename="lastweek.tgz"
else
archivename=$dir"/`date +%A`.tgz"
# lastbackup: sauvegarde la plus récente
lastbackup=`ls -1 --sort=time -r $dir/*.tgz | tail -1`
param=" --newer-mtime $lastbackup"
remotename="`date +%A`.tgz"
fi
tar --create --atime-preserve\
--directory='/'\
$param\
--exclude=$home'.mozilla*Cache*'\
--exclude=$home'.amaya*'\
--exclude=$home'.w3m*'\
--exclude=$home'.kde*'\
--exclude=$home'.enlightenment*'\
--exclude=$home'.gnome*'\
--exclude=$home'.gimp*'\
--exclude=$home'.Abisuite*'\
$home "var/mail/"$LOGNAME \
| gzip --rsyncable > $archivename
if [ `date +%w` = $day ]; then
ln -sf $archivename $dir"/lastweek.tgz"
fi
ping -c 5 -q $remotemachine &> /dev/null && \
rsync --times --copy-links -e ssh $dir/*.tgz $remotemachine:$remotedir
umount /backup
[^] # Re: cron
Posté par didit . Évalué à 1.
2> $dir"/log"| gzip --rsyncable > $archivename
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.