• # Nouveau Script

    Posté par . En réponse au journal [Tuto/HowTo] Sauvegarder les fichiers joints de phpBB3 sur le cloud via rsync et webdav/dafvs2. Évalué à 0. Dernière modification le 19 janvier 2017 à 16:06.

    Suite à vos conseils et remarques j'ai recodé le script, que pensez-vous de cette version?

    Cette version va effectuer une copie vers un dossier latest ET un dossier nommé en fonction de la fréquence (hourly, daily, weekly, monthly, yearly) qui doit être passé en paramètre.
    Je me suis inspiré du mode de fonctionnement d'automysqlbackup. Je ne compresse pas les fichiers (sais pas si c'est utile, a vous de voir).

    Cordialement

    #!/bin/bash
    # Licence WTFPL - infos : https://www.0rion.netlib.re/forum4/viewtopic.php?f=71&t=496#p1081
    # synchronisation des fichiers joints d'un ou plusieurs forum phpBB sur le cloud
    # V 1.2 - lancer le software sans paramètre = backup dans dossierDistant/latest et dossierDistant/daily si non ajoutez un des paramètres cron suivant : hourly, daily, weekly, monthly, yearly (dans tout les cas le dossier latest sera update)
    montageLocal="/media/montageDistant" #le point de montage locale
    dossierDistant="/phpBB_fichiers_joints" #le dossier destination ne terminez pas par /
    dossierSource="/var/www/html/forum/files/" #le dossier source
    userPourCopie="root" #l'utilisateur a utiliser pour la copie
    if [ ! "$SUDO_USER" ]; then
    echo "this script need to be lunch by root"
    exit 0
    fi
     #VERIFICATION DU MONTAGE
    startTime=`date +%s`
    if [ -d "$montageLocal$dossierDistant" ];then
     endTime=`date +%s`
     runTime=$((endTime-startTime))
     if [ "$runTime" -lt "600" ];then
     #ACTION
     dossierTemps="/daily/"
     case "1ドル" in
     "hourly")
     dossierTemps="/hourly/"
     ;;
     "daily")
     dossierTemps="/daily/"
     ;;
     "weekly")
     dossierTemps="/weekly/"
     ;;
     "monthly")
     dossierTemps="/monthly/"
     ;;
     "yearly")
     dossierTemps="/yearly/"
     ;;
     esac
     # VERIF IF DESTINATION FOLDER EXIST IF NOT CREAT IT 
     if ! [ -d "$montageLocal$dossierDistant$dossierTemps" ];then
     mkdir -p "$montageLocal$dossierDistant$dossierTemps"
     fi
     if ! [ -d "$montageLocal$dossierDistantlatest" ];then
     mkdir -p "$montageLocal$dossierDistant$dossierDistantlatest"
     fi
     sudo chown www-data:$userPourCopie -R $dossierSource & sudo chmod 770 -R $dossierSource
     #sauvegarde des fichiers locaux vers cloud
    #echo "copie dans $montageLocal$dossierDistant$dossierTemps"
     su $userPourCopie -c "rsync $dossierSource$montageLocal$dossierDistant$dossierTemps -r --delete"
    #echo "copie dans $montageLocal$dossierDistant/latest"
     su $userPourCopie -c "rsync $dossierSource$montageLocal$dossierDistant/latest/ -r --delete"
     #on reverrouille l'accès au dossier
     sudo chown www-data:root -R $dossierSource & sudo chmod 770 -R $dossierSource
     else
     echo "$montageLocal => not responding (408) / delais d'attente depasse"
     fi
    else
    echo "$montageLocal$dossierDistant => not exist"
    fi

    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat