1 votes

Aide à la mise à jour d'une entrée cron en utilisant des expressions régulières

Bonjour, j'essaie de mettre à jour une entrée cron NON pas en utilisant crontab -e mais par des commandes Shell. Par exemple l'entrée cron est comme ceci :

10 * * * * /home/localuser/foo.sh -b 1 -h 4 > foo_output.sh 2>&1

Non, j'ai besoin d'éditer la partie paramètres de la ligne de commande SEULEMENT c'est-à-dire

-b 1 -h 4

à quelque chose d'autre qui viendra de l'utilisateur. La première chose à faire serait d'écrire la crontab dans un fichier tmp, puis de manipuler ce fichier temporaire. Maintenant, existe-t-il un moyen facile de modifier cette ligne en utilisant SED ou autre ? Le moyen le plus simple serait de supprimer la ligne entière, d'écrire une nouvelle ligne avec l'expression entière et de la charger dans le cron. Je ne suis pas très doué pour les expressions régulières. Mon système prend en charge sed -i et je pensais que cela pourrait être fait en une seule ligne de commande. Merci d'avance

2voto

Mark Points 251

Les étapes de base pour modifier le fichier crontab avec un script seraient les suivantes,

crontab -l > working-file.txt
script-to-edit.sh working-file.txt > edited-file.txt
crontab edited-file.txt

En fonction de l'apparence des autres lignes de votre crontab (ou de ce qu'elles pourraient devenir à l'avenir),
vous pouvez écrire un sed pour modifier la commande qui vous intéresse.
Voici un exemple de ce que le script-to-edit.sh pourrait le faire,

sed 's|foo.sh \\-b 1 \\-h 4|foo.sh -b XXX -h YYY|g'

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