Lancer un script de Backup

Bonjour,

Je cherche à lancer un script perl juste avant le démarrage de gdm. (j’aimerais aussi qu’il ne se relance pas quand on fait ctrl + alt+ retour). Je cherche aussi à lancer un second script lors de l’arrêt du l’ordinateur.

Je suis sous ubuntu 6.10.
Edité le 25/11/2009 à 21:57

Lors du démarrage du PC, le script télécharge une archive tar.gz sur un serveur ftp. Cette archive contient une partie de mon dossier home, le script la décompresse dans mon home pour le mettre à jour.

Lors de l’extinction du pc, un second script s’occupe de mettre à jour le tar.gz du serveur ftp. L’archive pèse environ 100 ko.


Edité le 25/11/2009 à 21:57

Copie tes scripts dans /etc/init.d

Pour le premier, il faut d’abord que tu vérifies dans /etc/rc2.d le numéro donné à gdm (le lien est du type Sxxgdm je pense, je suis sous Kubuntu donc c’est S13kdm).
Ensuite, tu tapes
sudo update-rc.d nomdetonscript start 12 2 3 4 5 .
(12 parce que c’est inférieur à 13, à adapter à ton cas).

pour le deuxième script, tu tapes
sudo update-rc.d nomdetonscript stop 20 0 1 6 .

PS : bizarre d’utiliser perl pour ne faire que des print et des system :ane:

je vois que tu utilises rsync pour creer ton archive. savais tu que rsync peut fonctionner en reseau directement ? pas specialement besoin de ftp… ssh serait bien meilleur (et plus securise)

c’est clair qu’utiliser perl pour faire de la commande shell, c’est gaspiller des ressources

met tout dans un script bash et ca ira bien :wink:

pour connaitre ton niveau de démarrage, tu peut regarder dans le fichier inittab :
grep default /etc/inittab

souvent, c’est rc2.d qui démarre

5 plutot non ? en tout cas, c’est la tradition pour un demarrage en mode graphique

Ça m’avait surpris aussi mais sous (k)ubuntu c’est 2 par défaut, et il n’y a aucune différence fondamentale entre 2, 3, 4 et 5 (exactement les mêmes liens dans les /etc/rc[2345].d )

mode graphique sur un serveur ? connais pas :stuck_out_tongue:

et les linux basé sur debian démarre en rc2 meme en mode graphique

oui c’est clair.
C’est pour ca que je parle de tradition.
C’est quand meme dommage que ces modes ne soient pas plus differencies et utilises.

dingue, depuis le temps que je l’utilise, je m’en etait meme pas rendu compte :ouch:

Tu es inculte. Citons: xdmcp, VLC, etc.

Ça fonctionne, merci Asbel.

J’aurais bien fait un script shell, mais je ne sais pas faire.
En ce qui concerne les prints, effectivement ça ne sert à rien donc j’ai tout viré.

Je suis un peu naz ce soir, alors je me suis planté dans le nom du script avec la commande : sudo update-rc.d save.pl start 12 2 3 4 5 . (sa doit être restaure.pl au démarrage)

Ensuite j’ai fait sudo update-rc.d restaure.pl remove
Est ce que ça a annulé ma connerie ? (je pense que oui)

c’est tout pareil sauf qu’a la place de ca :

#!/usr/bin/perl

y’a :

#!/bin/bash

et t’enleve tout le perl pour ne garder que les commandes :smiley:
les if c’est comme ca en shell :

if blabla eq qqch then gnagna fi

va voir dans /etc/rcxx.d si les liens vers tes scripts ont bien ete vires…

Pour la suppression c’est ok, par contre pour le bash :confused: , j’ai un peu de mal pour le script de restauration…

t’as un if qui est pas bon…
trouve un mini tuto pour la syntaxe bash, c’est tres facile… surtout pour les successions de commandes sans reelle intelligence derriere

Ok pour cela c’est bon.

Cependant j’arrive pas à faire un truc :

  • Lors de la sauvegarde j’envoie le fichier sauvegarde.tar.gz et sa somme de contrôle md5 dans un fichier texte nommé md5.txt sur le serveur.
  • Lors de la restauration, je télécharge ces deux fichiers et je refait la somme de contrôle du fichier sauvegarde.tar.gz.

Ensuite je ne sais pas comment faire pour comparer la somme md5 du fichier sauvegarde.tar.gz avec celle qui se trouve dan le fichier md5.txt

admettons que le fichier qui contient déjà l’empreinte md5 s’apelle md5.fich1

tu recalcule l’empreinte dans un nouveau fichier :

md5sum [fichier] > md5.fich2

et tu fais un diff entre les deux

diff md5.fich1 md5.fich2

et tu récupère la valeur de retour de diff

echo $?

si la valeur de retour est égale a 1, c’est que les deux fichiers ne sont pas égaux, si c’est 0 alors les deux fichiers sont égaux

fais attention au nom du fichier que tu test car dans ton fichier d’empreinte tu as également le nom du fichier qui est hashé, si ce nom change entre 2 calcul il te dira que les empreinte ne sont pas égale… alors que c’est juste le nom du fichier qui change

Merci à vous deux dg-switcher et KP2 :jap: :jap: :jap:

Me suis déjà fait avoir :wink: :confused:

Tu devrais mettre un peu plus de variables pour les noms de fichiers…
car si tu veux changer, tu devras modifier toutes les lignes ou presque et tu risques non seulement de perdre du temps mais aussi de louper des references.

Et si je peux me permettre de nouveau : je suis un maniaque des tests. Je teste chaque resultat de commande en general. Vu que tu remplaces pas mal de fichiers, il serait bon que tu geres un peu les erreurs qui peuvent se produire et eventuellement arreter le script ou restaurer une sauvegarde faite juste avant le dl (et generer un avertissement bien sur). Ca t’eviterais des soucis…

Pour les noms de fichier, peu de chance que je change et si je change je modifierai le script.
Que proposerais-tu comme vérifications supplémentaires ?