Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

 

 Aide sur script unix

Aller en bas 
3 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 3 Jan - 2:35

Ah oui pas con ca Very Happy

Sinon c'est bon je suis con c'est totu con puisque les deux seul chiffre a me poser probleme sont 58 et 59 Very Happy 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 cheers
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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 Very Happy
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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 Very Happy

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.
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 3 Jan - 5:02

On s'est mal compris je crois Very Happy enfin c'est pas grave ce que je fais fonctionne Wink

J'essayerais de mieux m'expliquer la prochaine fois, en tout cas, merci a toi cheers cheers
Revenir en haut Aller en bas
Klimero
Débutant
Débutant



Nombre de messages : 9
Date d'inscription : 26/05/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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"
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 3 Jan - 5:08

exover a écrit:
On s'est mal compris je crois Very Happy enfin c'est pas grave ce que je fais fonctionne Wink

J'essayerais de mieux m'expliquer la prochaine fois, en tout cas, merci a toi cheers cheers

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.
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 3 Jan - 6:07

Hé ben je savais bien que je ne tarderais pas a revenir Very Happy
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 Very Happy

ca donne:

script
.....
...
.....
su -
commande 1
commande 2
fermeture session root

script
.....
.....


pour info je tourne sous AIX Version 5.2
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 3 Jan - 8:05

klimero a l'air calé, il a peut être une idée pour te sauver.

A+

had5150
Revenir en haut Aller en bas
Klimero
Débutant
Débutant



Nombre de messages : 9
Date d'inscription : 26/05/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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.
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyMer 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é.
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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 Very Happy Very Happy
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 lol!
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 4 Jan - 3:14

Bon je m'en doutais un peu Sad

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 Very Happy
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 4 Jan - 4:03

J'ai trouvé comment faire Wink
expr sur une heure pas sur que ca fonctionne, en recuperant 23h44, je ne pense pas que expr +1 (ou +60) te donnera 00h44 Wink
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 Very Happy

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???
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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
Revenir en haut Aller en bas
exover
Membre très Actif
Membre très Actif



Nombre de messages : 507
Age : 48
Date d'inscription : 11/11/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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???
Revenir en haut Aller en bas
had5150
Modérateur
Modérateur
had5150


Nombre de messages : 1206
Age : 43
Localisation : Paris
Date d'inscription : 25/01/2006

Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix EmptyJeu 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
Revenir en haut Aller en bas
Contenu sponsorisé





Aide sur script unix Empty
MessageSujet: Re: Aide sur script unix   Aide sur script unix Empty

Revenir en haut Aller en bas
 
Aide sur script unix
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: Le Bar-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser