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

Shell et commandes GNU Discussion :

Exécuter un code chaque 15 min en sh


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 20
    Par défaut Exécuter un code chaque 15 min en sh
    Bonjour ,
    s'il vous plait j'aimerai avoir un programme qui exécute le code chaque 15 min en sh

    merci par avance



    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
    i=11
    clear
    echo " " > ping.log
    while [ "$i" != 63  ]
    do
        echo "scan $i"
        output=`cat list.txt | grep "$i" | cut -d "=" -f 2 ` > cmp
        output=`cat list.txt | grep "$i=170" | cut -d "=" -f 2 `
        name=`cat list.txt | grep "$i:" | cut -d ":" -f 2 `
        a=$(grep -o "170." cmp | wc -l)
        echo "$a:$name"
        ping -c 4 "$output" > /dev/null
        if [ $? -eq 0 ];
        then
            sshpass -p CitrecKbii ssh -o StrictHostKeyChecking=no "$output" '{
                hostname
                echo -n "1;"  > file.txt
                # ping pointeuse
                sshpass -p 'CitrecKbii' scp file.txt root@170.164:/root
            }'
            d=$(date +"%d/%m/%y;%T")
            echo -n $d >> ping.log
            echo -n ";$output;" >> ping.log
            cat file.txt >> ping.log
        else
            echo  "$output;0" >> ping.txt
        fi
        i=$(($i + 1))
    done

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je vois au moins 2 solutions :
    • Tu mets un appel à ton script dans la crontab de ton utilisateur
    • Tu mets une boucle infinie dans ton script, avec un sleep 900 à la fin de la boucle
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 20
    Par défaut
    merci ça marcha par la 2éme solution , mais les ancien données dans le fichier d'enregistrement des résultats s’écrase par les nouveau données d'ou je veut garder l'historique aussi

    merci a vous ,

  4. #4
    Membre confirmé
    Homme Profil pro
    Etudiant presque sérieux
    Inscrit en
    Novembre 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Etudiant presque sérieux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 15
    Par défaut
    Bonjour,

    Pour corriger ce "problème" remplace le > par >>. En effet > écrase le contenu du fichier alors que >> écrit à la suite.
    De plus je te conseille de plutôt utiliser la crontab qui est faite pour ça, comme ça tu n'aura pas a relancer ton script à chaque redémarrage

  5. #5
    Membre confirmé
    Homme Profil pro
    Apprentis
    Inscrit en
    Avril 2017
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Apprentis

    Informations forums :
    Inscription : Avril 2017
    Messages : 73
    Par défaut
    Pour exécuter le fichier sh toutes les 15 minute j'utilise la commande suivante a mettre dans le fichier crontab
    15 * * * * ./tonfichier.sh
    je te conseille de mettre un killall toutes les demi heure car la commande reste en mémoire avec crontab ( personnellement sa me le fait ).

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par callele50 Voir le message
    Pour exécuter le fichier sh toutes les 15 minute j'utilise la commande suivante a mettre dans le fichier crontab
    15 * * * * ./tonfichier.sh
    Non, ça exécutera la commande toutes les heures, à 0h15, 1h15, 2h15, 3h15, etc.

    Pour exécuter une commande toutes les 15 minutes, on peut utiliser cette entrée crontab :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0,15,30,45 * * * * /path/vers/tonfichier.sh
    ou plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */15 * * * * /path/vers/tonfichier.sh

Discussions similaires

  1. [XL-2016] Exécuter un code sur chaque feuille de mon classeur
    Par ghaniB dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/01/2017, 14h30
  2. Réponses: 6
    Dernier message: 20/11/2008, 11h16
  3. Réponses: 44
    Dernier message: 02/08/2006, 16h12
  4. Réponses: 3
    Dernier message: 20/04/2005, 12h30
  5. Réponses: 7
    Dernier message: 03/02/2005, 17h20

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