logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-02-2016 01:16:46

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Mot de passe ssh avec rsync

Bonjour,

j'aimerais aller un peu plus loin que https://debian-facile.org/viewtopic.php?pid=161881  et faire en sorte que le mot de passe ne soit demandé qu'une seule fois.

Posons:


#!/bin/bash
rsync -r -t -n -x -v --progress -l -s \
  --filter "- FichiersAsoustraire" \
  --filter "+ FichierAnePasOublier" \
  --filter "- tmp" \
  . identifiant@serveur.adresse.ext:SousRep/sousRep
 



Le mot de passe m'est demandé à cette première étape, celle de la simulation.

Pourrais éviter qu'il me soit demandé à seconde étape, l'action réelle ?


read -p "Doit-on faire la sauvegarde ? (o/n) : " maj

if echo "$maj" |grep -q -E -i '^o(ui)?$'; then
rsync -r -t -x -v --progress -l -s \
  --filter "- FichiersAsoustraire" \
  --filter "+ FichierAnePasOublier" \
  --filter "- tmp" \
  . identifiant@serveur.adresse.ext:SousRep/sousRep
else
    echo On ne fait pas la mise à jour
fi

 



Merci de votre aide.

Dernière modification par Patriboom (01-02-2016 01:18:01)


Portez la paix
Patrick Allaire, ptre

Hors ligne

#2 01-02-2016 01:35:47

ricardo
Membre
Distrib. : Stretch
Noyau : Le plus à jour
(G)UI : KDE
Inscription : 29-01-2016

Re : Mot de passe ssh avec rsync

C'est logique car si tu fais ta simulation en ligne de commande directe, il revient à l'invite tout de suite.
Question :
Pourquoi continuer de faire une simulation ?
je suppose que tu as bien testé ton script.
Si on voyait le script en entier, ça serait ptet plus parlant.

Informatique depuis 1986, Linux depuis2001, Debian exclusivement depuis 2002.
Stretch à jour sur plusieurs machines bureau et un portable. KDE.

Hors ligne

#3 01-02-2016 01:45:19

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Bookworm (12)
Noyau : Linux 6.1.0-13-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : Mot de passe ssh avec rsync

Je fais la simulation pour m'assurer de ne rien bousiller en ligne, de ne rien oublier non plus.
Si la simulation me satisfait, je procède à l'opération réelle.

Le script en entier est ci-haut, simplement coupé en deux morceaux.

Portez la paix
Patrick Allaire, ptre

Hors ligne

#4 01-02-2016 16:33:29

ricardo
Membre
Distrib. : Stretch
Noyau : Le plus à jour
(G)UI : KDE
Inscription : 29-01-2016

Re : Mot de passe ssh avec rsync

rsync -r -t -n -x -v --progress -l -s \
  --filter "- FichiersAsoustraire" \
  --filter "+ FichierAnePasOublier" \
  --filter "- tmp" \
  . identifiant@serveur.adresse.ext:SousRep/sousRep


pas utile de répéter les tirets : -rtnxv fera la même chose.
Pourquoi ne pas utiliser 'exclude' ?
Tu crées un fichier (exclure chez moi) que tu places dans ton ~/ avec tous les dossiers/fichiers que tu ne veux pas voir mis à jour. Tu ajoutes dans ta commande : exclude-from=/chemin_du_fichier.
Pour exemple, je te donne ma ligne de sauvegarde pour mon ~/ 

rsync -av --del --exclude-from=/home/ricardo/exclure /home/ricardo/ $PtMontage


sachant que je déclare, en tête, les variables :

PtMontage='/mnt'
 cibleR='/dev/disk/by-partlabel/sauve2dDD'
 cibleH='/dev/disk/by-partlabel/sauve-ricardo2dDD'



De plus, tu oublies les "exit"
exit 1 à la suite du 'else'
et
"exit" à la fin de ton script

Si tu veux je te passerai mon script complet qui a été testé mille fois.


Informatique depuis 1986, Linux depuis2001, Debian exclusivement depuis 2002.
Stretch à jour sur plusieurs machines bureau et un portable. KDE.

Hors ligne

#5 01-02-2016 17:21:31

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Mot de passe ssh avec rsync

Hello,

Ce n'est pas une affaire de goût plutôt ?
En ligne de commande, c'est plus rapide de ne pas répéter les tirets, c'est sûr, mais dans un script c'est quand même plus lisible avec les tirets séparés. Perso, je préfère même utiliser les versions longues des options surtout quand il d'agit d'une commande que je n'utilise pas trop (avec rsync -a ne me parle pas tandis que --archive oui) !

J'utilise aussi plusieurs --filter dans mon script de sauvegarde, ça fait une commande à rallonges mais ça m'évite de gérer un fichier supplémentaire et je vois tout de suite ce qui est exclu.

Voilà, c'était ma remarque à deux balles, sinon je veux bien voir ton script ! roll

Hors ligne

#6 01-02-2016 19:39:44

ricardo
Membre
Distrib. : Stretch
Noyau : Le plus à jour
(G)UI : KDE
Inscription : 29-01-2016

Re : Mot de passe ssh avec rsync

C'est en effet une affaire de goût wink
Sachant que je fonctionne avec 2 partitions (+ Sawp) :
racine (R) sauf /home
home (H)
et donc, que je sauvegarde l'une après l'autre, voici mon script :

#!/bin/bash

### BEGIN INIT INFO
#  Nom du script : xxxxxx
#  Auteur : Ricardo
#  Utilité : sauvegarde de xxxxxx sur xxxx
### END INIT INFO

 PtMontage='/mnt'
 cibleR='/dev/disk/by-partlabel/XXXXX'
 cibleH='/dev/disk/by-partlabel/YYYYY'

 if [ ! -e $cibleR ]      # teste l'absence de la partition cible
       then
           echo "$cibleR est introuvable"
           exit 1      # on sort
       else          # si la partition est trouvée
          sudo mount -t ext4 $cibleR $PtMontage   # on monte la partition cible sur le point de montage
      if (("$?" > 0))            # si retour commande précédente = faux
         then
            echo "erreur de montage"
            exit 1         # on sort
         else            # si retour = 0 (bon), on exécute :
            sudo rsync -av --del --exclude-from=/root/exclure / $PtMontage
      fi
 fi
echo
printf '\E[30;45m'" sauve / terminé " ; tput sgr0
echo
 sleep 2
 sudo umount $PtMontage
echo "Point de montage libéré"
 sleep 2
echo
echo "On passe à /home/USER"
 sleep 2
echo
 if [ ! -e $cibleH ]            # teste l'absence de la partition cible
        then
                echo "$cibleH est introuvable"
                exit 1          # on sort
        else                    # si la partition est trouvée
                sudo mount -t ext4 $cibleH $PtMontage   # on monte la partition cible sur le point de montage
                if (("$?" > 0))                         # si retour commande précédente = faux
                        then
                                echo "erreur de montage"
                                exit 1                  # on sort
                        else            # # si retour = 0 (bon), on éxécute :
            sudo rsync -av --del --exclude-from=/home/USER/exclure /home/ricardo/ $PtMontage
                fi
 fi
 sudo umount $PtMontage
echo
 printf '\E[30;45m'" sauvegarde complète et démontage effectué " ; tput sgr0
echo
 sleep 2
echo
 exit 0

 



Ce script est facile à tester en commentant les deux lignes rsync et en les remplaçant par un blabla d'attente.
Il suffit de remplir les XXX et YYY parles bonnes données, et de remplacer le USER.

Edit à toto :
Mis la balise code en code=bash pour mettre le script en couleur sur le forum. C'est tellement plus zoli ! smile


Informatique depuis 1986, Linux depuis2001, Debian exclusivement depuis 2002.
Stretch à jour sur plusieurs machines bureau et un portable. KDE.

Hors ligne

#7 01-02-2016 21:43:19

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Mot de passe ssh avec rsync

Merci, je ne lisais pas debian-fr.org, tu as bien fait de venir par ici big_smile

Bon, Patriboom n'aura pas la réponse à sa question mais je me demande à quoi sert "tput sgr0" ?

Et il y a une raison particulière pour que tu ne demandes pas de lancer le script en sudo vu qu'il y a pas mal de sudo dans le script ?

Hors ligne

#8 01-02-2016 22:14:37

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Mot de passe ssh avec rsync

Salut @Ricardo smile

Il y a moyen d'améliorer la coloration syntaxique de ton script en ajoutant le language dans la balise code

[ code=bash]


Voir le tuto : Le code, ça pique moins les yeux en couleur wink


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#9 02-02-2016 01:04:17

ricardo
Membre
Distrib. : Stretch
Noyau : Le plus à jour
(G)UI : KDE
Inscription : 29-01-2016

Re : Mot de passe ssh avec rsync

OK pour le code, sorry, suis nouveau et habitué à PhpBB.

test pour savoir si c'est bien ce qu'il faut faire :

if [ ! -e $cibleH ]            # teste l'absence de la partition cible
        then
                echo "$cibleH est introuvable"
                exit 1          # on sort
        else                    # si la partition est trouvée
                sudo mount -t ext4 $cibleH $PtMontage   # on monte la partition cible sur le point de montage
                if (("$?" > 0))                         # si retour commande précédente = faux
                        then
                                echo "erreur de montage"
                                exit 1                  # on sort
                        else        # # si retour = 0 (bon), on éxécute :
        sudo rsync -av --del --exclude-from=/home/ricardo/exclure /home/ricardo/ $PtMontage
                fi
 fi
 



@ Wlourf :

Bon, Patriboom n'aura pas la réponse à sa question mais je me demande à quoi sert "tput sgr0" ?


C'est pour que les annonces importantes soient plus visible wink Je suis sur une console fond bleu lettres blanches.
Tu peux tester la ligne de commande suivante, tu ne risques rien :

printf '\E[30;45m'" ainsi, tu retournes à la ligne avec la couleur de fond antérieure " ; tput sgr0 && echo && echo




Et il y a une raison particulière pour que tu ne demandes pas de lancer le script en sudo vu qu'il y a pas mal de sudo dans le script ?



Vieille habitude d'emplacement de mes scripts perso /usr/local/bin avec des droits de 740.


Informatique depuis 1986, Linux depuis2001, Debian exclusivement depuis 2002.
Stretch à jour sur plusieurs machines bureau et un portable. KDE.

Hors ligne

#10 02-02-2016 08:46:07

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Mot de passe ssh avec rsync

merci, je me le note (j'avais essayé mais sans deuxième ligne, je ne voyais pas la différence entre avec et sans 'tput sgr0' roll )

Hors ligne

#11 02-02-2016 12:46:24

ricardo
Membre
Distrib. : Stretch
Noyau : Le plus à jour
(G)UI : KDE
Inscription : 29-01-2016

Re : Mot de passe ssh avec rsync

Bien sûr, il y a les codes couleur que l'on peut modifier mais je ne me souviens plus où j'ai mis la liste.
Ça doit se trouver facilement sur le Net.

Informatique depuis 1986, Linux depuis2001, Debian exclusivement depuis 2002.
Stretch à jour sur plusieurs machines bureau et un portable. KDE.

Hors ligne

#12 02-02-2016 13:06:06

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Mot de passe ssh avec rsync

ricardo a écrit :

OK pour le code, sorry, suis nouveau et habitué à PhpBB.

Pas de soucis wink C'était pour un point-chocolat :lol
De plus, c'est un addon maison de Fluxbb, c'est donc vraiment spécifique à Debian-Facile.


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

Pied de page des forums