1 votes

Comment ouvrir automatiquement une URL à des moments précis de la journée ?

J'utilise Kubuntu 14.04. J'ai installé cron en utilisant sudo apt-get install cron, et ensuite j'ai créé ce fichier dans IDLE, appelé openurl.py .

#!/usr/bin/env python

import webbrowser

webbrowser.open('http://eample.com')

J'ai ensuite tapé chmod +x openurl.py dans le terminal pour rendre le fichier .py exécutable. Si je tape dans ./openurl.py dans le terminal, le script fonctionne.

ensuite, en utilisant le lanceur d'application kickoff, j'ai cliqué sur paramètres système > planificateur de tâches > nouvelle tâche > puis j'ai recherché le fichier openurl.py, et sélectionné quand je voulais qu'il soit exécuté.

Si je tape crontab -e dans le terminal, ceci s'affiche :

#openurl
21 21 * * *     /home/craig/openurl.py

# File generated by KCron the Thursday 29 Jan 2015 21:20.

Et puis j'attends, et rien ne se passe. Qu'est-ce que je fais de mal ?

4voto

Le problème était déjà résolu aquí .

Changez le cron pour lancer le programme de votre choix Python interpréteur avec le chemin script comme argument :

21 21 * * * /usr/bin/python /home/craig/openurl.py

Rappelez-vous qu'un lien symbolique standard pointera vers la version par défaut de l'interpréteur, ce qui peut ne pas être correct si votre logiciel est basé sur la syntaxe 2.X de Python .
Le site cron démon mai lance l'interprète avec des droits élevés, utiliser un interprète restreint pour les tâches automatisées critiques en matière de sécurité .

エディテージ pour couvrir une plus grande partie des problèmes après la configuration du cronjob :

A suivre en temps réel les travaux fait par cron et d'autres démons du système, s'exécutent dans un terminal :

tail -f /var/log/syslog

または

tailf /var/log/syslog

(sur certains systèmes, le chemin du fichier journal est différent, comme par exemple /var/log/cron.log )

A rediriger la SORTIE d'une tâche cron , insérez une redirection Shell pour STDOUT dans le fichier cronjob, comme :

21 21 * * * /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log

Dans un Python script une commande comme print('TEST') ajoutera la chaîne de caractères TEST a test.log ; tout sous-processus simple sera également redirigé.
Il suffit de vérifier le fichier pour savoir si le script fonctionne comme prévu.

N'hésitez pas à commenter ici si vous avez d'autres questions et n'oubliez pas d'appuyer sur la flèche UP de gauche et de marquer comme favori si je vous aide.

Passez une bonne journée.

1voto

AtilioA Points 115

J'ai rencontré le même problème que vous. Votre travail peut échouer parce qu'il nécessite une Session X puisque vous essayez d'ouvrir un navigateur web. Vous devriez mettre export DISPLAY=:0; après l'horaire dans votre cronjob, comme dans

21 21 * * * export DISPLAY=:0; /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log

 python3 /home/fin/Labs/my-cheatcodes/src/dsktp_startup_script/dsktp_startup_script.py > capture_report.txt

Si cela ne fonctionne pas, vous pourriez essayer de remplacer :0 avec la sortie de echo $DISPLAY dans un terminal graphique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X