Maison >développement back-end >Tutoriel Python >Explication détaillée de l'utilisation de Python crontab pour configurer les tâches planifiées Linux

Explication détaillée de l'utilisation de Python crontab pour configurer les tâches planifiées Linux

高洛峰
高洛峰original
2017-02-10 09:26:331815parcourir

Les amis qui connaissent Linux doivent savoir que vous pouvez utiliser crontab pour configurer des tâches planifiées sous Linux. Vous pouvez écrire des tâches via la commande crontab -e. Bien entendu, vous pouvez également écrire des fichiers de configuration directement pour configurer des tâches.

Mais parfois, nous souhaitons le définir automatiquement via des scripts, par exemple lorsque notre application est déployée. S'il y a un besoin, vous devez bien sûr trouver un moyen de le résoudre, sinon vous vous retrouverez dans le monde des programmeurs (un groupe de singes satisfaits d'eux-mêmes).

Allons droit au but. Je souhaite le configurer en écrivant un fichier. Ajoutez simplement une ligne directement dans le fichier de configuration. Cependant, la lecture et l'écriture de fichiers sont inévitablement un peu lourdes. Un autre exemple est : lors de la définition d'une tâche, vous devez vérifier si la tâche existe déjà en fonction des paramètres d'entrée, etc. Lire et écrire des fichiers est inévitablement inapproprié. J'ai donc pensé au gros python "universel".

Dang Dang, le protagoniste du jour entre en scène : le module python-crontab. Installez directement

$ pip install python-crontab

Vous pouvez facilement configurer des tâches planifiées sur le script

from crontab import CronTab

# 创建当前用户的crontab,当然也可以创建其他用户的,但得有足够权限

my_user_cron = CronTab(user=True)

# 创建任务

job = my_user_cron.new(command='echo date >> ~/time.log')

# 设置任务执行周期,每两分钟执行一次

job.setall('*/2 * * * *')

# 当然还支持其他更人性化的设置方式,简单列举一些

job.minute.during(5,50).every(5)

job.hour.every(4)

job.day.on(4, 5, 6)

job.dow.on('SUN')

job.dow.on('SUN', 'FRI')

job.month.during('APR', 'NOV')

job.setall(time(10, 2))

job.setall(date(2000, 4, 2))

job.setall(datetime(2000, 4, 2, 10, 2))

# 同时可以给任务设置comment,这样就可以根据comment查询,很方便

job.set_comment("time log job")

# 根据comment查询,当时返回值是一个生成器对象,不能直接根据返回值判断任务是否#存在,如果只是判断任务是否存在,可直接遍历my_user_cron.crons

iter = my_user_cron.find_comment('time log job')

# 同时还支持根据command和执行周期查找,基本类似,不再列举

# 任务的disable和enable, 默认enable

job.enable(False)

job.enable()

# 最后将crontab写入配置文件

my_user_cron.write()

La commande suivante peut être utilisée pour vérifier si la création a réussi :

$ crontab -l

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il vous sera utile. l'étude de tout le monde. Beaucoup de soutien pour le site Web chinois php.

Pour des explications plus détaillées sur la façon d'utiliser Python crontab pour configurer des tâches planifiées Linux, veuillez prêter attention au site Web PHP chinois pour les articles connexes !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn