Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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 16/05/2013, à 17:53

rom5ain

[Résolu] Afficher un message indiquant l'heure toutes les heures

Bonjour,
j'aurais aimé savoir s'il était possible de créer un message qui s'afficherait toutes les heures en indiquant à chaque fois l'heure.
Par exemple, à 17h00, un message s'affiche indiquant qu'il est 17h00, de même à 18h00, etc.
J'ai vu qu'il y a un moyen d'afficher un message toutes les heures en mettant un fichier dans système de fichiers/etc/cron.hourly. Mais je voudrais pousser le truc plus loin en y ajoutant l'heure précise.

Le type de message est celui des notifications habituelles, comme quand on entre notify-send "17h53" dans un terminal

Dernière modification par rom5ain (Le 17/05/2013, à 12:17)


Acer aspire one etc. etc.
Config. Portable Toshiba NB10T-A-102
Dual Boot Windows 8.1 - Ubuntu 16.04 LTS
Processeur : Intel Pentium CPU N3510 @ 1.99GHz × 4 - 64 bits - Carte graphique : Intel Bay Trail

Hors ligne

#2 Le 16/05/2013, à 20:46

tiramiseb

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Vu que c'est plutôt un truc utilisateur, c'est à mettre dans ta crontab utilisateur (que tu édites avec la commande "crontab -e") et non dans une crontab système (ce qu'est cron.hourly).
De plus, les scripts du répertoire cron.hourly sont exécutés successivement à partir de la 17me minute de chaque heure : ce ne serait donc pas à l'heure précise.

Donc, après avoir ouvert l'édition de ta crontab utilisateur avec "crontab -e", tu peux y mettre la chose suivante :

0 * * * * notify-send $(date +%H:%M)

Hors ligne

#3 Le 16/05/2013, à 23:25

rom5ain

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Merci tiramiseb pour ta réponse. Je ne m'attendais pas à en  avoir aussi rapidement.
Mais j'aimerais avoir quelques informations supplémentaires.
Quand je fais "crontab -e" dans mon terminal, j'ai ça :

0ifvPvo.png

Alors où dois-je copier cette ligne de commande 0 * * * * notify-send $(date +%H:%M) pour qu'elle fonctionne ? Parce que j'ai déjà essayé mais ça ne donne rien.
Et comment enregistrer correctement après avoir édité crontab ?

Dernière modification par rom5ain (Le 17/05/2013, à 19:21)


Acer aspire one etc. etc.
Config. Portable Toshiba NB10T-A-102
Dual Boot Windows 8.1 - Ubuntu 16.04 LTS
Processeur : Intel Pentium CPU N3510 @ 1.99GHz × 4 - 64 bits - Carte graphique : Intel Bay Trail

Hors ligne

#4 Le 17/05/2013, à 00:16

ytreza

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Bonjour !
Si tu as du mal avec crontab, essayes l'outil Schedule de Gnome (disponible dans les dépôts Ubuntu), beaucoup plus facile à prendre en main : apt://gnome-schedule

Hors ligne

#5 Le 17/05/2013, à 08:23

jpdipsy

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

rom5ain a écrit :

Alors où dois-je copier cette ligne de commande 0 * * * * notify-send $(date +%H:%M) pour qu'elle fonctionne ? Parce que j'ai déjà essayé mais ça ne donne rien.
Et comment enregistrer correctement après avoir édité crontab ?

1. Tu crée un fichier nommé message.sh (par exemple) et tu y met :

#!/bin/bash

notify-send $(date +%H:%M)

2 tu le met ou tu veut dans ton rep perso (~/bin par exemple)
3 tu rend le fichier executable chmod +x ~/bin/message.sh
edition du crontab crontab -e

ajouter à la fin du crontab
0 * * * * export DISPLAY=:0;/home/tonidentif/bin/message.sh

enregistrer et quitter.

cron à toujours besoin du chemin complet du fichier à lancer et envoyer le résultat vers le serveur X  export DISPLAY=:0

bonne journée

Dernière modification par jpdipsy (Le 17/05/2013, à 08:59)

Hors ligne

#6 Le 17/05/2013, à 08:27

tiramiseb

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Salut,

La méthode de jpdipsy est inutilement compliquée, je pense.
A priori il n'y a pas besoin de faire un script, tu peux bel et bien mettre la commande directement dans le crontab.
Par ailleurs, pour la variable DISPLAY j'avais testé mais mal testé, en effet elle est nécessaire. Mais il n'y a pas besoin de faire un export.

Je propose donc la ligne suivante dans le crontab (édité avec "crontab -e") :

0 * * * * DISPLAY=:0 /usr/bin/notify-send `/bin/date +%H:%M`

Tu peux ajouter cette ligne n'importe où dans ce fichier, idéalement à la fin pour que ce soit prope.

Pour enregistrer et quitter avec Nano, tu fais Ctrl-O puis Ctrl-X, comme c'est indiqué au bas de l'écran ("^" signifie "Ctrl").

Hors ligne

#7 Le 17/05/2013, à 12:16

rom5ain

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

C'est bon ça fonctionne smile. Merci beaucoup.
J'ai mis toutes les lignes de commandes que vous m'aviez proposé dans mon crontab donc je ne sais pas vraiment laquelle est la bonne.
Mais je pense que c'est la méthode de jpdipsy qui à l'air d'être la plus efficace.


Acer aspire one etc. etc.
Config. Portable Toshiba NB10T-A-102
Dual Boot Windows 8.1 - Ubuntu 16.04 LTS
Processeur : Intel Pentium CPU N3510 @ 1.99GHz × 4 - 64 bits - Carte graphique : Intel Bay Trail

Hors ligne

#8 Le 20/05/2013, à 23:03

Sciensous

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

tiramiseb a écrit :

Salut,

La méthode de jpdipsy est inutilement compliquée, je pense.
A priori il n'y a pas besoin de faire un script, tu peux bel et bien mettre la commande directement dans le crontab.
Par ailleurs, pour la variable DISPLAY j'avais testé mais mal testé, en effet elle est nécessaire. Mais il n'y a pas besoin de faire un export.

Je propose donc la ligne suivante dans le crontab (édité avec "crontab -e") :

0 * * * * DISPLAY=:0 /usr/bin/notify-send `/bin/date +%H:%M`

Tu peux ajouter cette ligne n'importe où dans ce fichier, idéalement à la fin pour que ce soit prope.

Pour enregistrer et quitter avec Nano, tu fais Ctrl-O puis Ctrl-X, comme c'est indiqué au bas de l'écran ("^" signifie "Ctrl").

Le soucis c'est que notify-send avec du texte "normal" fonctionne dans ce cas; mais pas avec un retour de commande comme `date ...`    Mais je ne sais pas pourquoi
Du coup, passage en script externe ; dommage


antiX 19 (Debian Buster) et (L)Ubuntu focal 20.04
( sous LXDE et gnome-shell )

Hors ligne

#9 Le 18/05/2021, à 16:03

rom5ain

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Bonjour,
bon bah ça ne fonctionne plus...
Quelqu'un sait pourquoi ? Est-ce à cause de l'abandon d'Unity ?
Je suis pourtant toujours sous la même version de Linux hmm


Acer aspire one etc. etc.
Config. Portable Toshiba NB10T-A-102
Dual Boot Windows 8.1 - Ubuntu 16.04 LTS
Processeur : Intel Pentium CPU N3510 @ 1.99GHz × 4 - 64 bits - Carte graphique : Intel Bay Trail

Hors ligne

#10 Le 18/05/2021, à 17:19

MicP

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Bonjour

La crontab qui fonctionne sur ma machine
pour afficher l'heure toutes les minutes :

michel@debsid:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

DISPLAY=:0.0
XDG_RUNTIME_DIR=/run/user/1000

* * * * * notify-send $(date +\%H:\%M)

michel@debsid:~$ 

Dernière modification par MicP (Le 20/05/2021, à 14:12)


Retour utilisable de commande
2.d  Le prompt final : permet de s'assurer que la commande est allée à son terme, permet de s'assurer que le retour de commande a été copié/collé dans son intégralité et fournit dans certains cas d'autres informations très importantes.
voir le message #42

Hors ligne

#11 Le 18/05/2021, à 20:58

rom5ain

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

D'accord. Du coup, à quoi correspondent les premières lignes

DISPLAY=:0.0
XDG_RUNTIME_DIR=/run/user/1000

Dernière modification par rom5ain (Le 18/05/2021, à 20:59)


Acer aspire one etc. etc.
Config. Portable Toshiba NB10T-A-102
Dual Boot Windows 8.1 - Ubuntu 16.04 LTS
Processeur : Intel Pentium CPU N3510 @ 1.99GHz × 4 - 64 bits - Carte graphique : Intel Bay Trail

Hors ligne

#12 Le 19/05/2021, à 03:52

MicP

Re : [Résolu] Afficher un message indiquant l'heure toutes les heures

Ce sont des variables d'environnement dont le programme notify-send a besoin pour son exécution.
1000 correspond à l'ID du compte utilisateur

Dernière modification par MicP (Le 19/05/2021, à 03:53)


Retour utilisable de commande
2.d  Le prompt final : permet de s'assurer que la commande est allée à son terme, permet de s'assurer que le retour de commande a été copié/collé dans son intégralité et fournit dans certains cas d'autres informations très importantes.
voir le message #42

Hors ligne