10
votes

Cron échoue sur une seule apostrophe

Ce qui suit fonctionne comme prévu comme prévu: xxx

mais aucune des 4 entrées suivantes de crontab ne fonctionne. xxx xxx < / pré>

Je peux enregistrer le même code dans un script shell et définir le cron, mais j'aimerai savoir s'il est possible de définir directement un cron pour la tâche.

Le cron réel Entrée que j'essaie de définir regarde quelque chose comme ça ... xxx


3 commentaires

Si vous résolvez votre problème, veuillez le poster comme une réponse.


58 13 * * * / usr / bin / mysqldump -uroot -password --Compact -Compact --Databases DB1 DB2 DB3 DB4 | Zip> / Accueil / Développement / Sauvegarde / Central_MyDT $ (Date + '\% D \% M \% Y'). ZIP


Dupliqué possible de Comment est% spécial à Crontab?


3 Réponses :


0
votes

Tant qu'il n'y ait aucun espace dans la chaîne de format fournie comme argument à ce jour, vous ne devez pas avoir besoin des ticks du tout.

date +%d-%b-%Y-%H-%M


1 commentaires

J'ai enlevé les devis comme mentionné ci-dessus et cela ne marche toujours pas de cron. Il fonctionne bien d'une ligne de commande.



-1
votes

Vous utilisez une syntaxe non prise en charge par / bin / sh. Essayez d'appeler votre coquille préférée et de passer la commande comme un argument.


0 commentaires

26
votes

Il y a quatre causes communes pour les commandes du travail cron de se comporter différemment par rapport aux commandes saisies directement dans une coque interactive:

  • Cron fournit un environnement limité, par exemple, un minimum $ chemin et d'autres variables attendues manquantes.
  • cron invoque / bin / sh Par défaut, alors que vous utilisez une autre coque de manière interactive.
  • cron traite le caractère % spécialement (il est transformé en une nouvelle ligne dans la commande).
  • La commande peut se comporter différemment car elle n'a pas de terminal disponible.

    Vous devez précéder tous les caractères % avec un fichier \ dans un fichier crontab, qui indique au cron de simplement mettre un % Dans la commande, par exemple xxx

    (comme une question distincte, mettez toujours des citations doubles autour d'un "$ variable_substitution" ou un ou un "$ (substitution de commande) ", à moins que vous sachiez pourquoi ne pas le faire dans un cas particulier. Sinon, si le contenu variable ou la sortie de commande contient des espaces ou ? * \ [, ils seront interprétés par la coquille.)


0 commentaires