GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter `date` à l'intérieur d'un travail d'onglet Cron ?

Je veux créer un fichier journal pour un script cron qui a l'heure actuelle dans le nom du fichier journal. Voici la commande que j'ai essayé d'utiliser :

0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log

Malheureusement, je reçois ce message lorsque cela s'exécute :

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

J'ai essayé d'échapper à la date partie de diverses manières, mais sans beaucoup de chance. Est-il possible de faire en sorte que cela se produise en ligne dans un fichier crontab ou dois-je créer un script shell pour ce faire ?

Réponse acceptée :

Réponse courte :

Échappez au % comme % :

0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log

Réponse longue :

Le message d'erreur suggère que le shell qui exécute votre commande ne voit pas le deuxième caractère de retour arrière :

/bin/sh: -c: line 0: unexpected EOF while looking for matching '`'

Ceci est également confirmé par le deuxième message d'erreur que vous avez reçu lorsque vous avez essayé l'une des autres réponses :

/bin/sh: -c: line 0: unexpected EOF while looking for matching ')'

La page de manuel crontab confirme que la commande est en lecture seule jusqu'au premier % non échappé signe :

Le "sixième" champ (le reste de la ligne) spécifie la commande à
exécuter. La totalité de la partie commande de la ligne, jusqu'à une nouvelle ligne ou % caractère, sera exécuté par /bin/sh ou par le shell spécifié dans
le SHELL variable du cronfile. Signes pourcentage (% ) dans le commande, sauf si elle est échappée avec une barre oblique inverse ( ), sera changé en caractères de nouvelle ligne , et toutes les données après le premier % sera envoyé à
la commande en tant qu'entrée standard.


Linux
  1. Comment demander à cron d'exécuter une tâche toutes les deux semaines ?

  2. Comment puis-je créer par programmation une nouvelle tâche cron ?

  3. Comment mettre en place une tâche cron pour lancer un exécutable toutes les heures ?

  4. Comment cron planifie-t-il les tâches en interne ?

  5. Comment exécuter une tâche cron dans un conteneur docker

Comment configurer une tâche Cron dans cPanel

Comment configurer une tâche cron dans cPanel

Comment configurer le travail Cron dans cPanel

Comment mettre en place un Cron Job chez Hostinger ?

Comment utiliser la commande Jobs sous Linux

Comment exécuter une commande dans un script shell ?