web-dev-qa-db-fra.com

/ bin / sh: 1: erreur de syntaxe: EOF dans la substitution de guillemets inversés)

J'ai créé une nouvelle tâche dans crontab comme indiqué ci-dessous:

*/2 * * * *       mongodump --db prodys --out /backup/databases/mongoDatabases/`date +"%m-%d-%y"`

Je reçois l'erreur suivante:

/bin/sh: 1: Syntax error: EOF in backquote substitution

Aidez-moi, je n'ai aucune idée de ce qui ne va pas.

15
Vicky

Le problème est que cron traite % Comme des retours à la ligne. Depuis la page crontab POSIX man:

Les signes de pourcentage (%) dans la commande, sauf s'ils sont échappés avec une barre oblique inversée \, seront modifiés en caractères de nouvelle ligne, et toutes les données après le premier% seront envoyées à la commande comme entrée standard.

Utilisez également la syntaxe Substitution de commandes comme $() sur la syntaxe héritée `` comme

Vous pouvez changer votre commande en quelque chose comme,

*/2 * * * *       mongodump --db prodys --out /backup/databases/mongoDatabases/$(date +'\%m-\%d-\%y')
15
Inian