Использование даты для добавления имени файла в резервные копии базы данных, сделанные cron - PullRequest
2 голосов
/ 25 августа 2009

Я хочу сохранить несколько резервных копий с датой через cron, но не могу понять, как объединить имя файла в cron.

В настоящее время я просто использую следующее:

/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

То, что я пробовал, было бесполезно:

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

Так как мне добавить эту строку в cron?

Ответы [ 4 ]

13 голосов
/ 25 августа 2009
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > "/var/www/vhosts/mysite.org/dbBackups/"`date +%Y%m%d`dbname.sql
3 голосов
/ 25 августа 2009

Вы можете использовать синтаксис $ (...).

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname >
/var/www/vhosts/mysite.org/dbBackups/$(date +%Y%m%d)dbname.sql
2 голосов
/ 25 августа 2009

Вы можете определить переменную следующим образом:

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

и использовать его конкатенацией так:

...> /var/www/vhosts/mysite.org/dbBackups/"$MYDATE"dbname.sql
1 голос
/ 25 августа 2009

Поместите команду даты в кавычки и удалите пробелы:

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

В (как минимум) bash вы также можете использовать синтаксис $(some command) вместо обратных кавычек. Не уверен, что он будет работать для cron, но вы можете попробовать, если вместо этого предпочитаете этот стиль (одно из преимуществ этого стиля в том, что они могут вкладываться без проблем).

...