script de vérification répertoires

Tout ce qui concerne la programmation.
Répondre
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Bonjour à Toutes et Tous :006:

Je souhaiterai trouver, écrire... ou tout simplement copier... un script qui effectuera la vérification de trois répertoires /home, situés sur trois supports et, dés qu'il y a une différence, une alerte s'affiche !

c'est déjà fait !
tant mieux... merci de m'indiquer le lien :002:

il reste à faire...
ah... j'ai l'idée, mais pas la connaissance de coder...

Merci de "m'orienter" :002:

A bientôt :002:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

DbFr871 a écrit :dés qu'il y a une différence
De quelle différence parles tu ?
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

:006:
lol a écrit :
DbFr871 a écrit :dés qu'il y a une différence
De quelle différence parles tu ?
voici une partie du script que j'emploie :

Code : Tout sélectionner

rsync -a -P --del --stats /home /media/500go/Racine2 2>> $backup
il copie à l'identique le /home sur dd 500go, ainsi que sur le 300go, s'il y avait un script de contrôle des répertoires, il inscrit "rien", tant que les répertoires copiés sont identique à l'origine, et m'informe, via une fenêtre, et l'inscrit dans un fichier log, dés qu'il y a, ne serait-ce qu'un octet d'écart...

Ce serait peut être un script de comparaison, ou autre de répertoires, dossiers, fichiers, etc... qui pourrait être détournés, s'il existe, pour faire ce petit boulot...

Tu suis l'idée ?
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

DbFr871 a écrit :Tu suis l'idée ?
A peu près. Mais j'aimerais comprendre précisément l'objectif qui reste un peu flou.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

lol a écrit :
DbFr871 a écrit :Tu suis l'idée ?
A peu près. Mais j'aimerais comprendre précisément l'objectif qui reste un peu flou.
Ah... je dois mal choisir mes mots... :002:

L'objectif est de vérifier que les répertoires, ou autres, en comparaison, soient identiques à celui d'origine !

tu me suis mieux, maintenant ?
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Re,
Oui, un peu mieux, mais ça reste pas super clair!
Tu veux lancer le rsync seulement quand il y a une différence entre les dossiers sources et backup ?
rsync ne copiera de toute façon que les fichiers modifiés, pas l'intégralité, donc tu peux le le lancer toutes les 30mn dans un cron ça ne coûte rien en ressources.

Maintenant, pour le fun, un script qui envoie une alerte sur le bureau quand les deux répertoires choisis sont différents:

Code : Tout sélectionner

#!/bin/bash
Rep1="/tmp/dir1"
Rep2="/tmp/dir2"
DIFF=$(diff $Rep1 $Rep2) 
if [ "$DIFF" != "" ] 
then
    notify-send 'Alerte: Les dossiers sont différents' "$DIFF"
fi
Donc, sans savoir EXACTEMENT ce que tu cherche à faire, c'est compliqué de te guider...
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Non, non... pas du tout, le script sera exécuté en même temps que la sauvegarde, à la fin, pour mesurer si les dossiers ont bien été copiés à l'octet près !

me suis-tu cette fois ci ?

je vais insérer le paragraphe que tu m'as indiqué si gentiment, à la suite de mon script de sauvegarde, et te donnerai le résultat :002:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

je viens de tester, en comparant les répertoires /etc et /var :

Code : Tout sélectionner

#!/bin/bash
Rep1="/etc"
Rep2="/var"
DIFF=$(diff $Rep1 $Rep2) 
if [ "$DIFF" != "" ] 
then
    notify-send 'Alerte: Les dossiers sont différents' "$DIFF"
fi
aucune alerte de différence, ou bien, j'ai fait une erreur... :017:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Autant pour moi... je l'avais lancé dans une console, et rien, aucune alerte...

et là, je viens de la lancer depuis le dossier script, et il y a bien une alerte...
qui s'est effacée toute seule...

Elle a bien listé les différences, mais aucune sauvegarde de gardée !

Normal ce mode de fonctionnement ?
En console rien, et depuis le dossier script, l'alerte s'affiche ?
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
Tu peux régler les notifications avec xfce4-notifyd-config (tu es bien en xfce ?): Style, durée, placement...
DbFr871 a écrit :Elle a bien listé les différences, mais aucune sauvegarde de gardée !
Normal ce mode de fonctionnement ?
Je ne comprend pas, tu veux quoi exactement ?
DbFr871 a écrit :Normal ce mode de fonctionnement ?
En console rien, et depuis le dossier script, l'alerte s'affiche ?
Tu peux être plus précis sur ce que tu fais et sur ce qui arrive. Avec les explications que tu fournis ce n'est pas possible de t'aider, ni même de comprendre.

En passant, j'aimerais bien voir ton script.
Tu cherche bien à avoir un message à la fin de l'exécution de ton script ? Message qui signale les erreurs ou message qui signale que tout est ok ?

Un script exécute des tâches extrêmement précises, ni plus ni moins.
La description de ce que tu cherche à faire doit l'être tout autant.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Ok, j'ai modifié ma signature pour indiquer que je suis sous Jessie XCFE, comme ça, plus d’ambiguïté :002:

Pour les différents termes que j'utilise, comme console, je me réfère à :
https://wiki.debian.org/fr/Console

Lorsque j'écris une commande, c'est pratiquement en majorité dans une console, pas en tty !

Après, c'est vrai que lorsque nous avons une idée, elle est claire pour "nous" et pratiquement pas pour les Autres... C'est pour cela que j'indique le plus souvent, :
suis-je clair ?
tu me suis,
etc... :002:

Je sais que, quelques fois, je manque de précisions... :017:

Je reprends ce que j'ai indiqué :
"aucune sauvegarde de gardée" = dans le script de sauvegarde que j'utilise, j'ai des lignes de commande pour garder le résultat de chaque sauvegarde, et je pensais que le p'tit script, que tu as indiqué, le faisait totomatiquement... :005:


"En console rien, et depuis le dossier script, l'alerte s'affiche ?" = depuis la console, avec la ligne de commande suivante :

Code : Tout sélectionner

# /home/bernard/Mes_scripts/SauvTestAnnonce1
le script ne s'exécute pas !

Alors que depuis son dossier script :
/home/bernard/Mes_scripts/
il s'exécute, ouvre une fenêtre sur le coté droit, et liste toutes les différences trouvées, puis la fenêtre se referme, surement à la fin de la comparaison différence !

Quant au script que j'utilise, le voici :

Code : Tout sélectionner

#!/bin/bash
#
# Ce script permet de faire une sauvegarde incrémentale manuelle avec "rsync"
# Il peut être lancé à partir d'un bouton personnalisé dans un tableau de bord.
#
# Variables de couleurs (pour donner un peu de gaieté dans ce monde de brutes...)
VERT="\\033[1;32m"
STNDT="\\033[0;39m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"

Date=$(date +%d-%m-%Y)
Heure=$(date +%T)
		echo -e $BLEU "Sûr de vouloir exécuter la sauvegarde sur Racine 1 et 2 ? o/n"
		read ANSWER
if [ $ANSWER == o ] ;
then
	echo -e $JAUNE "----\nLancement sauvegarde à : $Heure le $Date"
	echo -e $STNDT "-----------\nSynchronisation en cours...\n ------------"

# pour donner un nom "raccourci" (incluant le chemin) au fichier backuperror0.log :
backup=/home/bernard/bin/Sauvegardes/backuperror0Del.log

aptitude search '~i !~M' -F '%p' > /home/mes_paquets1

dpkg --get-selections > liste-des-paquets1

# à noter l'usage des ">" :
# Un seul ">" renvoie le contenu du terminal dans le fichier indiqué
# en écrasant tout ce que contient déjà ce fichier.
# ">>" renvoie le contenu du terminal sans écraser ce que contient déjà le fichier.
# Le chiffre "2" suivi d'un seul ">" renvoie seulement les messages d'erreurs
# générés par le processus dans le fichier indiqué en écrasant le contenu de ce fichier.
# "2>>" renvoie les erreurs sans écraser le contenu du fichier.

#DDSecondaire500Go
rsync -a -P --del --stats /home /media/500go/Racine2 2>> $backup

rsync -a -P --del --stats /etc /media/500go/Racine2 2>> $backup

rsync -a -P --del --stats /var /media/500go/Racine2 2>> $backup

rsync -a -P --del --stats /root /media/500go/Racine2 2>> $backup


#DD300Go  /media/300go
rsync -a -P --del --stats /home /media/300go/Racine1 2>> $backup

rsync -a -P --del --stats /etc /media/300go/Racine1 2>> $backup

rsync -a -P --del --stats /var /media/300go/Racine1 2>> $backup

rsync -a -P --del --stats /root /media/300go/Racine1 2>> $backup

#rsync -a -P --del --stats /media/freebox/ServeurUpnp/Films/Documents /media/300go/Documents 2>> $backup


# Vérification des liens = faite
# Insertion de la date à la fin de la liste d'erreur si le fichier backuperror
# n'est pas vide (c'est à dire s'il y a des erreurs), ce que vérifie l'option "-s" :
if [ -s $backup ]; then
{
  date >> $backup
}
fi
		# Mise à jour de l'heure
		Heure=$(date +%T)

	echo -e $ROUGE " Sauvegarde terminée à  : $Heure le $Date\n"
else
	echo -e $BLEU "Procédure interrompue par l'utilisateur."
fi

read -p "A la prochaine... Pour fermer le terminal : Ctrl + C"

# ---- fin du script ----
J'utilise geany, que je trouve "simple", pour faire et modifier des scripts :002:

Voilà, tu sais tout... ou presque, si je me suis bien exprimé :001:
du moins, si mes idées ont été clairement exprimées :002:

Me suis-tu un peu mieux, ou bien, j'ai raté mes explications ?
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

DbFr871 a écrit : Je reprends ce que j'ai indiqué :
"aucune sauvegarde de gardée" = dans le script de sauvegarde que j'utilise, j'ai des lignes de commande pour garder le résultat de chaque sauvegarde, et je pensais que le p'tit script, que tu as indiqué, le faisait totomatiquement...
Comme je ne savais pas ce que tu souhaitais, je n'avais pas prévu d’afficher le contenu de la variable $backup qui se trouve dans ton script.
On pourrait faire un truc comme ça à la fin de ton script:
notify-send "Fin du script!" "$backup"
DbFr871 a écrit :"En console rien, et depuis le dossier script, l'alerte s'affiche ?" = depuis la console, avec la ligne de commande suivante :

Code : Tout sélectionner

# /home/bernard/Mes_scripts/SauvTestAnnonce1
le script ne s'exécute pas !

Alors que depuis son dossier script :
/home/bernard/Mes_scripts/
il s'exécute, ouvre une fenêtre sur le coté droit, et liste toutes les différences trouvées, puis la fenêtre se referme, surement à la fin de la comparaison différence !
Désolé, mais toujours pas très clair.
Si tu veux pas être emmerdé avec les chemins, place tes scripts dans /usr/local/bin. Tu pourra les lancer depuis n'importe ou en tapant juste le nom du script.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

et là, ça parle mieux :002:
Image
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

diff -r ?
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Merci de ta suggestion :002:

je l'ai insérée comme ça :

Code : Tout sélectionner

#!/bin/bash
Rep1="/etc"
Rep2="/var"
DIFF=$(diff $Rep1 $Rep2) 
if [ "$DIFF" != "diff -r" ] 
then
    notify-send 'Alerte: Les dossiers sont différents' "$DIFF"
fi
le résultat est identique à l'image du dessus !
par contre, j'ai pu me tromper sur l'emplacement de "diff -r"
si c'est le cas, merci de m'indiquer le "bon" endroit :002:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

DbFr871 a écrit :et là, ça parle mieux :002:
Image
Si la capture c'est pour m'expliquer que tu double clic dessus, oui. Ce n'étais pas la peine de faire une capture pour ça! :003:
Si c'est le cas, c'est plus simple de dire que tu double clic dessus dans un gestionnaire de fichier.
Sinon, toujours pas.

Je lance toujours mes scripts avec une commande, dans une console. Ils sont généralement automatisés et lancés par une tâche cron.
Éventuellement avec un raccourci graphique (qui lance une commande dans une console).

Je sais que je suis chiant... :021:
Mais je pars du principe que ce qui se conçoit bien s'énonce clairement.
Lors des demandes de support, il est important d'être très précis dans l'énoncé des problèmes, moyens et résultats.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Code : Tout sélectionner

#!/bin/bash
Rep1="/etc"
Rep2="/var"
DIFF=$(diff -r $Rep1 $Rep2) 
if [ "$DIFF" != "" ] 
then
    notify-send 'Alerte: Les dossiers sont différents' "$DIFF"
fi
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

Houla... j'suis encore plus :021: j'évite les doubles clics, et travaille toujours en simple clic :002:

windows, je l'ai oublié, avec son double clic, depuis plusieurs années :003:

La copie d'écran, est pour t'indiquer d'où je clique, et son résultat !

je viens de tester le script modifié, et la différence ne m'est pas perceptible : même fenêtre à droite ; liste ; et "au revoir"... !

Je vais insérer le p'tit script dans celui que j'ai pour la sauvegarde, et te ferai un retour du résultat :002:

et crierai "au secours !" en cas de... :003:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

DbFr871 a écrit :même fenêtre à droite ; liste ; et "au revoir"... !
Oui, il fait ce qu'on lui demande.
On ne sais toujours pas ce que tu souhaites voir s'afficher dans la fenêtre...
Pour régler le comportement de la fenêtre c'est, comme je te le disais plus haut, ici: xfce4-notifyd-config
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
DbFr871
Membre très actif
Membre très actif
Messages : 1140
Inscription : 17 mai 2016, 20:48
Localisation : Nègrepelissien
Contact :
Status : Hors-ligne

lol a écrit :
DbFr871 a écrit :même fenêtre à droite ; liste ; et "au revoir"... !
Oui, il fait ce qu'on lui demande.
On ne sais toujours pas ce que tu souhaites voir s'afficher dans la fenêtre...
Pour régler le comportement de la fenêtre c'est, comme je te le disais plus haut, ici: xfce4-notifyd-config
si, si... je l'ai écrit dés le début :
DbFr871 a écrit
Bonjour à Toutes et Tous :006:
...
... et, dés qu'il y a une différence, une alerte s'affiche !
...
A bientôt :002:
Certes, j'ai omis d'indiquer : quoi afficher ? :003:
Déjà, commencer par le plus simple : afficher les répertoires ou dossiers, ou fichiers qui sont différents !

Cependant, je préférerai que l'affichage sur le bureau soit destiné à indiquer qu'il y a une différence : "Attention Différence, lire le fichier différence.log ou .txt", qui sera créé, et horodaté :001:

Comme le fait le script, que j'utilise pour mes sauvegardes !

Je sais... je sais... il faut m'arracher les infos...
mais, j'manque d'expérience pour cela... :002:
Cordialement,
Bernard
Debian9.1Stretch-XFCE-64bits-Sony-Vaio,Intel-P8400-2.26GHz,DD-SeagateSSHD500Go,GeForce9300M-GS-256Mo
Répondre