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 localedossierDistant="/phpBB_fichiers_joints"#le dossier destination ne terminez pas par /dossierSource="/var/www/html/forum/files/"#le dossier sourceuserPourCopie="root"#l'utilisateur a utiliser pour la copieif[ ! "$SUDO_USER"];thenecho"this script need to be lunch by root"exit0fi#VERIFICATION DU MONTAGEstartTime=`date +%s`if[ -d "$montageLocal$dossierDistant"];thenendTime=`date +%s`runTime=$((endTime-startTime))if["$runTime" -lt "600"];then#ACTIONdossierTemps="/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"fiif ! [ -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 $dossierSourceelseecho"$montageLocal => not responding (408) / delais d'attente depasse"fielseecho"$montageLocal$dossierDistant => not exist"fi
# Nouveau Script
Posté par EauFroide . 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
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat