Rites Posté(e) le 21 février 2017 Posté(e) le 21 février 2017 Bonjour tous le monde Voila je rencontre un probleme a vec un script .sh lorsque je l’exécute il m'affiche des lignes no found et autre voir si dessous Le but de mon sujet c'est que j' essayer de faire une sauvegarde de mes sites comme l'explique ce sitehttp://furie.be/news/28/15/Faire-un-backup-de-ses-serveurs-sur-son-NAS-Synology-Partie-2.html avec leurs script qu'il fournisse Y'aurait il quelque un qui pourrais m'expliquer ce qui ne vas pas? Merci d'avance DiskStation> ls -lia 8388679 drwxrwxrwx 2 admin users 4096 Feb 21 11:27 . 4718798 drwx--x--x 6 root root 4096 Feb 21 11:27 .. 8400861 -rwxrwxrwx 1 root root 2185 Feb 21 11:54 backup.sh DiskStation> ./backup.sh : not found: line 1: #!/bin/sh : not found: line 12: : not found: line 17: : not found: line 22: : not found: line 23: : not found: line 27: : not found: line 31: : not found: line 35: : nonexistent directoryan't create /volume1/Sauvegarde/FTP/ : not found: line 39: ': No such file or directoryy '/volume1/Sauvegarde/FTP/ : not found: line 42: /2017_02_21_16_26line 44: can't cd to /volume1/Sauvegarde/FTP/ : not found: line 45: : nonexistent directoryan't create /volume1/Sauvegarde/FTP/ : not found: line 48: : nonexistent directoryan't create /volume1/Sauvegarde/FTP/ : not found: line 51: : nonexistent directoryan't create /volume1/Sauvegarde/FTP/ : not found: line 55: : not found: line 61: : nonexistent directoryan't create /volume1/Sauvegarde/FTP/ ./backup.sh: exit: line 65: Illegal number: 127 #!/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 ###################################################################################### # nom du serveur et repertoire local + ftp name=SERVER97 dir=/volume1/Sauvegarde/FTP/ repFTP=/ # configuration : ftp / user / pass servFTP=192.168.9.9 userFTP=login passFTP=password horodatage=$(date +%Y_%m_%d_%H_%M) ficLog=${dir}logs/log_${name}_${horodatage}.txt repLocal=${dir}/${name}/${horodatage}/ #Repertoire a ignorer sur le FTP # ex : repIgnore="-x wp-content/cache -x /wp-content/supercache" repIgnore="" # Options de la commande lftp mirroir http://lftp.yar.ru/lftp-man.html #options="" options=--Remove-source-files ###################################################################################### # debut shell echo "+-- Deb Sauvegarde $(date) ---" >> ${ficLog} # Creation du repertoire mkdir ${repLocal} # On se place au repertoire de sauvegarde cd ${repLocal} # log echo "Connexion sur ftp://${userFTP}:xxxxx@${servFTP}" >> ${ficLog} # commande de copie miroir ftp vers local /opt/bin/lftp ftp://${userFTP}:${passFTP}@${servFTP} -e "mirror ${1} ${options} ${repIgnore} ${repFTP} ${repLocal} ; quit" >> ${ficLog} # résultat de la commande - 0 : ok res=$? echo "Resultat : "${res} >> ${ficLog} # A decommenter si on souhaite utiliser l'envoi d'email de Synology #if [ ${res} -eq 0 ] #then /usr/syno/bin/synomail SVGFini #else /usr/syno/bin/synomail SVGError #fi # fin shell echo "--- Fin Sauvegarde $(date) ---" >> ${ficLog} ###################################################################################### exit $res 0 Citer
Fenrir Posté(e) le 21 février 2017 Posté(e) le 21 février 2017 Tu as créer/copié le script sous Windows ou Mac => les sauts de lignes ne sont pas bons. Soit tu les corriges (aec notepad++ par exemple), soit tu le récupères à la source (wget https://gist.githubusercontent.com/besstiolle/4141366/raw/b4db1d750c6edd29cc7b34e342ea29f6c4daa5fa/lftp.sh) 0 Citer
Rites Posté(e) le 21 février 2017 Auteur Posté(e) le 21 février 2017 OK merci pour l info je vais regarder ca. En effet j avais fait avec Windows et copier via Synologyy Je pense avoir corriger mes saut de page hélas non Voilà autre chose DiskStation> ./backup.sh ./backup.sh: line 38: can't create /volume1/Sauvegarde/FTP/logs/log_Server-syno_2017_02_21_21_29.txt: nonexistent directory mkdir: can't create directory '/volume1/Sauvegarde/FTP//Server-syno/2017_02_21_21_29/': No such file or directory ./backup.sh: cd: line 44: can't cd to /volume1/Sauvegarde/FTP//Server-syno/2017_02_21_21_29/ ./backup.sh: line 47: can't create /volume1/Sauvegarde/FTP/logs/log_Server-syno_2017_02_21_21_29.txt: nonexistent directory ./backup.sh: line 50: can't create /volume1/Sauvegarde/FTP/logs/log_Server-syno_2017_02_21_21_29.txt: nonexistent directory ./backup.sh: line 54: can't create /volume1/Sauvegarde/FTP/logs/log_Server-syno_2017_02_21_21_29.txt: nonexistent directory ./backup.sh: line 63: can't create /volume1/Sauvegarde/FTP/logs/log_Server-syno_2017_02_21_21_29.txt: nonexistent directory DiskStation> 0 Citer
Fenrir Posté(e) le 21 février 2017 Posté(e) le 21 février 2017 Sans être méchant, tu exécutes un script sur ton syno sans avoir pris le temps de comprendre en détail son fonctionnement et de lire attentivement les instructions de son auteur ? Tu as de la chance que le script ne soit pas trop mal codé, s'il y avait eu un rm mal placé, tu aurrais pu effecer toutes tes données !! L'erreur est simple et explicite, le dossier "/volume1/Sauvegarde/FTP/" n'existe pas : Citation dir=/volume1/Sauvegarde/FTP/ : C'est le path absolue de votre répertoire de sauvegarde. Je reviendrais un peu plus loin sur le sujet. ... Nous allons tester notre script, et puisqu'il pointe vers SERVER97, j'ai choisit pour l'occasion de le nommer /Sauvegarde/FTP/... En passant, tu as beaucoup plus simple et qui ne nécessite pas de lancer un script sur le nas pour arriver au même résultat : https://blog.fenrir.fr/2013/10/24/sauvegarde-via-rss/ C'est ce que j'utilise depuis des années pour le même besoin (sauvegarder des données de serveurs sur mon nas). Ici aussi il faut bien lire toutes les instructions (surtout la dernière) ! 0 Citer
Rites Posté(e) le 23 février 2017 Auteur Posté(e) le 23 février 2017 Merci bcp pour ton aide 'Fenrir' mes je tien absolument a faire fonctionner ce script sur mon SYNO car sinon j'apprendrais jamais a developper. D'ailleur je te remerci aussi pour ton lien pour sauvegarder en xml je regarderais a l'occas En ce qui concerne le site de l'auteur bien sur que je lie ce qu'il et ecrit d'ailleur je savais aussi que mes fichier pouvais etre supprimer de mon ftp j'ai verifier avant de l'executer d'ailleur c'est pas encore gagner Sinon .... Le 21/02/2017 à 22:05, Fenrir a dit : L'erreur est simple et explicite, le dossier "/volume1/Sauvegarde/FTP/" n'existe pas C'est quand meme bizard qu'il me dist qu'il existe pas alors qu'il existe reelement ce dossier donc a ne plus rien comprendre Voici une partie de ce que me donne ls -lia et on vois bien le dossier d'ou dans ce dossier un autre FTP 7534 drwxrwxrwx 4 root root 4096 Jun 15 2016 Freebox V6 4082610 drwxrwxrwx 6 root root 4096 Jan 10 18:43 Public 4718798 drwx--x--x 6 root root 4096 Feb 21 11:27 Sauvegarde 12 -rw------- 1 root root 8192 Feb 23 20:51 aquota.group 11 -rw------- 1 root root 10240 Feb 23 20:51 aquota.user 4198593 drwxr-xr-x 4 root root 4096 Mar 12 2016 homes Je vous remerci par avance de vos lumiere CDT 0 Citer
Fenrir Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 Tu as : name=SERVER97 dir=/volume1/Sauvegarde/FTP/ repFTP=/ horodatage=$(date +%Y_%m_%d_%H_%M) ficLog=${dir}logs/log_${name}_${horodatage}.txt repLocal=${dir}/${name}/${horodatage}/ Il y a bien : mkdir ${repLocal} (qui est aussi en erreur) Mais pas : mkdir ${dir}logs => ça explique les erreurs des lignes 38, 47, 50, 54 et 63 Pour celle de la ligne 44 : repLocal=${dir}/${name}/${horodatage}/ devrait être repLocal=${dir}${name}/${horodatage}/ mais ce n'est pas le soucis, il manque encore le dossier horodatage, ce qui empêche le mkdir de la ligne 41 de fonctionner => 2 des dossiers n'existent pas (si le dossier FTP n'avait pas existé tu aurais eu exactement les mêmes erreurs) Pour corriger le scripts : supprime les lignes 40 et 41 ligne 26 remplace : repLocal=${dir}/${name}/${horodatage}/ par repLocal=${dir}${name}/${horodatage}/ ligne 27 insère les 3 lignes : #création des dossiers mkdir -p ${repLocal} mkdir -p ${dir}logs Il y a peut être d'autres erreurs, je n'ai pas lu attentivement le script, mais il manque cruellement de contrôle d'erreur, par exemple entre les lignes 37 et 38 il faudrait ajouter des tests sur l'existence des dossiers et un test des droits (comme il le fait à la ligne 57 en commentaire). La ligne 50 ne protège pas les éventuels caractères spéciaux dans le login ou le password, de plus le fait de passer en FTP signifie que le login+pass circulent en clair sur Internet. Plus quelques autres soucis potentiels. 0 Citer
Rites Posté(e) le 24 février 2017 Auteur Posté(e) le 24 février 2017 Merci encore pour ta réponse Je regarde ça ce weekend end n étant pas chez moi actuellement. Cdt 0 Citer
Rites Posté(e) le 26 février 2017 Auteur Posté(e) le 26 février 2017 Merci bcp 'Fenrir' Ça fonctionne super bien Je vais pouvoir suivre le tuto pour sauvegarde a jour, heure précise espérant que tous ira bien Encore mille fois merci Bon journée 0 Citer
Rites Posté(e) le 26 février 2017 Auteur Posté(e) le 26 février 2017 Petit souci avec le script enfin on va dire que je comprend pas trop En faite le site de l'auteur du script dit 'A la fin des opérations votre serveur FTP sera vidé des fichiers. C'est une option liée au protocole FTP qui peut être facilement annulée en mettant en commentaire la ligne dans le script' options=--Remove-source-files En regardant le script la ligne y et deja ecrite et malgrer cela lors de ma sauvegarde seul les dossiers sont rester sur mon serveur ftp exterieur et mes fichier, image.. on disparu donc mon site est inacessible En gros toute la sauvegarde serveur externe sur Syno OK Sur mon serveur externe fichiers disparu uniquement des dossiers vide Comment puis je remedier a cela? 0 Citer
Fenrir Posté(e) le 26 février 2017 Posté(e) le 26 février 2017 La ligne est inscrite DONC il a supprimé, si tu ne voulais pas supprimer les données, il fallait commenter la ligne AVANT de lancer le script. 0 Citer
Rites Posté(e) le 26 février 2017 Auteur Posté(e) le 26 février 2017 Moi j avais compris que si la ligne tel qui la écrit voulais dire ne pas supprimer. En revanche je ne serait quel ligne écrire si je ne veux pas que ce soit supprimer. Encore une chance que j avais lancer la sauvegarde sur un dossier spécifique et non a la racine. 0 Citer
Fenrir Posté(e) le 26 février 2017 Posté(e) le 26 février 2017 #options="" options=--Remove-source-files => options="" #options=--Remove-source-files la prochaine fois que tu trouves un script sur le net, ferme les yeux et passe ton chemin assure toi de vraiment comprendre ce qu'il fait et comment il ne fait avant de le lancer sur des données de "production" 0 Citer
Rites Posté(e) le 26 février 2017 Auteur Posté(e) le 26 février 2017 Merci beaucoup En fait si j'ai bien compris c est juste ce petit '#' qui joue sont rôle j en apprendrait des choses c est d ailleurs mon but. J essaye de comprendre et je ne ferme pas les yeux lol c est d'ailleurs pour ça que j ai lancer le script sur un dossier test et non a la racine. Et puis on dit toujours c est en faisant des erreurs qu on apprend. Merci encore pour ton soutient 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.