Aller au contenu

Instalation d'un script non fonctionnel


Messages recommandés

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

 

Lien vers le commentaire
Partager sur d’autres sites

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> 

Lien vers le commentaire
Partager sur d’autres sites

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) !

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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?

 

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.