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.

[mono]init0[/mono] est le “runlevel” utilisé par “shutdown”.
Créer un script dans [mono]/etc/rc0.d/[/mono] dont le nom commence par “S00” => [mono]/etc/rc0.d/S00monscript[/mono]

chmod +x /etc/rc0.d/S00monscript          # pour le rendre exécutable
chown root:root /etc/rc0.d/S00monscript   # pour être sûr qu'il appartienne à root et au même groupe.

=========
S’il fallait aussi que ce script soit activé en cas d’utilisation de la commande “reboot”, ajouter un lien (toujours nommé “S00…”) dans [mono]/etc/rc6.d/[/mono] pointant vers ce script.

EDIT:
[mono]S…[/mono] => lance le script avec l’argument “start”
[mono]K…[/mono] => lance le script avec l’argument “stop”

Pigé, mais comment faire un script ? car c’est du chinois pour moi.

Pourrais-tu nous transmettre la ligne “crontab” (et le script appelé qui va avec, si il en a un) qui permet cette copie toutes les trois minutes ?
Avec ces informations, il sera plus facile de créer le script (s’il n’existe pas déjà) pour [mono]/etc/rc0.d/[/mono]

J’ai juste ajouté ça à crontab :

*/1 * * * * root cp /home/crunchbang/.config/alarm-clock/alarms.conf /home/crunchbang/OS/Alarm-Clock/alarms.conf 0 8 * * * root cp /home/crunchbang/.config/google-chrome/Default/Bookmarks /home/crunchbang/OS/Bookmarks */1 * * * * root cp /home/crunchbang/.config/xpad/* /home/crunchbang/OS/Post-it/

Au total, ça donne :

[code]# /etc/crontab: system-wide crontab

Unlike any other crontab you don’t have to run the `crontab’

command to install the new version when you edit this file

and files in /etc/cron.d. These files also have username fields,

that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

m h dom mon dow user command

17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/1 * * * * root cp /home/crunchbang/.config/alarm-clock/alarms.conf /home/crunchbang/OS/Alarm-Clock/alarms.conf
0 8 * * * root cp /home/crunchbang/.config/google-chrome/Default/Bookmarks /home/crunchbang/OS/Bookmarks
/1 * * * * root cp /home/crunchbang/.config/xpad/ /home/crunchbang/OS/Post-it/

[/code]

Merci.

Depuis le compte “root”, dans une fenêtre de terminal, copie/colle les lignes de commandes suivantes (toutes en une seule fois):

echo -e "#\0041/bin/bash\n#\n# Recopie des fichiers alarmes, post-its, et marques-page de GoggleChrome\n#\ncp /home/crunchbang/.config/alarm-clock/alarms.conf /home/crunchbang/OS/Alarm-Clock/alarms.conf cp /home/crunchbang/.config/google-chrome/Default/Bookmarks /home/crunchbang/OS/Bookmarks cp /home/crunchbang/.config/xpad/* /home/crunchbang/OS/Post-it/" >/etc/init.d/cpGoogleAlarmAndOther ln -s /etc/init.d/cpGoogleAlarmAndOther /etc/rc0.d/S00cpGoogleAlarmAndOther echo -e "\n\n####### contenu du fichier pointé par le lien symbolique \"/etc/rc0.d/S00cpGoogleAlarmAndOther\": #######" chmod +x /etc/init.d/cpGoogleAlarmAndOther cat /etc/rc0.d/S00cpGoogleAlarmAndOther

===========
Explications:
la première de ces 3 lignes de commandes est:

echo -e "#\0041/bin/bash\n#\n# Recopie des fichiers alarmes, post-its, et marques-page de GoggleChrome\n#\ncp /home/crunchbang/.config/alarm-clock/alarms.conf /home/crunchbang/OS/Alarm-Clock/alarms.conf cp /home/crunchbang/.config/google-chrome/Default/Bookmarks /home/crunchbang/OS/Bookmarks cp /home/crunchbang/.config/xpad/* /home/crunchbang/OS/Post-it/" > /etc/init.d/

on y trouve la commande [mono]echo[/mono] avec l’option [mono]e[/mono] qui permet d’interpréter les caractères déspécifiés par une contre-oblique.
[mono]\0041[/mono] en est un, et permet de faire afficher un “!”,
[mono]\n[/mono] en sont d’autres qui permettent d’insérer un retour à la ligne.

[mono]#!/bin/bash[/mono] est le shebang de ce script => ce script sera interprété par bash.

Les commandes suivantes sont la copie de celles extraites de crontab:
[mono]cp /home/crunchbang/.config/alarm-clock/alarms.conf /home/crunchbang/OS/Alarm-Clock/alarms.conf
cp /home/crunchbang/.config/google-chrome/Default/Bookmarks /home/crunchbang/OS/Bookmarks
cp /home/crunchbang/.config/xpad/* /home/crunchbang/OS/Post-it/[/mono]

[mono]> /etc/init.d/cpGoogleAlarmAndOther[/mono]
permet de créer le fichier [mono]/etc/init.d/cpGoogleAlarmAndOther[/mono] par une redirection [mono]>[/mono] de la sortie de la commande précédente ([mono]echo[/mono]).

[mono]ln -s /etc/init.d/cpGoogleAlarmAndOther /etc/rc0.d/S00cpGoogleAlarmAndOther[/mono]
[mono]ln -s[/mono] permet de créer le lien symbolique [mono]/etc/rc0.d/S00cpGoogleAlarmAndOther[/mono] qui pointera sur le fichier [mono]/etc/init.d/cpGoogleAlarmAndOther[/mono]

[mono]chmod +x /etc/init.d/cpGoogleAlarmAndOther[/mono]
[mono]chmod +x[/mono] permet de rendre “exécutable” le script (le fichier [mono]/etc/init.d/cpGoogleAlarmAndOther)[/mono]
[mono]cat /etc/rc0.d/S00cpGoogleAlarmAndOther[/mono]
[mono]cat[/mono] permet de visualiser le contenu du fichier pointé par le lien symbolique [mono]/etc/rc0.d/S00cpGoogleAlarmAndOther[/mono]

Bon, Ok, je comprends mieux:
Il y a deux fils avec le même titre et donc je parle dans le vide…

EDIT:
L’autre fil sera plus édifiant concernant ce sujet.
Voir:
/etc/init.d/README
/usr/share/doc/insserv

[quote=“MicP”]Bon, Ok, je comprends mieux:
Il y a deux fils avec le même titre et donc je parle dans le vide…
[/quote]

Non, non, tu ne parles pas dans le vide, c’est juste que dans l’autre fil on m’a conseillé de venir poser la question dans Programmation.

Merci pour ton script, malheureusement ça ne fonctionne pas, K00cpGoogleAlarmAndOther et cpGoogleAlarmAndOther ont bien était créés.

Merci pour le retour, mais j’étais en erreur.

[mono]fran.b[/mono], par contre, a donné une solution qui tiens compte du fait que c’est maintenant [mono]system.d[/mono],
alors que moi, j’avais oublié ce fait très important.
[strike]De plus, je ne suis plus très sûr du [mono]K…[/mono] ou du [mono]S…[/mono][/strike]
EDIT:
Maintenant, je suis sûr (et j’ai recorrigé mes posts de ce fil)
[mono]S…[/mono] lance le script avec l’argument “start”
[mono]K…[/mono] lance le script avec l’argument “stop”

J’ai mis à jours mes posts dans ce fil.(remplacé K par S)

==========
Pour supprimer le script et le lien créé, en root:

==========
fran.b propose un bien meilleure solution, car elle tiens compte de [mono]systemd[/mono], alors que celle que je propose dans ce fil utilise l’ancien système de démarrage de systemV.

Debian utilise actuellement SysV dans sa version stable, Jessie n’est pas encore publiée :wink:

Je ne sais pas ce qu’utilise “crunchbang”, mais vu l’évolution de Sauvegarder avant l’arrêt du PC (dans “support debian”), j’avais cru comprendre être hors sujet.