Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/06/2013, à 16:58

FelixP

[Script] Sauvegarde du dossier personnel et extinction.

Salut à tous !
Voici un script de sauvegarde fait maison, basé sur rsync, auquel je précise éventuellement d'éteindre l'ordi une fois la sauvegarde finie.
Il joue un fichier audio à la fin de la sauvegarde.
Pour info ma ligne de sauvegarde est celle-ci :

rsync -ahr -P --stats --filter "- .Trash/" --filter "- .cache/"  /home/felix/ /media/felix/Mastodonte/

Grâce à l'aide de membres du forum (Merci !), voici mon script une fois fini :

##!/bin/bash
if [[ $# -gt 1 ]] # ou : if (( $# > 1 ))
then
   echo "Trop de paramètres : Seule l'option  --sd  existe pour éteindre après la sauvegarde."
   exit 1
else
	if [[ $# -ne 0 ]]
	then
		[[ $1 = "--sd" ]] && eteindre=1
		read -sp "Entrez votre mot de passe : " pass
	fi
fi

rsync -ahr -P --stats --filter "- .Trash/" --filter "- .cache/"  /home/felix/ /media/felix/Mastodonte/
                                                               # Modifier les dossiers source et cible de sauvegarde
mplayer /usr/share/sounds/linuxmint-login.wav &> /dev/null &   # Modifier le chemin du fichier audio ou la commande.

if (( eteindre ))
then
	sudo -S shutdown 0 ... <<< "$pass" # On peut modifier le temps d'extinction (en minutes)
fi

Bien sûr, je suis toujours ouvert à toute proposition d'amélioration smile
Félix

Dernière modification par FelixP (Le 19/06/2013, à 15:34)


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#2 Le 18/06/2013, à 17:42

genma

Re : [Script] Sauvegarde du dossier personnel et extinction.

Une façon de faire est la suivante
Dans le fichier de configuration de "sudo" http://doc.ubuntu-fr.org/sudoers
http://doc.ubuntu-fr.org/sudoers#execut … t_de_passe

%users ALL=(ALL) NOPASSWD: /sbin/shutdown

Tu n'auras plus besoin de saisir le mot de passe quand tu fais une commande "sudo shutdown"


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière".
Utilisateur d'Ubuntu depuis la version 4.10 !
Mon blog ?      https://blog.genma.fr
Mon twitter?     http://twitter.com/genma

Hors ligne

#3 Le 18/06/2013, à 17:52

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

Pratique ! Mais si je veux donner mon script à quelqu'un, il faudrait passer par une autre méthode…


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#4 Le 19/06/2013, à 08:36

serged

Re : [Script] Sauvegarde du dossier personnel et extinction.

Si ton script n'est pas trop long (en temps) tu peux faire un "sudo" bidon au début du script :

sudo echo on y va
rsync [...]
sudo shutdown -r -F now

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#5 Le 19/06/2013, à 09:35

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

En tant que sauvegarde, ça peut être assez long hmm
Je vais tenter d'utiliser l'une ou l'autre des manips ! Et voir si on peut exécuter une console root qu'un utilisateur lambda peut "controler"…
Sinon, avez-vous des idées pour la récupération du pramètre ?


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#6 Le 19/06/2013, à 09:52

genma

Re : [Script] Sauvegarde du dossier personnel et extinction.

Dans le script

sudo shutdown -h now <$1

où $1 sera la valeur "monpassword"

récupérée quand tu lanceras ton script avec

./monscript.sh monpassword

http://www.commentcamarche.net/faq/5444 … parametres


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière".
Utilisateur d'Ubuntu depuis la version 4.10 !
Mon blog ?      https://blog.genma.fr
Mon twitter?     http://twitter.com/genma

Hors ligne

#7 Le 19/06/2013, à 11:50

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

Salut,
Pour tester si ton script a plus d'un paramètre :

#!/bin/bash
if [[ $# -gt 1 ]] # ou : if (( $# > 1 ))
then
   echo "Un seul paramètre est attendu"
   exit 1
else
   [[ $1 = "--sd" ]] && eteindre=1
fi
# Suite du script...
if (( eteindre ))
then
   sudo shutdown ....
fi

En faisant [ $# > 1 ], il me semble que tu fais une comparaison "alphabétique" (ce qui n'est pas embêtant ici ! )


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#8 Le 19/06/2013, à 12:17

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

genma a écrit :

Dans le script

sudo shutdown -h now <$1

où $1 sera la valeur "monpassword"

récupérée quand tu lanceras ton script avec

./monscript.sh monpassword

http://www.commentcamarche.net/faq/5444 … parametres

Je pense que ce n'est pas une bonne idée du tout.
Déjà car il ne me semble pas que ceci fonctionne :

sudo shutdown -h now <$1

Et si tu mets le mot de passe en paramètre du script, le mot de passe sera visible dans la liste des processus.
Une solution, mais il y a peut-être mieux :

#!/bin/bash

read -sp "Entrer votre mot de passe : " pass

sudo -S shutdown ... <<< "$pass"

Dernière modification par Postmortem (Le 19/06/2013, à 12:19)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#9 Le 19/06/2013, à 13:14

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

@Postmortem :
× Mot de passe : Testé et approuvé, merci big_smile
               Mais je ne comprends pas trop le " ... <<<" :°
× Pour les paramètres :
"-gt" > ça correspond à quoi ?
[[ $1 = "--sd" ]] && eteindre=1 , idem : ça fait quoi ?
Merci à tous de vos réponses smile
Félix


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#10 Le 19/06/2013, à 13:28

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

Entre crochets (simple ou double), pour comparer des valeurs numériques, on utilise :
-gt : supérieur à
-ge : supérieur ou égal à
-lt : inférieur à
-le : inférieur ou égal à
-eq : égal à
-ne : différent de

Pour les tests numériques, on peut utiliser les doubles parenthèses ; dans les double parenthèses, on peut utiliser les opérateurs classiques : >, >=, <, <=, ==, !=

<<< toto : envoie la chaîne de caractère "toto" en entrée standard de la commande.

La syntaxe commande 1 && commande 2 permet de n'exécuter commande 2 que si commande 1 renvoie un code retour égal à 0.
[[ $1 = "--sd" ]] && eteindre=1 : eteindre prendra la valeur 1 que si $1 est égal à --sd

Edit :
if (( eteindre )) est équivalent à if [[ $eteindre -ne 0 ]].
L'avantage, avec les doubles parenthèses, c'est que si la variable eteindre n'est pas déclarée ou qu'elle vaut autre chose qu'un nombre entier, tu n'auras pas d'erreur et elle sera considérée comme valant 0.

Dernière modification par Postmortem (Le 19/06/2013, à 13:35)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#11 Le 19/06/2013, à 13:57

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

Alors si le test est vrai, il renvoie 0 ("vide") ? Bizarre, "1" serait plus logique ! tongue

Merci beaucoup pour toutes ces explications, je mettrai à jour mon code au début si il sert à quelqu'un smile
Je passe en résolu !
Félix


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#12 Le 19/06/2013, à 14:03

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

C'est un peu déroutant mais c'est que en arithmétique, 1 est vrai et 0 est faux.
Et donc, pour le shell, le code retour de (( 1 )) est 0 alors que le code retour de (( 0 )) est 1 !!


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#13 Le 19/06/2013, à 14:04

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

Eh ben ^^'

NB : J'aime la citation dans tu signature :°


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#14 Le 19/06/2013, à 17:20

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

FelixP a écrit :

Eh ben ^^'

NB : J'aime la citation dans tu signature :°

C'est dans 2 jours le Hellfest !!!! :-)
Mais toujours pas de saucisse cette année :-(


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#15 Le 19/06/2013, à 18:20

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

Ah, génial 3:)
Dommage, avec mes concours je ne peux pas y aller encore cette année… Peut-être l'an prochain !


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#16 Le 19/06/2013, à 18:54

Postmortem

Re : [Script] Sauvegarde du dossier personnel et extinction.

C'est couillon, on aurait pu boire un coup ensemble devant un bon groupe qui décrasse les cages à miel !!
Merde pour tes concours !

Ajout :

Quelques suggestions par rapport au script que tu as mis à jour dans le 1er post.
Pour les dossiers source et cible ainsi que pour l'emplacement du fichier son, tu pourrais les variabiliser, ça évite de modifier en plein milieu du script si tu veux le passer à quelqu'un d'autre.

Puis le if [[ $# -ne 0 ]] est inutile, en vérifiant que $1 est égal à --sd, tu fais d'une pierre deux coups.
Puis comme tu l'as fait, le mot de passe est demandé dès que le script reçoit un paramètre, peu importe ce dernier.

#!/bin/bash

MA_SOURCE=/home/felix/
MA_CIBLE=/media/felix/Mastodonte/
MON_SON=/usr/share/sounds/linuxmint-login.wav

if [[ $# -gt 1 ]] # ou : if (( $# > 1 ))
then
   echo "Trop de paramètres : Seule l'option  --sd  existe pour éteindre après la sauvegarde."
   exit 1
else
	[[ $1 = "--sd" ]] && { eteindre=1
	read -sp "Entrez votre mot de passe : " pass;}
fi

rsync -ahr -P --stats --filter "- .Trash/" --filter "- .cache/"  "$MA_SOURCE" "$MA_CIBLE"
mplayer "$MON_SON" &> /dev/null &

if (( eteindre ))
then
	sudo -S shutdown 0 ... <<< "$pass" # On peut modifier le temps d'extinction (en minutes)
fi

Pour info :

[[ $1 = "--sd" ]] && { eteindre=1
	read -sp "Entrez votre mot de passe : " pass;}

Est équivalent à :

if [[ $1 = "--sd" ]]
then
   eteindre=1
   read -sp "Entrez votre mot de passe : " pass
fi

Dernière modification par Postmortem (Le 19/06/2013, à 19:32)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#17 Le 19/06/2013, à 23:38

FelixP

Re : [Script] Sauvegarde du dossier personnel et extinction.

En effet, même si je ne connais pas des masses de groupes qui y sont (avantasia, bullet for my valentine de nom, Finntroll, Moonspell, et quelques autres), ça ne peut être qu'explosif smile
Pas faux pour --sd smile
Je vais modifier en conséquence !
Félix


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne