IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

RedHat / CentOS / Fedora Discussion :

Lancer automatiquement un script en runlevel 1 (après une commande "init 1")


Sujet :

RedHat / CentOS / Fedora

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut Lancer automatiquement un script en runlevel 1 (après une commande "init 1")
    Bonjour,

    Je cherche à lancer automatiquement un script après que le système soit passé en runlevel 1
    (après une commande "init 1" qui passe le système en mode "maintenance mono-utilisateur")

    Ce script fait une sauvegarde de /dev/sda, puis fait un init 5 pour faire revenir le système en mode "normal".

    Solutions envisagées et testées:
    1) Lancer le script depuis le fichier /etc/rc.local
    mais rc.local n'est pas exécuté en runlevel 1

    2) Ajouter la ligne suivante au fichier /etc/inittab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sauv:1:once:/bin/sh /root/sauve/sh
    mais rien ne se passe

    3) créer un service S99sauve uniquement en /etc/rc1.d
    (service créé avec la commande )
    Là, le script fonctionne une fois, puis la fois suivante le système reste bloqué en runlevel 1
    Peut-être parce que le retour en runlevel 5 se fait avant que le runlevel 1 ait terminé de s'initialiser ?

    Si quelqu'un a une idée lumineuse, ça serait super sympa ?

    Pour info, système utilisé: Red Hat 4.7

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    ton starteur dans rcX.d doit être un lien vers un script dans init.d capable de lire les parametres start et stop à minima

    tu as respecté ça ? ou tu a ecris direct ton script dans rc1.d/ ?

    enfin si ton script doit tourner en 1,3 et 5 il te faut un lien de starter dans chacun. des runlevel concernés. (et un kill dans 0 et 6) bien sur ....

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    Bonjour frp31,

    Voila ce que j'ai fait...

    1) j'ai créer le fichier "sauvegarde_disque" dans "/etc/rc.d/init.d/" qui contient les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/sh
    # Sauvegarde disque
    #
    # chkconfig: 1 99 1
    # description: Lance le script de sauvegarde disque
     
    prog="sauvegarde_disque"
     
    start() {
        echo "Exécution de la sauvegarde"
        dd if=/dev/sdc conv=notrunc,noerror bs=4M | gzip -c > /Sauvegardes/Disques/localhost/sauvegarde.dev_sdc.`date +%Y-%m-%d.%Hh%Mm%S`.img.gz
        echo "Redemarrage du serveur..."
        init 5
    }
     
    case "$1" in
            start)
                start
                ;;
            stop)
                # Ne rien faire
                ;;
            *)
    #           echo $"Usage: $0 {start|stop|restart|condrestart|status}"
              echo $"Usage: $0 {start}"
                exit 1
    esac
     
    exit $RETVAL
    2) j'ai passé la commande: chkconfig --add sauvegarde_disque
    qui m'a créé le lien "S99sauvegarde_disque" dans "/etc/rc.d/rc1.d/"

    3) et enfin pour tester j'ai mis un "init 1" dans la crontab toutes les 2 minutes comme suit
    0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * root /sbin/init 1
    (le disque sauvegardé, /dev/sdc, est vide donc la commande "dd" prend moins d'une minute)

    et curieusement ca fonctionne 2,3 ou 5 fois, c'est variable, puis la machine reste bloquée en mode mono-utilisateur ???
    Je ne comprends pas pourquoi

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    Voici ce que j'ai quand la machine reste bloquée en mode mono-utilisateur

    Nom : Résultat.jpg
Affichages : 657
Taille : 51,3 Ko

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    un init en crontab ? il peut tourner qu'une fois ca n'a pas d'interet

    ducoup tu est en single user ce qui est donc normal et attendu comme résultat.

    init 5 ou init 3 te ramenera au bon runlevel.

    tes init = arrete/relancer tous les services concernés et comme tu lances ça des dizaines de fois y'a des truc qui ont pas le temps de démarrer/se tuer et tu finis par saturer et tu reste bloquer en init1 c'est tout.

    vires ça de ta cron ... c'est la sauvegarde que tu lances en cron et pas les init
    rien a voir entre les deux

    c'est ça que tu avais pas compris je suppose.


    l'init c'est un autostart unitaire par runlevel (et auto kill)

    le cron c'est un scheduler.....

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    Citation Envoyé par frp31 Voir le message
    un init en crontab ? il peut tourner qu'une fois ca n'a pas d'interet

    ducoup tu est en single user ce qui est donc normal et attendu comme résultat.

    init 5 ou init 3 te ramenera au bon runlevel.
    Oui, c'est bien pour ça que dans le service S99sauvegarde_disque, qui est lancé automatiquement après le passage en runlevel 1,
    J’ai mis un init 5, juste après la commande de sauvegarde, de façon à ce que le système revienne en runlevel 5

    Citation Envoyé par frp31 Voir le message
    tes init = arrete/relancer tous les services concernés et comme tu lances ça des dizaines de fois y'a des truc qui ont pas le temps de démarrer/se tuer et tu finis par saturer et tu reste bloquer en init1 c'est tout.
    Tu as peut être raison, 2 minutes c'est peut-être un peu court. Je vais essayer avec 1 heure voir si le problème persiste.

    Citation Envoyé par frp31 Voir le message
    vires ça de ta cron ... c'est la sauvegarde que tu lances en cron et pas les init
    rien a voir entre les deux

    c'est ça que tu avais pas compris je suppose.


    l'init c'est un autostart unitaire par runlevel (et auto kill)

    le cron c'est un scheduler.....
    Comme tu as pu le voir, la commande de sauvegarde est une commande "dd" (dd if=/dev/sdc...) donc une sauvegarde de blocs et non pas de fichiers.

    Le disque de la machine finale qui est en exploitation (pour l'instant je test ca sur une machine virtuelle) fait 300 Go, et ca prend bien sur plusieurs heures à sauvegarder.

    S'il y a une multitude de processus qui tournent pendant la sauvegarde, certains blocs du disque vont être modifiés entre le début et la fin de la sauvegarde, et ma sauvegarde sera défectueuse.

    C'est bien pour ça que je veux passer en runlevel 1 pour arrêter le maximum de processus et ainsi éviter des modifications de blocs pendant la sauvegarde.

    En résumé, le but final est:
    - de faire un int 1 pour arrêter le maximum de processus
    - d'effectuer la sauvegarde du disque /dev/sdx avec la commande dd
    - de faire un init 5 pour retourner à la normale
    et le tout, lancé automatiquement une fois par semaine, donc par un cron.

    Bon je vais réessayer en passant le délais de 2 minutes à 1 heure, mais je n'y crois pas trop.

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/11/2013, 10h21
  2. Espace après une commande définie
    Par oc_alex86 dans le forum Débuter
    Réponses: 14
    Dernier message: 10/08/2010, 19h57
  3. Fichier .bat qui s'arrête après une commande
    Par VinnieMc dans le forum Administration
    Réponses: 6
    Dernier message: 28/08/2008, 18h17
  4. Réponses: 6
    Dernier message: 19/12/2006, 18h16
  5. comment lancer automatiquement 1 script au lieu d'une action sur un boutton
    Par winnie82 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 13/07/2006, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo