Bonjour à tous,
Système :
lftp version : 4.7.5
J’héberge des serveurs TS sur mon dédié. J’avais automatisé une sauvegarde externalisée hebdomadaire afin de conserver en cas de crash du dédié.
Principe simple utilisation d’un FTP externe connecter en LFTP en mirroring. Jusque-là rien de bien compliqué ne me dirait vous.
Le souci est que le FTP externalisé n’autorisa pas de fichier de plus de 1Go, donc mon script bouclé sur upload du même fichier à m’overload le réseau.
J’ai donc tenté intégrer une exclusion par une recherche de fichier de plus de 950Mo via “find”.
Mais lorsque j’utilise la sortie de “find” il me génère un lien avec ./ devant qui n’est pas correctement interprété par LFTP
La version lftp fournie en deb s’arrête en 4.6.0 qui ne prend pas les exclusions par liste il faudra donc compilé sa version 4.7.5.
Script de sauvegarde :
#!/bin/bash
# Mirroring du ts3 pour externalisé une sauvegarde
# Variable
login=********
pass=********
addressftp=*********
pathlocal=/home/toto/ts3/
pathdistant=/titi/
logs=/home/toto/save-ts.log
jour=$(date "+%d-%m-%Y %HH%M")
echo "" >> $logs
echo "" >> $logs
echo "------------------------------------------------------------" >> $logs
echo "Demarrage de la sauvegarde : "$jour >> $logs
echo "------------------------------------------------------------" >> $logs
cd $pathlocal ; find -size +950M -type f > /home/toto/exclude.txt
lftp ftp://$login:$pass"@"$addressftp -e "mirror --exclude-glob-from=exclude.txt --verbose=3 -e -R $pathlocal $distant ; quit" >> $logs
jour=$(date "+%d-%m-%Y %HH%M")
echo "------------------------------------------------------------" >> $logs
echo "Heure de fin de la sauvegarde : "$jour >> $logs
echo "------------------------------------------------------------" >> $logs
mon fichier exclude :
./files/virtualserver_7/channel_580/Autre/test/test.rar
Pour que cela soit interprété par le lftp il doit être comme ceci
files/virtualserver_7/channel_580/Autre/test/test.rar
Je suis assez novice dans le scripting donc si vous avez plus simple je suis preneur.
L’idée serait que dans ma commande find -size +950M -type f
il me sorte sans le ./ ou s’il existe un moyen d’effectuer une roulette dernière pour retirer les 2 prier caractère de chaque ligne.
Sincèrement je ne sais pas trop quelle serait la solution.
Merci de votre aide
Cordialement