| Aide sur script unix | |
|
|
|
Auteur | Message |
---|
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Aide sur script unix Mer 3 Jan - 2:08 | |
| Salut tous le monde,
Voila j'aimerais savoir comment faire pour ajouter deux minutes a une heure dans un script unix, je m'explique:
il est 14h50 je lance mon script celui ci executera une tache 2minute plus tard donc a 14h52 dans ce cas. Au départ ca peux paraitre simple mais le probleme se pose pour 58 et 59, en effet pour 14h58 en ajoutant 2 minutes il sera alors 15h00 et 15h01 et non 14h60 et 14h61.
Merci de votre aide | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 2:25 | |
| je ne l'utilise jamais mais je crois que la commande sleep te permettrait de t'affranchir de ce pb.
un truc du genre sleep 120 et le tour est joué...
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 2:35 | |
| Ah oui pas con ca Sinon c'est bon je suis con c'est totu con puisque les deux seul chiffre a me poser probleme sont 58 et 59 j'ai juste a lui precisé via des if que si la valeur min est egale a 58 ou 59 alors la valeur minute est egale a 00 et 01 (58+2 et 59+2) et la valeur heure est +1. Je ne me prend pas la tete pour les heures (23 a 00) puisque ce script ne tournera que pendant les heures de bureaux. Merci a toi | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 2:47 | |
| - exover a écrit:
- ... j'ai juste a lui precisé via des if...
c sûr mais je pense que ma solution est plus simple et t'éviteras d'avoir à écrire un script trop long !!! dis-moi quand même si ça marche, histoire que si un jour j'en ai besoin... je suis pas un expert mais j'ai écris pas mal de scripts pour me simplifier la vie alors n'hésites pas si tu as besoin, je me débrouille pas mal en awk, sed, grep & Cie. A+ had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 3:01 | |
| Ben en faites ta solution est bonne sauf que dans mon cas elle ne me va pas car j'ai besoin de recuperer les heures et les minutes qui me serviront de variable. En faites je dois indiquer une heure et des minutes pour le lancement d'un autre script: exemple il est 14h50, ma commande doit lancer: FMAJ HH:MM:SS ou HH sont les heures, MM les minutes et SS les secondes. Le sleep 120 ne fera que lancer la commande FMAJ dans 120 secondes alors qu'il me faut les variable heures et minute actuelle +2 minutes. je sais pas si je suis bine claire | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 3:16 | |
| l'heure tu la récupère avec la commande date et tu peux l'insérer en tant que variable sans la connaître initialement.
par exemple chez moi "date" donne :
mer jan 3 11:17:15 UTC 2007
tu peux garder uniquement l'heure en uilisant un filtre awk par exemple :
date | awk '{printf("%s\n",$4);}'
qui donne : 11:17:15
après c'est facile de le définir en tant que variable avec :
set j = `date | awk '{printf("%s\n",$4);}'`
après tu appelles ta commande de cette manière : FMAJ $j
du coup tu met le sleep la ligne juste avant et le tour est joué.
un truc de ce genre devrait marcher je pense.
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 3:53 | |
| heu...ben en faites non, ma commande est lancé a 11h15 mais s'executera a 11h17, ca c'est ce que je veux. La avec le sleep j'aurais effectivement lancé ma commande a 11h15 mais ca s'executera egalement a 11h15 puisque j'aurais dans ma commande: FMAJ 11h15 or je veux FMAJ 11h17 Mes explications ne sont pas super claire c'est en faites il faut que dans la variable donné a FMAJ le temps soit a +2minutes, FMAJ etant une commande elle s'executera a 11h15 mais lancera sa MAJ a 11h17. | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 4:02 | |
| bizarre ton truc...
ce que tu peux faire c'est lancer ta commande à 11h15, la mettre en stand-by 2 min avec le sleep puis créer la variable j (il est 11h17) que tu mets ensuite en argument à FMAJ :
... sleep 120 set j = `date | awk '{printf("%s\n",$4);}'` FMAJ $j ...
ou plus directement :
... sleep 120 FMAJ `date | awk '{printf("%s\n",$4);}'` ...
ça devrait marcher je pense.
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 5:02 | |
| On s'est mal compris je crois enfin c'est pas grave ce que je fais fonctionne J'essayerais de mieux m'expliquer la prochaine fois, en tout cas, merci a toi | |
|
| |
Klimero Débutant
Nombre de messages : 9 Date d'inscription : 26/05/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 5:05 | |
| Sinon tu peux utiliser ce petit script :
#!/bin/bash
h=`date +"%H"` m=`date +"%M"`
m=$((m+2)) if [ "$m" -ge "60" ] then m=$((m-60)) h=$((h+1)) if [ "$h" -ge "24" ] then h=$((h-24)) fi fi
if [ "$m" -lt "10" ] then m="0$m" fi
echo "$h:$m" | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 5:08 | |
| - exover a écrit:
- On s'est mal compris je crois enfin c'est pas grave ce que je fais fonctionne
J'essayerais de mieux m'expliquer la prochaine fois, en tout cas, merci a toi ok pas de pb. C sûr que juste par post c pas toujours facile de se comprendre !!! En tout cas, n'hésites pas si tu as un autre pb. A+ had5150 PS : en fait cela t'aurais permis de pouvoir adapter très simplment ton script à une autre utilisation ou selon ton besoin. | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 6:07 | |
| Hé ben je savais bien que je ne tarderais pas a revenir voici mon nouveau probleme, j'ai besoin de me loguer en root a un moment dans mon script, donc j'aimerais faire un su -, qu'il ne me demande pas mon mdp root et qu'il lance deux ptite commande et qu'il referme sa session root ca donne: script ..... ... ..... su - commande 1 commande 2 fermeture session root script ..... ..... pour info je tourne sous AIX Version 5.2 | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 7:04 | |
| ça je sais pas faire et je crois pas qu'on puisse à cause de la sécurité à moins de donner à ton profil les mêmes droits que root.
Pourquoi tu le lances pas dirctement en tant que root ? Après c facile de faire un "su exover" on te demande pas le mdp.
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 7:22 | |
| Oui bien sur, le probleme c'est que c'est pour une entreprise et pour une exploitation, le lancer directement sous root serait donc dangereux.
Bon ben je crois que je suis bloqué alors | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 8:05 | |
| klimero a l'air calé, il a peut être une idée pour te sauver.
A+
had5150 | |
|
| |
Klimero Débutant
Nombre de messages : 9 Date d'inscription : 26/05/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 9:08 | |
| Oups... J'étais parti...
Pour des raisons de sécurités évidentes, il n'est pas possible de faire cela avec su (imaginez qu'un utilisateur lambda soit autorisé à exécuter un script avec les droits root et de modifier ce même script...). La seule solution à ma connaissance est d'utiliser le SUID qui donne les droits du propirétaire du script ou executable (la command passwd utilise cet artifice). Il suffit donc de lancer un deuxième script dont le propriétaire est root et dont les droits sont 4755. Je n'ai jamais eu l'occasion d'utiliser ce mécanisme, mais en tapant suid dans google, tu devrais avoir tous les renseignement que tu cherches. | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Mer 3 Jan - 11:17 | |
| oui oui je me suis déja renseigné mais malheureusement dans la version AIX 5.2 cela doit etre désactivé, je n'ai pas de man sur le sujet, j'ai été sur le site de léa linux malheureusement je n'ai rien compris.
je vais demander la semaine prochaine a mon chef l'instllation de sudo qui permet de fire cela en toute securité. | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 2:29 | |
| Bon en faites il n'y a pas de man vu que l'on réalise l'opération par la commande chmod enfin bon je vais passer sur ca pour le moment, en attendant une installation de sudo ou des droit d'execution sur les commandes. La j'aimerais definir une durée sur une boucle while, je m'explique: script ...... ...... boucle while si durée boucle superieur a une heure, on sort de la boucle avec un message d'avertissement. Bon j'ai evidemment une idée pour réaliser ca mais je me demande si il n'y a pas une commande interne pour le réaliser ou un truc plus simple que mon idée qui est: script ....... ...... heure boucle while dans cette boucle j'ajoute une variable du genre Attente si heure+1 = heure actuelle et que variable attente n'est pas a OK alors on sort sinon on continue, si variable attente = OK alors on sort (cela voudra dire que ma boucle s'est correctement fini). ..... ...... Je me complique certainement la tache la | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 2:57 | |
| connais pas de raccourci...
klimero peut être ?
sinon tu peux diviser ton script en plusieurs. Ton script principal en lance un second qui contient ta boucle et se met en attente avec un sleep. A la fin de cette attente il regarde si ton script-boucle est terminé ou pas (avec un ps -C par exemple) et selon le résultat tu peux ensuite lui faire faire des trucs différents.
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 3:14 | |
| Bon je m'en doutais un peu sinon sais tu comment faire simplement une opération sur les heures? je m'explique j'aimerais faire une exctraction de l'heure, disons 11h12 que je met dans une variable, je creer une seconde variable qui sera a heure +1 (en gros variable2=variable +1). Comment dire a unix de faire ce calcul? sans prise de tete | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 3:56 | |
| set i = `....` set j = `expr $i + 1 `
après ça dépend comment tu récupères l'heure (...) et où tu veux incrémenter mais ce genre de manipulation marche très bien.
A+
had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 4:03 | |
| J'ai trouvé comment faire expr sur une heure pas sur que ca fonctionne, en recuperant 23h44, je ne pense pas que expr +1 (ou +60) te donnera 00h44 j'ai fais un truc tout con : set HEURE=`date|cut -c 12-13` set MIN=`date|cut -c 15-16` TEMPSI=$HEURE$MIN HEURE2=`$HEURE + 1` if [ "$HEURE2" = "24" ] then HEURE2="00" fi TEMPST=$HEURE2$MIN Bon sinon un autre probleme, en faites mon script sera de cette maniere la: script principal (un case) chaque choix du case fera appel a un fichier, en effet il est plus simple de modifier un ptit fichier script, qu'un gros fichier script Mais comment fait on pour avoir une variable externe?? c'est a dire, mon script s'execute, je rempli des variable, mon script se termine, mon script 2 s'execute mais a besoin de certaine variable du script1, comment les recuperer??? | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 5:08 | |
| - exover a écrit:
- Mais comment fait on pour avoir une variable externe??
c'est a dire, mon script s'execute, je rempli des variable, mon script se termine, mon script 2 s'execute mais a besoin de certaine variable du script1, comment les recuperer??? avec setenv ? A+ had5150 | |
|
| |
exover Membre très Actif
Nombre de messages : 507 Age : 48 Date d'inscription : 11/11/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 5:55 | |
| setenv AIX connais pas mais apparement c'est pareil que export VARIABLE=truc
Seulement si je fais un echo de ma variable en prompt il ne trouve rien, normal??? | |
|
| |
had5150 Modérateur
Nombre de messages : 1206 Age : 44 Localisation : Paris Date d'inscription : 25/01/2006
| Sujet: Re: Aide sur script unix Jeu 4 Jan - 6:56 | |
| - exover a écrit:
- Seulement si je fais un echo de ma variable en prompt il ne trouve rien, normal???
bah non... sinon la méthode bourrin c'est tu la fais écrire dans un fichier et après avec ton second script tu la définit comme : set variable = `cat fichier` et tu fais effacer le fichier quand tu n'en as plus besoin et tu peux même le faire en fichiers caché. C'est pas du tout optimal mais ça marche... A+ had5150 | |
|
| |
Contenu sponsorisé
| Sujet: Re: Aide sur script unix | |
| |
|
| |
| Aide sur script unix | |
|