Je cherche un moyen simple de déterminer la quantité approximative de temps que je passe par jour sur un ordinateur. Cela peut être une tâche difficile si vous essayez de surveiller les processus, les pressions de touches, les clics de souris, etc. chien. L'ordinateur ne peut pas lire dans mes pensées. Puisque je laisse des ordinateurs sur 24/7, la surveillance des connexions ne fonctionnera pas.
J'ai eu l'idée d'enregistrer le temps que l'ordinateur passe en mode économiseur d'écran. Mon erreur ne serait alors pas supérieure au produit du temps d'inactivité de l'économiseur d'écran avec le nombre de fois qu'il passe en mode économiseur d'écran. La soustraction de 24 heures me donnerait une estimation raisonnable pour mes besoins.
Le problème est: je ne sais pas comment me connecter lorsque l'économiseur d'écran s'allume et s'éteint. J'utilise Ubuntu 10.10 en ce moment sur la plupart des machines, sur le point de commencer la mise à niveau vers 11.04 sur certaines d'entre elles.
Des idées?
[modifier] Après plus de recherche sur Google, je suis tombé sur le moniteur dbus qui semblait fonctionner, mais il manque un ingrédient important. Voici le script que j'exécute qui lance le moniteur en tant que démon:
#!/bin/bash
RUNNING=`ps -A | grep "dbus-monitor"`
if [ ! $RUNNING ]; then
echo "(Re)starting dbus-monitor daemon"
nohup dbus-monitor "--profile" "type='signal',interface='org.gnome.ScreenSaver'" >> ${HOME}/sc.log &
fi
Voici la sortie qu'il produit après avoir verrouillé et déverrouillé l'écran plusieurs fois:
sig 1304860712 153829 2 /org/freedesktop/DBus org.freedesktop.DBus NameAcquired
sig 1304860717 318732 462 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304860725 547928 463 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304861018 17 464 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304862919 403523 466 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
La deuxième colonne est évidemment unix UTC en quelques secondes. L'ingrédient manquant est qu'il n'identifie pas si l'économiseur d'écran est activé ou désactivé! Je suppose que je pourrais supposer qu'ils basculent à partir du moment où NameAcquired se produit, mais cela me fait mal à l'idée qu'il pourrait y avoir un événement manquant ou supplémentaire que je ne peux pas prévoir qui pourrait tout désynchroniser.
Très obligé pour les idées.
jkcunningham
la source
Réponses:
Je voudrais remercier et contribuer en retour un script simple et brut (peut être amélioré), le mettre sur les applications de démarrage avec:
c'est aussi un crash / blackout système préparé. Il n'est pas lourdement testé ... mais fonctionne très bien jusqu'à présent. il va créer 2 fichiers, un à $ HOME (le journal) un autre à / tmp (la solution de contournement sys)
logSessionLock.sh
le journal est comme ceci:
la source
Le package " Workrave " permet non seulement de savoir si vous utilisez votre ordinateur et vous aide à prendre des pauses pendant la journée, mais fournit également un bel ensemble de statistiques, à la fois brutes (dans un fichier texte) et via une interface graphique (
Daily usage: 5:41:00 for Jul 21
). Les statistiques incluent également des choses comme les minutes d'utilisation de la souris, la distance de déplacement de la souris, les frappes, etc.Installez-le à partir des dépôts officiels, ajoutez-le à votre barre de menu, faites un clic droit et choisissez "statistiques". Vous obtiendrez un calendrier pour choisir le jour que vous souhaitez connaître. Ou regardez les données dans ~ / .workrave / historystats
la source
Si vous supprimez le --profile, vous obtiendrez un horodatage au format manquant, mais il aura si l'économiseur d'écran est actif ou non.
J'ai utilisé une modification de ce script PHP pour activer ou désactiver des choses basées sur mon économiseur d'écran
L'autre option est d'utiliser
gnome-screensaver-command --query
. En utilisant crontab, je laisse bitcoin utiliser les 4 cœurs lorsque l'économiseur d'écran est actif, mais il n'obtient qu'un seul cœur lorsque j'utilise mon ordinateur.AFFICHAGE: Sans définir DISPLAY, gnome-screensaver-command ne pourra pas trouver l'écran lorsqu'il est exécuté à partir de cron. Cela doit s'exécuter en tant que même utilisateur connecté.
2>&1
: Cela dirige toutes les erreurs dans la sortie standard, qui est capturée par ...| grep -q 'is active';
: le -q rend le grep silencieux, il ne produit rien. Mais la commande renvoie un succès ou un échec utilisé par if.Je me rends compte qu'aucune de ces solutions n'est une solution complète, mais j'espère qu'elles sont suffisantes pour vous aider à démarrer.
la source
Ceci est un script plus complet. Vous pouvez le déclencher depuis cron toutes les minutes et si l'économiseur d'écran est actif, il enregistrera depuis combien de temps il est actif. Une fois désactivé, il prendra la dernière mesure et l'ajoutera à ~ / Screensaver.log. Si vous l'exécutez à partir de cron, il peut être inexact pendant 59 secondes à chaque fois que l'économiseur d'écran se désactive.
la source
date "+%Y %m %d %H %M
echo "$ SS_LAG $ DSTR" >> $ {HTDOCS} /data/work.log fidate "+%Y %m %d %H %M
echo "$ SS_LAG $ DSTR" >> $ {HTDOCS} /data/work.log fi [/ code] Je donne: comment créer un bloc de code dans un commentaire? 4 espaces ne fonctionnent pas.J'utilise la
uptime
commande, mais elle ne donne pas l'heure active / inactive du système. uptime donne un affichage sur une ligne des informations suivantes. L'heure actuelle, la durée de fonctionnement du système, le nombre d'utilisateurs actuellement connectés et les moyennes de charge du système pour les 1, 5 et 15 dernières minutes.la source