使用date将文件名附加到cron创建的数据库备份中

时间:2009-08-25 16:38:35

标签: unix shell date cron

我想通过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 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:3)

您可以使用$(...)语法。

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

答案 2 :(得分:2)

你可能想要定义一个这样的变量:

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

并使用它连接如下:

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

答案 3 :(得分:1)

将date命令放在后引号中并删除空格:

/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,但你可以试试,如果你更喜欢那种风格(这种风格的一个好处是它们可以毫无问题地嵌套)。