• [^] # Re: cron

    Posté par . En réponse au message Backup instinct. Évalué à 1.

    Salut, j'ai fait un petit script assez similaire pour ma Slack, et qui marche expérimentalement bien. Bon, par contre je ne l'ai pas automatisé avec cron, pour éviter de remplir mon disque dur...

    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/*