2017-05-21 7 views
0

J'essaie d'exécuter un travail cron pour sauvegarder ma base de données SQL sur une base quotidienne. C'est le code que j'utilise.Essayer de sauvegarder la base de données SQL tous les jours

/usr/local/mysql/bin/mysqldump -uroot -ppassword --opt database > /path/to/directory/filename.sql  

Cependant, il me revient avec l'erreur suivante:
/bin/bash: -c: ligne 0: inattendu tout en regardant EOF pour faire correspondre ` ''
/bin/bash: -c: ligne 1: erreur de syntaxe: fin de fichier inattendue

vous vous demandez ce que la solution est ....

Répondre

0

Si vous devez utiliser avec cron commandes shell complexes, comme avec des caractères spéciaux, vous devez les mettre dans un script externe et seulement appeler le script dans le crontab. De cette façon, vous pourrez également l'exécuter manuellement pour le test.

Exemple:

  • Mettez votre commande, par exemple, /usr/local/sbin/my_backup_script.sh
  • Ne pas oublier d'ajouter #!/bin/sh en haut du fichier sh
  • Ne chmod a+x /usr/local/sbin/my_backup_script.sh
  • Vérifiez que l'exécution du script est en train de faire le travail
  • Puis ajouter manuellement 0 4 * * * root /usr/local/sbin/my_backup_script.sh à la crontab
  • (Ou 0 4 * * * /usr/local/sbin/my_backup_script.sh si vous utilisez crontab personnel)

(Vous pouvez remplacer 0 4 avec le temps que vous souhaitez l'exécuter, en utilisant le formulaire « mm hh »)

+0

juste essayé de faire, mais je suis complètement inconnu pour bash scripts. Mon script bash actuel ressemble à ceci: '#!/Bin/bash /usr/bin/mysqldump -uUSERNAME -pPASSWORD --opt DATABASE_NAME>/chemin/vers/backup.sql' Exécuter le code manuellement n'a même pas créé la sauvegarde Fichier .sql. Kinda lost here: '( –

+0

Vous devez ajouter un retour de ligne après "#!/Bin/bash". – Elektordi