Skip to content
Snippets Groups Projects
Unverified Commit ea75f3e8 authored by David Beniamine's avatar David Beniamine
Browse files

Merge branch 'master' of gitlab.tetras-libre.fr:tetras-libre/Tetras-back into github

parents a93bf72e 26892c8e
Branches
No related tags found
No related merge requests found
...@@ -6,6 +6,9 @@ gitlab de Tetras Libre](https://gitlab.tetras-libre.fr/tetras-libre/Tetras-back) ...@@ -6,6 +6,9 @@ gitlab de Tetras Libre](https://gitlab.tetras-libre.fr/tetras-libre/Tetras-back)
Tetras-back est un logiciel libe, conçu pour sauvegarder des serveurs d'auto Tetras-back est un logiciel libe, conçu pour sauvegarder des serveurs d'auto
hebergements sur des disques dur externes. hebergements sur des disques dur externes.
Une [documentation complète](http://documentation.demo-tic.org/service_oel:systeme_de_sauvegardes) est trouvable sur le wiki de nos partenaires.
## Prérequis ## Prérequis
Tetras-Back a été testé sur debian Jessie et Testing, pour l'utiliser, vous Tetras-Back a été testé sur debian Jessie et Testing, pour l'utiliser, vous
...@@ -64,7 +67,7 @@ L'administrateur est notifié des sauvegardes et des echecs par email. ...@@ -64,7 +67,7 @@ L'administrateur est notifié des sauvegardes et des echecs par email.
## Interface Web ## Interface Web
L'interface web n'est pas encore implémentée Voir [la documentation complète](http://documentation.demo-tic.org/service_oel:systeme_de_sauvegardes)
## Scripts de sauvegarde fournis ## Scripts de sauvegarde fournis
...@@ -138,16 +141,16 @@ La device etant quelque chose du genre `/dev/sdb1` ...@@ -138,16 +141,16 @@ La device etant quelque chose du genre `/dev/sdb1`
### Todo ### Todo
+ [ ] Web interface + [x] Web interface
+ [X] Link to actions + [X] Link to actions
+ [X] Actions + [X] Actions
+ [X] Reverse + scroll for log + [X] Reverse + scroll for log
+ [x] htaccess / htpassword + [x] htaccess / htpassword
+ [ ] vhost apache2 + [x] vhost apache2
+ [X] CSS + [X] CSS
+ [ ] encodage + [x] encodage
+ [ ] Bouton telecharger + [ ] Bouton telecharger
+ [ ] Verify reboot systemd + [x] Verify reboot systemd
+ [x] Sendmail after backup or on fail + [x] Sendmail after backup or on fail
+ [x] Daemon + [x] Daemon
+ [x] Udev rules + [x] Udev rules
......
...@@ -66,9 +66,27 @@ sauvegarde_serveur(){ ...@@ -66,9 +66,27 @@ sauvegarde_serveur(){
# the backup should be in /var/opt/gitlab/backups thus in srv_directories # the backup should be in /var/opt/gitlab/backups thus in srv_directories
do_log "Creation de la sauvegarde gitlab" do_log "Creation de la sauvegarde gitlab"
/usr/bin/gitlab-rake $voptminus gitlab:backup:create /usr/bin/gitlab-rake $voptminus gitlab:backup:create
backup_path=`grep "'backup_path'" /etc/gitlab/gitlab.rb | sed 's/^.*= "\(.*\)"$/\1/'`
if [ -d "$backup_path" ]
then
/bin/ls -dt $backup_path/* | tail -n +11 | xargs rm -rf
else
do_log "Dossier de sauvegarde gitlab non trouvé, pensez à supprimer manuellement les anciennes sauvegardes"
fi
fi fi
do_log "Creation de l'archive configuration serveur" do_log "Creation de l'archive configuration serveur"
[ ! -z "$SERVICES" ] && systemctl stop $SERVICES
tar czf$vopt $dest/serveur.tgz $srv_directories tar czf$vopt $dest/serveur.tgz $srv_directories
ret=$?
[ ! -z "$SERVICES" ] && systemctl start $SERVICES
if [ $ret -eq 1 ]
then
# only warn on tar return code 1
do_log "Attention: des fichiers on été modifié durant la sauvegarde de l'archive serveur"
return 0
else
return $ret
fi
} }
sauvegarde_donnees(){ sauvegarde_donnees(){
...@@ -89,7 +107,7 @@ sauvegarde_seafile(){ ...@@ -89,7 +107,7 @@ sauvegarde_seafile(){
usage(){ usage(){
echo "Utilisation $0 [options] device" echo "Utilisation $0 [options] device"
echo "Device doit etre un disque non monte" echo "Device doit etre un disque non monté"
echo "Options" echo "Options"
echo " -h | --help Affiche cette aide et quitte" echo " -h | --help Affiche cette aide et quitte"
echo " -v | --verbose Active le mode verbeux" echo " -v | --verbose Active le mode verbeux"
...@@ -98,9 +116,14 @@ usage(){ ...@@ -98,9 +116,14 @@ usage(){
echo " -m | --mysql Sauvegarde mysql (implique --config)" echo " -m | --mysql Sauvegarde mysql (implique --config)"
echo " -c | --config Sauvegarde le serveur ($srv_directories)" echo " -c | --config Sauvegarde le serveur ($srv_directories)"
echo " -g | --gitlab Sauvegarde gitlab (implique --config)" echo " -g | --gitlab Sauvegarde gitlab (implique --config)"
echo " -u | --unifi Sauvegarde unifi (/var/lib/unifi, implique --config)" echo " -u | --unifi Sauvegarde unifi (/var/lib/unifi, implique
--config)"
echo " -s | --seafile host Sauvegarde seafile host (seafile fuse)" echo " -s | --seafile host Sauvegarde seafile host (seafile fuse)"
echo " -e | --encfs pass Use encfs protected directories with given password" echo " -e | --encfs pass Utilise des dossiers chiffrés encfs,
protégés par le mot de passe donné"
echo " -i | --interrupt list Interrompt les services donnés (liste
séparé par des virgules) durant la création
de l'archive tar."
} }
dest=/mnt/backup dest=/mnt/backup
...@@ -119,7 +142,7 @@ for arg in "$@"; do ...@@ -119,7 +142,7 @@ for arg in "$@"; do
shift shift
set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'` set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'`
done done
optspec=":hvdcgus:mpe:" optspec=":hvdcgus:mpe:i:"
while getopts "$optspec" optchar; do while getopts "$optspec" optchar; do
case "${optchar}" in case "${optchar}" in
h) h)
...@@ -160,6 +183,9 @@ while getopts "$optspec" optchar; do ...@@ -160,6 +183,9 @@ while getopts "$optspec" optchar; do
encfs=true encfs=true
ENCPASS="$OPTARG" ENCPASS="$OPTARG"
;; ;;
i)
SERVICES="${OPTARG//,/ }"
;;
*) *)
echo "Option inconnue -$optchar" echo "Option inconnue -$optchar"
usage usage
...@@ -212,10 +238,15 @@ do ...@@ -212,10 +238,15 @@ do
ret=$? ret=$?
while [ $ret -ne 0 ] while [ $ret -ne 0 ]
do do
if [ `df --output=avail . | sed 1d` -lt $((1024*1024)) ]
then
supprimer_anciennes_sauvegardes supprimer_anciennes_sauvegardes
test_and_fail $? "Plus d'espace sur le disque et pas d'ancienne sauvegarde a supprimer" test_and_fail $? "Plus d'espace sur le disque et pas d'ancienne sauvegarde a supprimer"
$action $action
ret=$? ret=$?
else
test_and_fail 1 "l'action '$action' a planté innopinement"
fi
done done
nom=${action/_/ } nom=${action/_/ }
do_log "$nom reussie" do_log "$nom reussie"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment