#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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne