2009-08-25 3 views
2

Je souhaite gérer plusieurs sauvegardes datées via cron, mais je n'arrive pas à comprendre comment concaténer le nom de fichier dans cron.Utilisation de la date pour ajouter le nom de fichier aux sauvegardes de base de données créées par cron

Actuellement je viens d'utiliser les éléments suivants:

/bin/mv /var/www/vhosts/mysite.org/dbBackups/today.sql /var/www/vhosts/mysite.org/dbBackups/yesterday.sql 

/usr/bin/mysqldump --add-drop-table -u dbname -pmypass dbname > /var/www/vhosts/mysite.org/dbBackups/today.sql 

Ce que j'ai essayé était pas bon:

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > '/var/www/vhosts/mysite.org/dbBackups/' . date +%Y%m%d . dbname.sql 

Alors, comment puis-je concantenate cette chaîne dans Cron?

Répondre

13
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > "/var/www/vhosts/mysite.org/dbBackups/"`date +%Y%m%d`dbname.sql 
+0

Hm, semble étrange. Pourriez-vous formater ceci dans un bloc de code? –

+1

Je suis désolé, premier message ici, juste réparé. –

+0

Merci! Fonctionne comme un charme! – jerrygarciuh

1

Mettre la commande date dans apostrophes et supprimer les espaces:

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > /var/www/vhosts/mysite.org/dbBackups/`date +%Y%m%d`dbname.sql 

(au moins) bash, vous pouvez également utiliser la syntaxe $(some command) au lieu de apostrophes. Je ne sais pas si cela fonctionnera pour cron, mais vous pouvez essayer si vous préférez ce style à la place (un avantage de ce style est qu'ils peuvent nicher sans problèmes).

3

Vous pouvez utiliser la syntaxe $ (...).

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > 
/var/www/vhosts/mysite.org/dbBackups/$(date +%Y%m%d)dbname.sql 
2

Vous pouvez définir une variable comme ceci:

export MYDATE="$(date '+%Y-%m-%d')" 

et de l'utiliser concaténé comme ceci:

...> /var/www/vhosts/mysite.org/dbBackups/"$MYDATE"dbname.sql 
+0

Ceci est particulièrement utile si vous travaillez avec plus d'un fichier. Je fais souvent des sauvegardes pour plusieurs bases de données, par exemple. –

Questions connexes