Maison Tutoriel système Linux Connaissez-vous quelques raisons pour lesquelles les tâches planifiées de crontab ne sont pas exécutées ?

Connaissez-vous quelques raisons pour lesquelles les tâches planifiées de crontab ne sont pas exécutées ?

Mar 09, 2024 am 09:49 AM
定时任务 crontab script python

Un résumé de quelques raisons pour lesquelles les tâches planifiées crontab ne sont pas exécutées

Mise à jour : 9 janvier 2019 09:34:57 Auteur : L'espoir dans les champs

Cet article résume et présente principalement quelques raisons pour lesquelles les tâches planifiées par crontab ne sont pas exécutées. Il fournit également des solutions à toutes les incitations possibles. Il a une certaine valeur de référence et d'apprentissage pour les collègues qui rencontrent ce problème. éditeur pour apprendre ensemble

Préface

Récemment, j'ai rencontré quelques problèmes au travail. Les tâches planifiées par crontab n'étaient pas exécutées. Plus tard, lors d'une recherche en ligne, j'ai découvert qu'Internet mentionnait principalement ces 5 déclencheurs :

.

Le service 1crond n'est pas démarré

crontab n'est pas une fonction du noyau Linux, mais repose sur un service crond. Ce service peut être démarré ou arrêté. S'il s'arrête, il sera difficile d'effectuer les tâches planifiées. La solution est de l'ouvrir :

crond
Copier après la connexion

ou

service crond start
Copier après la connexion

Si cela indique que la commande crond n'existe pas, elle a peut-être été supprimée. Non seulement elle peut être réinstallée sous CentOS via cette commande :

yum -y install crontabs
Copier après la connexion

2 Problème d'autorisation

Par exemple : le script n'a pas la permission d'exécution x, solution :

Réduisez les autorisations d'exécution ou utilisez bashabc.sh pour exécuter

Il est également possible que l'utilisateur auquel appartient la tâche crontab ne dispose pas des autorisations d'écriture pour un certain répertoire, et cela échouera également

Problème des 3 chemins

Certaines commandes s'exécutent normalement dans le shell, mais échouent toujours lorsqu'elles sont exécutées dans crontab. Il se peut que le sh utilisé par crontab ne reconnaisse pas correctement le chemin. Par exemple : connectez-vous au shell en tant que root et exécutez /root/test.sh.

./test.sh
Copier après la connexion

C'est tout. Et ce script ne sera pas trouvé dans crontab, par exemple, écrivez-le complètement :

/root/test.sh
Copier après la connexion

4Problème de décalage horaire

linux任务计划_linux 计划任务没执行_linux任务计划不生效

En raison du décalage horaire entre le serveur et le client, l'heure de la crontab est basée sur l'heure du serveur.

Le problème du décalage horaire est vraiment gênant, j'en ai moi-même fait l'expérience. Le phénomène est le suivant :

(1) J'ai configuré un script de chronométrage et utilisé la commande date pour observer l'heure du serveur lorsqu'il atteignait l'heure d'exécution du script et j'ai constaté qu'il n'était pas exécuté

(2) Et j'ai configuré le script pour qu'il s'exécute une fois par minute, et c'est OK

Bon sang, l'heure du serveur est-elle correcte ? Dois-je ajouter quels fuseaux horaires ? J'ai donc essayé de réduire la durée du script de 10, 12 ou 8 heures, mais cela n'a pas fonctionné.

然而很显著是时间不一致引起的不执行。

最后用如下两行解决了问题:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
service crond restart
Copier après la connexion

参考这篇文章:

5变量问题

有时侯命令中富含变量,但crontab执行时却没有,也会导致执行失败。

验证后,我的定时脚本test.sh不执行不是上述任何一种缘由,虽然我的脚本就一句话:

#!/bin/bash
echo 123 >> testFile
Copier après la connexion

我希望通过这些方法来测试我设置的定时脚本起作用了,于是我设置了该脚本每分钟执行一次,而且死活在脚本所在目录看不到这个文件linux 计划任务没执行,我自动执行

# sh test.sh
Copier après la connexion

却能看见在脚本所在目录能看见这个文件

我怀疑是crontab根本没有执行,于是我在crontab中直接添加了

*/1 * * * * echo 123 >> /home/denglinjie/testFile
Copier après la connexion

testFile文件生成了,说明crontab是执行了的,那看来是我脚本自身存在问题

最后发觉,原先是testFile这儿必须写完整的路径,我天真的以为testFile会生成在脚本所在的目录,所以改成了如下方式

#!/bin/bash
echo 123 >> /data/denglinjie/testFile
Copier après la connexion

之后就可以了。

linux任务计划_linux 计划任务没执行_linux任务计划不生效

虽然路径是个十分容易出问题的地方,假定在/home/denglinjie目录下有一个脚本文件test1.sh,之后在该目录下还有一个脚本文件test2.sh

在test1.sh中执行了test2.sh,并且用的是相对路径,即相对test1.sh所在的路径。

若果在crontab-e中编辑的时侯,执行的方法是

sh/home/denglinjie/test1.sh,当执行到调用shtest2.sh的时侯,系统会觉得是从crontab文件所在的目录去找test2.sharm linux,而且显然是找不到的,导致执行失败

最开始我想的方式是,我要将我写的待执行的脚本文件以及被调用的其他的脚本和crontab文件放在一个地方,这样就可以拉,并且失败了,可能是由于权限问题,我进不去/var/spool/cron目录。

所以另外一个解决方式就是在执行脚本之前先通过cd/home/denglinjie命令步入到脚本所在目录

------------------------------------------------------------------

近来又发觉一种新的导致crontab不执行的诱因

这儿我要执行的是python脚本,我python脚本的目录为:

/data/denglinjie/work/UpdateModuleSwitch
Copier après la connexion

一开始我的定时任务是这样写的:

linux任务计划_linux任务计划不生效_linux 计划任务没执行

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
Copier après la connexion

发觉到了时间点竟然没有执行,其中update_switch.py的部份内容如下:

import pymongo
Copier après la connexion

就是我的脚本中引入了自己安装的pymongo,注意,这个pymongo是安装到了指定的python版本上的

不执行缘由:crontab定时任务执行的时侯,使用的python不是我的那种python,使用的这个python没有安装pymongo,致使import失败

解决办法,改成如下方式:

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;/data/zhoumi/install_evn/bin/python update_switch.py
Copier après la connexion

指定运行使用的python,这个python早已安装绑定了pymongo,或则用如下方式:

0 * * * * export PATH=/data/zhoumi/install_evn/bin/:$PATH;cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
Copier après la connexion

由于我的这个python是安装在我自己的用户目录下linux 计划任务没执行,所以系统找不到这个python,所以只要将我的python也加入到系统PATH环境变量中就可以了

总结

以上就是这篇文章的全部内容了,希望本文的内容对你们的学习或则工作具有一定的参考学习价值,假如有疑惑你们可以留言交流,感谢你们对本站的支持。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Connaissez-vous quelques raisons pour lesquelles les tâches planifiées de crontab ne sont pas exécutées ? Connaissez-vous quelques raisons pour lesquelles les tâches planifiées de crontab ne sont pas exécutées ? Mar 09, 2024 am 09:49 AM

Résumé de quelques raisons pour lesquelles les tâches planifiées crontab ne sont pas exécutées. Heure de mise à jour : 9 janvier 2019 09:34:57 Auteur : Hope on the field Cet article résume et vous présente principalement quelques raisons pour lesquelles les tâches planifiées crontab ne sont pas exécutées. tout le monde Des solutions sont données pour chacun des déclencheurs possibles, qui ont une certaine valeur de référence et d'apprentissage pour les collègues qui rencontrent ce problème. Les étudiants dans le besoin peuvent suivre l'éditeur pour apprendre ensemble. Préface : J'ai récemment rencontré des problèmes au travail. La tâche n'a pas été exécutée. Plus tard, lors d'une recherche sur Internet, j'ai découvert qu'Internet mentionnait principalement ces cinq incitations : 1. Le service crond n'est pas démarré n'est pas une fonction du noyau Linux, mais repose sur un cron.

Explorer Orange3 : ouvrir un nouveau monde de data mining et d'apprentissage automatique ! Explorer Orange3 : ouvrir un nouveau monde de data mining et d'apprentissage automatique ! Mar 04, 2024 pm 08:16 PM

Orange3 est un puissant outil open source de visualisation de données et d'apprentissage automatique. Il dispose de riches fonctions de traitement, d'analyse et de modélisation des données, offrant aux utilisateurs des solutions simples et rapides d'exploration de données et d'apprentissage automatique. Cet article présentera brièvement les fonctions de base et l'utilisation d'Orange3, et le combinera avec des scénarios d'application réels et des cas de code Python pour aider les lecteurs à mieux maîtriser les compétences d'utilisation d'Orange3. Les fonctions de base d'Orange3 incluent le chargement des données, le prétraitement des données, la sélection des fonctionnalités, l'établissement et l'évaluation du modèle, etc. Les utilisateurs peuvent utiliser l'interface intuitive pour glisser-déposer des composants afin de créer facilement des processus de données. Dans le même temps, des tâches plus complexes de traitement de données et de modélisation peuvent également être réalisées via des scripts Python. Ci-dessous, nous passerons par un exercice pratique

Tutoriel avancé PyCharm : utilisez PyInstaller pour empaqueter le code au format EXE Tutoriel avancé PyCharm : utilisez PyInstaller pour empaqueter le code au format EXE Feb 20, 2024 am 09:34 AM

PyCharm est un puissant environnement de développement intégré Python qui fournit une multitude de fonctions et d'outils pour aider les développeurs à améliorer leur efficacité. Parmi eux, PyInstaller est un outil couramment utilisé qui permet de regrouper le code Python dans un fichier exécutable (format EXE) pour faciliter l'exécution sur des machines sans environnement Python. Dans cet article, nous présenterons comment utiliser PyInstaller dans PyCharm pour empaqueter le code Python au format EXE et fournirons des informations spécifiques.

Comment lire des données Excel dans Pycharm Comment lire des données Excel dans Pycharm Apr 03, 2024 pm 08:42 PM

Comment lire des données Excel avec PyCharm ? Les étapes sont les suivantes : installer la bibliothèque openpyxl ; importer la bibliothèque openpyxl ; charger le classeur Excel ; accéder aux cellules de la feuille de calcul ;

Le guide complet : S'assurer de visualiser les versions de Django avec précision Le guide complet : S'assurer de visualiser les versions de Django avec précision Feb 19, 2024 pm 06:33 PM

Guide professionnel : Comment vérifier avec précision la version de Django, des exemples de code spécifiques sont nécessaires Introduction : Django est un framework Web Python très populaire, et ses versions constamment mises à jour sont très importantes pour les développeurs. Vérifier la version de Django est crucial pour vous assurer que vous utilisez les dernières fonctionnalités et corrections de bugs. Cet article expliquera comment vérifier avec précision la version de Django et fournira des exemples de code spécifiques. 1. Utilisez la ligne de commande pour vérifier la version de Django. L'utilisation de la ligne de commande est le moyen le plus simple et le plus rapide de vérifier Django.

Tutoriel d'installation et de configuration de Flask : un outil pour créer facilement des applications Web Python Tutoriel d'installation et de configuration de Flask : un outil pour créer facilement des applications Web Python Feb 20, 2024 pm 11:12 PM

Tutoriel d'installation et de configuration de Flask : Un outil pour créer facilement des applications Web Python, des exemples de code spécifiques sont nécessaires Introduction : Avec la popularité croissante de Python, le développement Web est devenu l'une des compétences nécessaires pour les programmeurs Python. Pour réaliser du développement web en Python, nous devons choisir un framework web adapté. Parmi les nombreux frameworks Web Python, Flask est un framework simple, facile à utiliser et flexible qui est privilégié par les développeurs. Cet article présentera l'installation du framework Flask,

Comment répéter une chaîne dans le didacticiel de chaîne répétitive python_python Comment répéter une chaîne dans le didacticiel de chaîne répétitive python_python Apr 02, 2024 pm 03:58 PM

1. Ouvrez d’abord pycharm et accédez à la page d’accueil de pycharm. 2. Créez ensuite un nouveau script python, cliquez avec le bouton droit sur nouveau - cliquez sur fichier python. 3. Entrez une chaîne, code : s="-". 4. Ensuite, vous devez répéter les symboles de la chaîne 20 fois, code : s1=s*20 5. Entrez le code de sortie d'impression, code : print(s1). 6. Enfin, exécutez le script et vous verrez notre valeur de retour en bas : - répété 20 fois.

Quels sont les outils de requête de sous-domaines de sites Web ? Quels sont les outils de requête de sous-domaines de sites Web ? Mar 07, 2024 am 09:49 AM

Les outils de requête de sous-domaine de site Web comprennent : 1. Whois Lookup : peut interroger les informations d'enregistrement d'un nom de domaine, y compris les noms de sous-domaines ; 2. Sublist3r : peut analyser automatiquement le nom de sous-domaine d'un nom de domaine à l'aide de moteurs de recherche et d'autres outils ; . DNSdumpster : peut interroger des informations telles que le nom de sous-domaine, l'adresse IP et l'enregistrement DNS du nom de domaine ; 4. Fierce : vous pouvez interroger les informations de nom de sous-domaine du nom de domaine via le serveur DNS : 5. Nmap ; 7. Google Piratage.

See all articles