Question Cron - Vérifiez si activé au démarrage


J'ai un script et un fichier de configuration.

  • Le fichier de configuration contient des informations sur l'exécution ou non du script (activé ou désactivé).
  • Si activé, le script doit s'exécuter à des intervalles prédéterminés.

Je peux écrire une tâche cron pour exécuter un script à des intervalles prédéfinis et, lorsque le script est exécuté, je peux lire le fichier de configuration et s’il n’est pas activé, je peux le quitter.

Cependant, je cherche un moyen plus pratique de le faire. Est-il possible de dire au cron lui-même que ce travail n'est pas activé au démarrage? Donc, cron ne démarrera pas le travail s'il n'est pas activé (ou le contraire). Ou est-il possible d'activer / désactiver le travail en cours d'exécution?

Merci d'avance.


0
2018-06-27 21:53


origine


S'il vous plaît nous donner des détails sur le critère de l'année pour l'exécution du travail cron, c'est-à-dire pour activer le script au démarrage. - Cbhihe
Je ne comprends pas du tout, que voulez-vous dire par critère? Fondamentalement, j'essaie de trouver un moyen de dire au cron que le travail est activé ou non au démarrage sans ajouter / supprimer quoi que ce soit sur / de crontab. - benjamin button
Sur quelle est votre décision pour permettre ce travail cron basé? Sur quoi devrait s'appuyer l'activation du travail? - Cbhihe
En fait je demande ça :) J'ai un fichier de configuration avec un paramètre comme scriptEnabled = true (ou false) . Et aussi j'ai ajouté le travail à l'intérieur de la crontab (* / 5 * * * * * /home/linux/test.sh). Comment puis-je créer le fichier de configuration de vérification cron pour savoir si le travail test.sh est activé dans le fichier de configuration? Ou est-ce possible? Ou pouvez-vous suggérer un moyen d'y parvenir? - benjamin button


Réponses:


Ah, maintenant je comprends moins! C'est une demande assez courante:

Tout ce dont vous avez besoin est de tester l'existence d'un fichier donné, pas son contenu. Par exemple. Si vous voulez exécuter le job cron, créez un fichier say in yr répertoire de base: $ touch /home/you/cronjob_enable.

Ensuite, éditez l'utilisateur crontab:

$ crontab -e
*/5 * * * *  /bin/bash -c 'test -e /home/you/cronjob_enable && /home/linux/test.sh'

C'est tout. Tant que le fichier est là (vide ou non, cela n'a aucune importance) et que vous êtes autorisé à exécuter /home/linux/test.sh, le script test.sh va courir
Lorsque vous effacez le fichier /home/you/cronjob_enable, le script test.sh ne sera pas exécuté.


1
2018-06-29 15:08



Ce n'est pas une solution simple mais f ... king génial, flex, solution de contournement personnalisable! Merci! - benjamin button
@BenSen: :-D !! Bonne chance à tous. N'hésitez pas à en demander plus à l'avenir, mais aussi à vérifier d'autres sites StackExchange tels que "Unix & Linux", "Stack Overflow", etc. Ils constituent également une base de connaissances idéale pour ce type de requête. - Cbhihe
Malheureusement, j'ai remarqué qu'il serait préférable de publier ceci sur UNIX et Linux, comme vous l'avez suggéré après avoir posté la question. Mais merci pour l'aide et les conseils! - benjamin button