Sauvegarder avant l'arrêt du PC

Bonjour,

J’utilise crontab (je suis sous crunchbang) pour copier toutes les minutes trois fichiers dans le dossier .config et les coller dans un autre dossier. Mais je préférerai que ces copier/coller aient lieu à l’arrêt du PC lorsque j’appuie sur le bouton d’alim (que j’ai configuré sur éteindre). Est-ce possible ? Merci.

Je suppose que oui avec un script qui lancerait la sauvegarde avant l’extinction totale.
Mais faudrait demander l’avis des codeurs dans la section “programmation”

Salut,
pour ma part j’ai cherché longtemps une solution à ce problème
et finalement j’ai fait un petit script qui sauvegarde puis éteint
le PC.

En gros :

rsync bla bla bla sudo /sbin/shutdown now -h

Salut,

Et si tu faisais un bouton perso avec la commande du genre :

Ça devrait fonctionner mais tout dépend ton environnement de bureau bien-sûr.

Pour

rsync bla bla bla sudo /sbin/shutdown now -h

ça marche, mais il fait taper le mot de passe. En même temps, je n’ai pas fait de script, car je ne sais pas comment faire.

Pour

ça ne marche pas, mais ce que je cherche, c’est exécuter la sauvegarde lorsque j’appuie sur le bouton d’alim. Je vais poser la question dans la section “programmation” comme conseillé par ricardo.

Je n’ai peut-être pas été très clair, mais sur XFCE, si tu cliques sur le bouton d’extinction, ça appelle xfce4-session-logout.
Donc tu peux faire un bouton perso, avec la même icône, qui exécute la commande :

Si tu veux éteindre plutôt qu’avoir le choix entre hiberner, etc., tu fais :

Mais tu ne nous a toujours pas dit ton environnement de bureau, c’est pas facile de t’aider… Et “ça ne marche pas” n’est pas évident à interpréter pour mieux t’aiguiller.

À titre indicatif, pour clefagreg, j’ai fait un script

#!/bin/sh NOM=/tmp/B_`date +"%s"` export > /tmp/glop xmessage "Sauvegarde du repertoire en cours" -center -buttons "Patientez..."& if [ ! -f /oldroot/ramdisk/home/.clefcodage ] ; then cd /oldroot/ramdisk/home/${USER} sudo rsync -rltpD -q --del --exclude=".*" . /oldroot/cdrom/home/ cat liste | awk '{print "sudo rsync -P -rltpD --del "$1" /oldroot/cdrom/home/"}' | sh [...] etc sauvegarde du bazar [...] sudo bcrypt home.tar sudo mv home.tar.bfe /oldroot/cdrom sync killall xmessage fi xmessage "Sauvegarde finie, menu de fin de session dans 1 seconde" -center -timeout 1 /usr/bin/xfce4-session-logout.real $*
après avoir renommer /usr/bin/xfce4-session-logout en /usr/bin/xfce4-session-logout.real

Cela permet de faire la sauvegarde à chaque fin de session. Très efficace.

Est-ce que mettre ton script de copie dans /etc/rc0.d ne suffirait-il pas?

[size=50](woot, 100 messages!!)[/size]

Ça marche aussi, tout dépend de ce que sont ces fichiers.

[quote=“tukuyomi”]Est-ce que mettre ton script de copie dans /etc/rc0.d ne suffirait-il pas?

[size=50](woot, 100 messages!!)[/size][/quote]
En bientôt 8 ans de présence, c’est un record :laughing: :laughing: :laughing:
:006

[quote=“sam50”]Pour

rsync bla bla bla sudo /sbin/shutdown now -h

ça marche, mais il fait taper le mot de passe. En même temps, je n’ai pas fait de script, car je ne sais pas comment faire.
[/quote]

Pour éviter le mot de passe tu lances en root #visudo et tu ajoutes la ligne :

En remplaçant user par ton nom d’utilisateur.

Alors je ne suis pas sur Linux depuis longtemps, donc beaucoup de chose me sont obscur. Mon environnement est Openbox. D’après ce que j’ai compris “xfce4-session-logout” s’appellerait “autrement” et donc « rsync bla bla && autrement --halt » devrait se mettre dans un fichier, mais lequel ?

Pour le « ça marche pas », ben ! Il ne se passe rien quand j’execute “cp /chemin/fichier ~/.config/ && xfce4-session-logout” dans le terminal. Mais si je suis sous Openbox, c’est normal je suppose.

C’est sur. Dans ta situation, le plus simple est de rajouter un script dans /etc/init.d avec un entête indiquant qu’avant toute chose il faut exécuter ce script avant de finir et tu le mets en dependance de umountroot par exemple. Ce serait propre, faccile à faire, et indépendant de ton gestionnaire. Mais le backup n’a lieu qu’à l’extinction de la machine.


Ça me donne :

[code]#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
                            [ Lecture de 27 lignes ]
^G Aide      ^O Écrire    ^R Lire fich.^Y Page préc.^K Couper    ^C Pos. cur.
^X Quitter   ^J Justifier ^W Chercher  ^V Page suiv.^U Coller    ^T Orthograp.
[/code]

Ça me donne :

[code]#

This file MUST be edited with the ‘visudo’ command as root.

Please consider adding local content in /etc/sudoers.d/ instead of

directly modifying this file.

See the man page for details on how to write a sudoers file.

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

Host alias specification

User alias specification

Cmnd alias specification

User privilege specification

root ALL=(ALL:ALL) ALL
[ Lecture de 27 lignes ]
^G Aide ^O Écrire ^R Lire fich.^Y Page préc.^K Couper ^C Pos. cur.
^X Quitter ^J Justifier ^W Chercher ^V Page suiv.^U Coller ^T Orthograp.
[/code]

Donc dans le visudo tu ajoutes la ligne que j’ai mise plus haut.
Ensuite tu crées un petit fichier script.sh dans ton home.
Dedans tu mets :

#!/bin/sh rsync /chemin/vers/dossier à sauvegarder /chemin/vers/dossier de sauvegarde sudo /sbin/shutdown now -h

(avec les options éventuelles pour [mono]rsync[/mono] (man rsync))

Tu rends le fichier exécutable (chmod +x ou par la voie graphique).

Ensuite dans ton Obmenu tu ajoutes une entré "Éteindre"
dans laquelle tu mets sur la ligne execute :

Pour ma part j’affiche ça dans un terminal d’où la commande [mono]xfce4-terminal -e[/mono].

Il t’a dit qu’il n’était pas sous xfce, il faut remplacer xfce4-terminal par xterm.

Voui il met bien le terminal qu’il préfère pour ma part sous openbox j’utilise aussi
bien xfce4-terminal que yakuake.

Exact, j’ai regardé des dépendances spécifiques à xfce, il n’yen a pas. C’est vraiment bien xfce!

J’appuie cette suggestion : c’est à ça que servent les scripts d’init, et cette méthode a l’avantage de ne pas dépendre d’un environnement de bureau particulier.
Mieux : elle fonctionnera même en l’absence de lancement d’une éventuelle session graphique.

Toutes les autres méthodes proposées ici font un peu “bricolage” en comparaison :mrgreen:

J’appuie cette suggestion : c’est à ça que servent les scripts d’init, et cette méthode a l’avantage de ne pas dépendre d’un environnement de bureau particulier.
Mieux : elle fonctionnera même en l’absence de lancement d’une éventuelle session graphique.

Toutes les autres méthodes proposées ici font un peu “bricolage” en comparaison :mrgreen:[/quote]

Pour ma part mon bricolage fonctionne. Mettre le script dans /etc/rc0.d n’a jamais fonctionné.
Et pourtant j’y ai passé du temps. C’est très mal documenté.