Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2012, à 16:59

lalounator

rtcwake: time doesn't go backward (sauf pour Doc et Marty)

Bonjour à tous,

j'ai découvert rtcwake et je m'en sers pour faire hiberner ma machine le soir, que je retrouve allumée à 8h du matin lorsque j'arrive au boulot. Plutôt intéressant.

j'ai écrit dans mon bashrc les commandes suivantes:

alias hibernatus="sudo rtcwake -m disk -t `date --date 'tomorrow 08:00:00' +"%s"`"

et dans le cas d'un week-end

alias Wehibernatus="sudo rtcwake -m disk -t `date --date '3 days 08:00:00' +"%s"`"

ca fonctionne bien, tous les soirs (ou les vendredi) je tape hibernatus puis mon mdp root et ca roule.

Cependant, lorsque je l'exécute dans la même fenêtre que la veille, il me dit:
rtcwake: time doesn't go backward to <même jour> 08:00:00 2012
si je tape l'une ou l'autre des commandes dans une nouvelle fenêtre de bash, ca fonctionne bien.

Nom de Zeus ! la commande date --date 'tomorrow 08:00:00' renvoie pourtant bien la date du lendemain, et date --date '3 days 08:00:00' celle de 3 jours plus tard...

auriez-vous une idée s'il vous plait ?

D'avance merci !

lalounator


lalounator

Hors ligne

#2 Le 26/10/2012, à 18:06

Postmortem

Re : rtcwake: time doesn't go backward (sauf pour Doc et Marty)

Salut,
Comme tu le fais, date --date '3 days 08:00:00' est calculé au moment de la création de l'alias :

$ date +%T;alias toto="echo `date +%T`"
18:00:05
# On attend un peu...
$ toto
18:00:05
# Encore un peu...
$ toto
18:00:05

Essaie comme ceci :

alias Wehibernatus='sudo rtcwake -m disk -t $(date --date "3 days 08:00:00" +%s)'

Utiliser des simples quotes empêche l'exécution de date au moment de la création de l'alias.
Sinon, préférer l'utilisation de $(commande) plutôt que `commande`, c'est plus facile à lire et à imbriquer.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 27/10/2012, à 06:20

nesthib

Re : rtcwake: time doesn't go backward (sauf pour Doc et Marty)

Sinon utilise une fonction au lieu d'un alias.

function hibernatus {
delai='tomorrow 08:00:00'
[[ $(date +%u) -gt 5 ]] && delai='3 days 08:00:00'
sudo rtcwake -m disk -t $(date --date ${delai} +"%s")
}

NB. profites-en pour ajouter ta commande rtcwake dans le fichier sudoers si tu ne veux pas avoir à taper ton mot de passe à chaque fois.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 24/11/2012, à 15:17

lalounator

Re : rtcwake: time doesn't go backward (sauf pour Doc et Marty)

Bonjour à tous,

je déterre ce post (que j'avais oublié, mea culpa) pour vous remercier et vous dire que tout a très bien fonctionné ! (et en prime, j'ai compris pourquoi :-))

lalounator


lalounator

Hors ligne

#5 Le 24/11/2012, à 18:06

nesthib

Re : rtcwake: time doesn't go backward (sauf pour Doc et Marty)

Merci de ton retour (vers le futur), puisque cela fonctionne, tu peux modifier ton premier message et ajouter [résolu] au début du titre. smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne