[Synology] Sauvegarde site web par FTP avec lftp


MAJ : 01/12/2012

Objectifs

  • Sauvegarder mes sites web installés chez différents hébergeurs
  • Envoyer un mail de contrôle pour m’indiquer que la sauvegarde c’est correctement déroulée ou pas

Pré requis

  • Accès telnet en root (même mot de passe que le compte Admin)
  • installation de ipkg : je vous laisse avec le petit tuto de Fredo très complet
  • installation de lftp
ipkg install lftp
  • installation de screen : permettra de lancer notre script dans une console et de récupérer la sortie du script shell.
ipkg install screen
  • création répertoire de sauvegarde

Script de sauvegarde

modifier la partie configuration du script shell en fonction de votre environnement personnel. (télécharger le script)

#!/bin/sh
######################################################################################
##### Sauvegarde fichier d'un site web distant par FTP avec lftp
######################################################################################
## Remarque sur lftp
## + Le -e de mirror efface les fichiers qui n'existent plus.
######################################################################################
## Paramètre en entrée
##     1 : -e ou rien
##		   pour effacer tous les fichiers du local qui n'existent plus sur le FTP
######################################################################################

# configuration fichier de log
ficLog=/volume1/documents/logSvgSite.txt

# configuration : ftp / user / pass
servFTP=ftp.com
userFTP=login
passFTP=password
# configuration
repFTP=/www/
repLocal=/volume1/Sauvegardes_Cobestran/
#repIgnore=""
repIgnore="-x wp-content/cache -x /wp-content/supercache"

######################################################################################
# debut shell
echo "+-- Deb Sauvegarde $(date) ---" >> ${ficLog}

# commande de copie miroir ftp vers local
/opt/bin/lftp ftp://${userFTP}:${passFTP}@${servFTP} -e "set file:charset utf8 ; set ftp:charset utf8;  mirror ${1} ${repIgnore} ${repFTP} ${repLocal} ; quit"  >> ${ficLog} 2>&1

# résultat de la commande - 0 : ok
res=$?
echo "Résultat : "${res} >> ${ficLog}
echo "--- Fin Sauvegarde $(date) ---" >> ${ficLog}

if [ ${res} -eq 0 ]
then
echo "Svg OK" | /usr/local/bin/my_sendmail -s "<sujet du mail>" -f "<addresse email expéditeur>" -m <serveur smtp> -M "txt" <addresse destinataire> ${ficLog}
else
echo "Svg avec Erreur" | /usr/local/bin/my_sendmail -s "<sujet du mail>" -f "<addresse email expéditeur>" -m <serveur smtp> -M "txt" <addresse destinataire> ${ficLog}
fi
# fin shell
echo "--- Fin ---" >> ${ficLog}
######################################################################################
exit $res

Script d’envoi de mail par smtp

Créer le fichier my_sendmail

vi /usr/local/bin/my_sendmail
#!/usr/bin/perl -w
#
#
#       my_sendmail [-m <mail server>]
#                       [-s <sujet>]
#                       [-f <from>]
#                       [-r <reply-to>]
#                       [-c <cc-dests>]
#                       [-t <type mime du contenu>]
#                       [-M <type mime des documents joints>]
#                       [-b <bcc-dests>] <dests> [<attached files>...]
#
#-

use Net::SMTP;
use MIME::Base64;
use Getopt::Std;
use File::Basename;
use Sys::Hostname;

my $progname;
( $progname = $0 ) =~ s/^.*\///;

%ctypes = (

           'tar' => 'application/x-tar',
           'man' => 'application/zip',
           'au|snd' => 'audio/basic',
           'mpg|mp3' => 'audio/mpeg',
           'mp4' => 'audio/mp4',
           'aif|aiff|aifc' => 'audio/x-aiff',
           'wav' => 'audio/x-wav',
           'gif' => 'image/gif',
           'jpg|jpeg|jpe' => 'image/jpeg',
           'png' => 'image/png',
           'tiff|tif' => 'image/tiff',
           'pbm' => 'image/x-portable-bitmap',
           'pgm' => 'image/x-portable-graymap',
           'ppm' => 'image/x-portable-pixmap',
           'zip' => 'application/x-zip',
           'gz|gzip' => 'application/x-gzip',
           'css' => 'text/css',
           'csv' => 'text/csv',
           'htm|html' => 'text/html',
           'txt|g|h|c|cc|hh|m|f90' => 'text/plain',
           'rtx' => 'text/richtext',
           'rtf' => 'text/rtf',
           'tsv' => 'text/tab-separated-value',
           'xml' => 'text/xml',
           'h264' => 'video/h264',
           'dv' => 'video/dv',
           'mpeg|mpg|mpe' => 'video/mpeg',
           'qt|mov' => 'video/quicktime',
           'avi' => 'video/msvideo',
           'pdf' => 'application/pdf',
);

#+
#       parsing des options
#-
getopts('s:f:m:c:b:vM:r:t:', \%opts) or &usage;
my $to = shift or &usage;
my $verbose = $opts{v};
my $subject = $opts{s};
my @files = ();
while ($_= shift) {
  push @files,$_;
}

my $from;

$from = $opts{f} || (($ENV{USER} || $ENV{LOGNAME} || "unknown") . "\@" . hostname);

my $smtphost = $opts{m} || "localhost"; # SMTP mail host

#+
#       séparateur multipart quasi aléatoire
#-
my $boundary = '<------------ ';
my @chrs = ('0' .. '9', 'A' .. 'Z', 'a' .. 'z');
foreach (0..16) { $boundary .= $chrs[rand (scalar @chrs)]; }
$boundary .= ' ------------>';

#+
#       initialisation dialogue smtp
#-
my $smtp = Net::SMTP->new($smtphost, Timeout => 30) or die "Net::SMTP::new: $!\n";
$smtp->mail($from);
foreach (split /,/,$to) {
  $smtp->to($_);
}
if (my $cclist = $opts{c}) {
  foreach (split /,/,$cclist) {
    $smtp->cc($_);
  }
}
if (my $cclist = $opts{b}) {
  foreach (split /,/,$cclist) {
    $smtp->bcc($_);
  }
}

#+
#       en-tetes message
#-
$smtp->data();

$smtp->datasend("From: $from\n");
$smtp->datasend("To: $to\n");
if ($opts{c}) {
  $smtp->datasend("Cc: $opts{c}\n");
}

if (exists($opts{r})) {
  $smtp->datasend("Reply-To: $opts{r}\n");
}

$smtp->datasend("Subject: $subject\n") if $subject;
$smtp->datasend("MIME-Version: 1.0\n");
$smtp->datasend("X-Mailer: $progname (MY)\n");
$smtp->datasend("Content-Type: multipart/mixed; boundary=\"$boundary\"\n");
$smtp->datasend("\n");
$smtp->datasend("This is a multipart MIME-coded message\n");
$smtp->datasend("\n");
$smtp->datasend("\n");

#+
#       partie textuelle du message (a partir de stdin)
#-
my $ctype = $opts{t} ? $opts{t} : "text/plain";
$smtp->datasend("--$boundary\n");
$smtp->datasend("Content-Type: $ctype; charset=us-ascii\n");
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("\n");
while (<>) {
  $smtp->datasend($_);
}

#+
#       quelques lignes blanches pour aérer
#-
$smtp->datasend("\n\n\n");

#+
#       boucle sur les fichiers à attacher
#-
foreach $file (@files) {
  my $name = basename($file);
  my $extension = (fileparse($file,qr/\.[^.]*?/))[2];
  my $ct;

  #     on tente de déterminer le content type
  if ($opts{M}) {
    $ct=$opts{M};
  } else {
    $ct = "Application/octet-stream";
    foreach $type_extensions (keys %ctypes) {
      if ($extension =~ /^\.($type_extensions)$/i) {
        $ct = $ctypes{$type_extensions};
        last;
      }
    }
  }
  $smtp->datasend("--$boundary\n");
  $smtp->datasend("Content-Type: $ct; name=\"$name\"\n");
  $smtp->datasend("Content-Disposition: attachment; filename=\"$name\"\n");
  $smtp->datasend("Content-Transfer-Encoding: base64\n");
  $smtp->datasend("\n");
  open FILE,$file or die "fichier $file introuvable\n";
  while (read(FILE, $buf, 60*57)) {
    $smtp->datasend( encode_base64($buf));
  }
  print STDERR "$progname: attachement fichier $name type $ct\n" if $verbose;
}

$smtp->datasend("--$boundary--\n");
$smtp->dataend();

sub usage {
  print STDERR <<'EOD';
my_sendmail: envoi de mails avec documents attachés.

Usage:
        my_sendmail     [-m <mail server>]  
                        [-s <sujet>]
                        [-f <from>]
                        [-c <cc-dests>]
                        [-M <mime type des fichiers jointsés>]
                        [-t <mime type du corps du messages>]
                        [-v]
                        [-b <bcc-dests>] <dests> [<attached files>...] < <fichier contenant le texte du message>
EOD
  exit 1;
}

Programmer votre sauvegarde chaque jour

modifier le fichier /etc/crontab  et ajouter le lancement du script (voir article synology-planification-de-scripts)

/volume1/@optware/bin/screen -dmS "ses_svgSite" /volume1/@scripts/svgSite.sh -e

Résultats

une belle sauvegarde supervisée par mail.

/volume1/documents/logSvgSite.txt
+-- Deb Sauvegarde Fri Nov 12 17:59:44 CET 2010 ---
Total: 1119 directories, 9752 files, 0 symlinks
Removed: 2 directories, 8 files, 0 symlinks
Résultat : 0
--- Fin Sauvegarde Fri Nov 12 18:11:18 CET 2010 ---

, ,

  1. #1 by Yannick on 02/01/2011 - 18 h 08 min

    Salut,

    Ca fait deux jours que j’ai un NAS ds211j et que je cherche a faire un backup mais via un script qui serait hébergé sur mon NAS et la je tombe sur ton article avec lftp ! Ton article va bien me servir, je vais l’adapter pour faire du rsync

    Gros merci !

  2. #2 by Maël on 02/01/2011 - 21 h 48 min

    je te conseil juste d’utiliser autre chose pour les envois de mails, le module intégré ne fonctionne pas forcement a chaque fois… (voir dans ipkg).
    @+

  3. #3 by Yannick on 10/01/2011 - 2 h 55 min

    Merci grâce à toi j’ai pu faire mon propre script !

    http://king76.au-quebec.info/2011/01/faites-des-backups-avec-synology

    PS : C’est quoi l’extension WordPress qui te permet de mettre du code coloré de même dans tes billets ? 😉

  4. #4 by Maël on 10/01/2011 - 11 h 09 min

    hello,

    plugin : Auto SyntaxHighlighter
    http://www.akii.org/auto-syntaxhighlighter.html

  5. #5 by Yannick on 10/01/2011 - 12 h 52 min

    Merci pour ton plugin, ca marche super bien comme d’habitude avec WordPress !

  6. #6 by Thomas on 31/01/2011 - 16 h 54 min

    Bonjour,

    Ce script a l’air super !

    Est-il possible avec ce script de faire des sauvegardes de sont site web et en conserver 5 par exemple ?

    En fait, je souhaiterai sauvegarder mon site web tous les mois dans une dossier contenant la date de la sauvegarde. Après 5 mois, par exemple, il supprimerai automatiquement les fichiers plus anciens… J’aurais donc 5 copies de mon site web avec donc la possibilité de restaurer un version antérieure.

    Est-ce possible ?

    Merci d’avance…

  7. #7 by Maël on 31/01/2011 - 21 h 46 min

    Bonsoir,
    le plus simple en premier, c’est de mettre le mois dans le nom de répertoire de sauvegarde

    date +%b ==> Jan
    date +%m ==> 01

    tu trouveras des informations complémentaires sur bash-linux.com

    Après, pour la suppression tous les 5 mois, je te laisse inventer un petit script mais en recherchant sur le net, tu devrais trouver.

    Le mieux c’est de faire du « mirror » sur 12 mois tournant.

  8. #8 by djex on 11/09/2011 - 0 h 22 min

    Moi le script il me redonne ceci alors j’ai essayer de saisir de bypasser les variable et la ça marche comment ça ce fait …

    Name or service not known.com
    mirror: Not connected

  9. #9 by Maël on 14/09/2011 - 20 h 29 min

    Djex, en gros, tu as lancer la commande directement en remplaçant les variables par tes valeurs et ça fonctionne ?
    si c’est le cas, tu as peux être une petite erreur de syntaxe ou ton shell a été transféré peut être en mode DOS avec des caractères spéciaux qui gène la bonne exécution.
    Quelle version de DSN as tu ?

  10. #10 by Hervé on 06/12/2011 - 23 h 59 min

    Bonjour;

    Je suis débutant, et bricoleur …..
    J’ai réussi :
    à installer les packages
    à modifier le script
    à lancer le sript …

    mais la sauvegarde ne ce fait pas dans le répertoire que j’ai créé via « dossier partagé », puis renseigné dans repLocal=/volume1/sauvegarde.
    La sauvegarde s’effectue dans un répertoire ftp:home

    Ou est mon erreur
    D’avance merci

    Hervé

  11. #11 by Maël on 07/12/2011 - 11 h 00 min

    Avez-vous correctement renseigné la connexion ftp ? (serveur / user / passe)
    Avez-vous respecté la casse des répertoires ? (minuscule / majuscule)

  12. #12 by Hervé on 07/12/2011 - 13 h 04 min

    Bonjour;

    Oui au 2 questions.

    Les paramètres de connexion sont bon car le répertoire ftp:home contient bien la copie du site internet.

    J’ai respecté la casse pour le nom des répertoires

    Le répertoire ftp:home se cré dans le répertoire ou est situé le script de sauvegarde.

    Hervé

  13. #13 by Maël on 07/12/2011 - 14 h 33 min

    Est ce que la variable Repertoire Local se termine avec un slash « / »

    la seule explication, c’est que la commande qui permet de copier vos données sur votre NAS n’est pas bonne.

    /opt/bin/lftp ftp://${userFTP}:${passFTP}@${servFTP} -e « mirror ${1} ${repIgnore} ${repFTP} ${repLocal} ; quit » >> ${ficLog}

    si je remplace les valeurs des variables (lance cette commande depuis la console pour vérifier si elle fonctionne)

    /opt/bin/lftp ftp://userFTP:passFTP@serveurftp.com -e « mirror -e /www/ /volume1/Sauvegardes_Cobestran/ ; quit » >> /volume1/documents/logSvgSite.txt

  14. #14 by Hervé on 08/12/2011 - 18 h 19 min

    Bonjour;

    voici un morceau de mon script :
    repLocal=/volume1/sauve1/
    repIgnore= » »
    # repIgnore= »-x wp-content/cache -x /wp-content/supercache »

    ######################################################################################
    # debut shell
    echo « +– Deb Sauvegarde $(date) — » >> ${ficLog}

    # commande de copie miroir ftp vers local
    /opt/bin/lftp ftp://${userFTP}:${passFTP}@${servFTP} -e « mirror ${1} ${repIgnore} ${repFTP} ${repLocal} ; quit » >> ${ficLog}

    Rien ni fait, la sauvegarde se fait toujours dans un repertoire ftp:home situé au même niveau que le fichier batch.

    L’endroit ou l’on met le fichier sauve.sh a t’il une importance ?
    Lors de la création du dossier partagé dans la panneau de configuration du DiskStation, un réglage quels réglage de droits doit il y avoir au minima ??

    Encore merci pour vos réponses précédentes très rapide.

    Cordialement
    Hervé

  15. #15 by Maël on 08/12/2011 - 20 h 24 min

    ajouter cette ligne et vérifier les valeurs de la commande dans le fichier de LOG.

    echo « commande : lftp ftp://${userFTP}:${passFTP}@${servFTP} -e mirror ${1} ${repIgnore} ${repFTP} ${repLocal} ; quit » >> ${ficLog}

  16. #16 by Hervé on 09/12/2011 - 1 h 00 min

    Bonjour ;

    ca y est ca beigne !!!!!

    Dans le repLocal je ne met pas de / à la fin

    Cool

    Je fais créer un repertoire pour chaque site, et mettre leur sauvegarde a la suite dans le script.

    Je trouve un script qui me sauvegarde les bases de données dans des repertoires associés, et enfin j’ai un système « securit » pour avoir à jour l’ensemble.

    Encore merci, pour votre aide

    Hervé

  17. #17 by acd on 10/12/2011 - 22 h 59 min

    Bonjour,
    J’ai un souci avec un crontab sur une Synology DS211J.
    Je veux exécute un script php qui se trouve dans /volume1/homes/admin.
    Dans le crontab j’ai * * * * * root /volume1/homes/admin/xmls.php
    Ce script ne s’exécute pas.
    Auriez-vous une idée car je cherche depuis plusieurs jours.

    merci

  18. #18 by Maël on 11/12/2011 - 12 h 13 min

    est ce que ce n’est pas un problème d’exécution du script php ? car c’est un peu spécifique.
    regarde sur ce lien http://fr.php.net/manual/fr/features.commandline.php (utilisation)

  19. #19 by Kazaam on 04/02/2012 - 12 h 51 min

    Hello
    merci pour ce script, comme dit plus haut, pas de / a la fin du rep local

    Sinon a quoi sert le « ${1} »

    A+

  20. #20 by Maël on 04/02/2012 - 14 h 20 min

    salut, c’est un paramètre que tu peux indiquer au lancement du script

    mettre -e pour : effacer tous les fichiers du local qui n’existent plus sur le FTP

  21. #21 by tonymans72 on 03/05/2012 - 22 h 21 min

    Bonjour,
    (je n’ai pas encore mis essayer votre script)

    J’utilise une seedbox, et je sais que si je commence à télécharger mon fichier avant qu’il ne soit complétement sur le serveur, le fichier ne sera pas lisible (vidéos) ce qui veut dire que si je met en place le script, le problème sera le même.
    Il faut absolument que le fichier soit entièrement sur le serveur pour commencer le mirroir.
    Qu’en pensez-vous ?

    Merci d’avance

  22. #22 by Maël on 03/05/2012 - 22 h 38 min

    Bonsoir, je pense que oui. il fera un miroir des données au moment de l’exécution du script. Donc si votre fichier n’est pas complet, il copiera uniquement la partie existante.
    Vous pouvez prévoir un répertoire temporaire qui ne sera pas sauvegardé tant que le fichier n’est pas complet sur le serveur distant.

  23. #23 by tonymans72 on 03/05/2012 - 22 h 41 min

    Tout d’abord, merci de cette réponse éclair.

    Bon, autant le faire manuellement donc.

    Merci
    (en tout cas, ton tuto est vraiment très clair et simple, félicitation)

  24. #24 by Maël on 03/05/2012 - 22 h 51 min

    Je ne connais pas exactement ton besoin mais tu peux jouer sur la fréquence d’exécution afin de sauvegarder toutes les heures par exemple. (attention : ne pas superposer deux exécutions de synchronisation. rajouter un test dans le script pour sortir du batch si un traitement est encore en cours)
    Si ton fichier n’était pas entier, l’heure suivante, tu auras plus de chance !

  25. #25 by gothax on 26/07/2012 - 23 h 15 min

    bonsoir et merci pour votre tuto!
    Tout marche bien sauf l’envoie du mail et la notification!
    J’ai essayé avec un smtp dont les mail tests fonctionnaient et maintenant mon syno est un mail server (qui marche). et pourtant pas de message à la fin de l’opération de sauvegarde.
    Pouvez vous m’aider ? merci d’avance.

  26. #26 by Maël on 27/07/2012 - 17 h 32 min

    Bonjour, désolé, je ne vais pas pouvoir vous aidez sur le sujet, depuis que j’ai fais les mises à jour du NAS, les mails ne fonctionnent plus. A voir si tu ne trouves pas sur le net la solution.

  27. #27 by Hervé on 30/07/2012 - 7 h 45 min

    Bonjour;

    La mise à jour à créé un nouveau fichier mails.
    Sur un forum j’ai lu que synomail ( lien symbolique de synobox ) a été supprimé.
    J’ai recrée ce lien, cela annule les messages d’erreurs lorsque je lance un script en mode console, mais aucun message n’est inscrit dans la console administrateur du NAS.

  28. #28 by Hervé on 29/08/2012 - 18 h 45 min

    Bonjour;

    Pour recevoir par mail le log des sauvegarde :

    installation, configuration de nail, voir cette page
    http://poulpo.fr.mu/2010/11/21/envoi-de-mail-en-ligne-de-commande-nail-et-gmail-sur-le-nas-synology/

    ensuite dans chaque script je modifie les messages envoyés au fichier logSvrSite.txt pour qu’il ne contiennent plis de lettre accentué comme é à è …..

    puis je rajoute à la fin de mon script :
    cat /volume1/scripts/logSvgSite.txt | /opt/bin/nail -s « Sauvegarde NAS » trucmuche@bidule.fr
    rm /volume1/scripts/logSvgSite.txt

    Modifiez le chemin pointant a votre fichier logSvgSite.txt

    enfin dans chacun de mes scripts je commente ces lignes :
    ##if [ ${res} -eq 0 ]
    ##then /usr/syno/bin/synomail SVGFbdvpi
    ##else /usr/syno/bin/synomail SVGEbdvpi
    ##fi

    Le matin , je retrouve dans ma boite le log des sauvegardes de la nuit.

    Hervé

  29. #29 by Maël on 13/09/2012 - 23 h 21 min

    merci pour ton complément. Il faut que je trouve un peu de temps pour modifier mes scripts de sauvegardes qui ne sont plus très à jour.

  30. #30 by Hervé on 19/09/2012 - 8 h 04 min

    Bonjour;
    De plus j’utilise le service webmail du synology.

    Hervé

  31. #31 by Maël on 27/11/2012 - 22 h 29 min

    Bonsoir, petite MAJ, pour les fichiers qui ne passaient pas à cause des accents, j’ai rajouté : set file:charset utf8 ;
    devant la comande mirror.
    je modifie mon script.

  32. #32 by Maël on 27/11/2012 - 23 h 47 min

    pour la partie Mail qui n’existe plus sur la DSM 4
    voici un lien pour remplacer facilement l’envoi de mail.

    http://www.nas-forum.com/forum/topic/26992-synomail-et-dsm-4/

  33. #33 by Phil on 15/01/2013 - 10 h 37 min

    Bonjour,

    Et merci pour ce super tuto une petite question est-il possible de faire du SFTP en effet j’ai tente de modifié le script en ajoutant SFTP et en spécifiant le port 22 mais cela ne passe pas.

    Merci

  34. #34 by Phil on 15/01/2013 - 11 h 05 min

    Je reponds a ma question OUI !!!

    dans le code mettre sftp et le port 22
    /opt/bin/lftp sftp://${userFTP}:${passFTP}@${servFTP}:22 -e « set file:charset utf8 ; set ftp:charset utf8; mirror ${1} ${repIgnore} ${repFTP} ${repLocal} ; quit » >> ${ficLog} 2>&1

    Attention chez moi OVH il faut pour le dossier FTP preciser le chemin long type: /homez.xxx/monlogin/www/…

  35. #35 by Maël on 15/01/2013 - 11 h 48 min

    Bonjour, ah bah oui on peut.
    pour plus d’info, le site http://lftp.yar.ru
    LFTP supporte les protocoles suivants : FTP, HTTP, FISH, SFTP, HTTPS et FTPS

  36. #36 by ded on 01/02/2013 - 16 h 50 min

    Bonjour,

    Merci pour votre script il tourne super !
    Par contre avez vous une idée pour sauvegarder aussi les bases mysql ?

    A bientot.

  37. #37 by Maël on 01/02/2013 - 17 h 06 min

    Hello,
    pour les bases de données, plusieurs choix :
    – Soit vous faites des dump stockés sur votre site web qui seront à leurs tour sauvegardés par LFTP. (si WordPress ou autres CMS, il existe des plugins)
    – Soit vous avez un serveur dédié avec vos BDD et il faut un script qui permet de faire des dump de chaque BDD du serveur avant de faire un lftp de sauvegarde. (J’ai ça en rayon mais faut que je fasse un article !!)

  38. #38 by Flotys on 09/05/2013 - 18 h 07 min

    Bonjour,

    Tres bon tuto merci mais chez moi cela ne fonctionne pas, des que je lance le .sh par putty il me dit permission denied, une idée ?

    Par contre le 2eme point de votre dernier message m interresse si vous le mettez en place 😉

  39. #39 by Maël on 09/05/2013 - 20 h 44 min

    Bonjour Flotys. merci.

    Est ce que tu as donné les droits d’execution au .sh ? (chmod 777 fichier.sh pour donner le max de droits)

    pour le fichier de svg BDD, je note. Je suis en plein développement sur le projet Leed, du coup j’ai zappé ce script.

  40. #40 by Flotys on 11/05/2013 - 15 h 48 min

    Oui par putty j ai fait un « chmod x » ou faut il taper « chmod 777 » ?

    Merci pour ton aide 😉

  41. #41 by Maël on 11/05/2013 - 19 h 07 min

    chmod +x fichier
    permet de rajouter uniquement les droits d’exécution.

    pi : j’ai fais l’article sur la svg des BDD d’un serveur MySQL

  42. #42 by Flotys on 11/05/2013 - 20 h 11 min

    Oui c est bien ce que je fais en root mais il me dit toujours pareil :/

    J’ai une autre question, je souhaite recuperer non pas le www d’un site mais le repertoire home car mes sites sont tous au meme endroit, je peux prendre le meme script ou faut il l adapter ?
    Car Je vois que dans ta procedure de sauvegarde de mysql tu depose les fichiers dans /usr/lib/backupdb/ il faut dire au script de sauvegarde l endroit des dump de base ?

    Merci pour le tutos des bases 😉

  43. #43 by Maël on 11/05/2013 - 20 h 21 min

    oui le répertoire est défini en dur dans le script, tu peux le changer pour mettre les sauvegardes mySQL dans le répertoire Home.

  44. #44 by Flotys on 11/05/2013 - 22 h 07 min

    Ok merci, tu aurais une idée pourquoi je n arrive pas a executer le sh ?

  45. #45 by Maël on 11/05/2013 - 22 h 26 min

    non désolé.

  46. #46 by paul on 04/12/2013 - 8 h 59 min

    bonjour,

    j’obtiens le message suivant quand j’exécute le script de synchronisation en lftp :

    mirror: Fatal error: Certificate verification: Not trusted

    j’utilise un nas DS-210J.

    es-ce que j’ai loupé quelque chose ?

  47. #47 by Maël on 04/12/2013 - 12 h 14 min

    Bonjour,
    Normalement, il suffit de désactiver la vérification des certificats dans LFTP.
    Est ce que tu peux ajouter la ligne :

    set ssl:verify-certificate no

    dans le fichier /opt/etc/lftp.conf

  48. #48 by paul on 04/12/2013 - 15 h 21 min

    nickel ,merci !

(ne sera pas publié)