Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#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.


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

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

Haut de page ↑