使用日期追加文件名到由cron创建的数据库备份
问题描述:
我想通过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
那么,如何concantenate在cron该字符串?
答
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > "/var/www/vhosts/mysite.org/dbBackups/"`date +%Y%m%d`dbname.sql
答
放入反引号的日期命令,并删除空格:
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > /var/www/vhosts/mysite.org/dbBackups/`date +%Y%m%d`dbname.sql
在(至少)来砸你也可以使用$(some command)
语法,而不是反引号。不知道它是否适用于cron,但如果你喜欢这种风格,你可能会尝试(这种风格的一个好处是,他们可以嵌套没有问题)。
答
您可以使用$(...)语法。
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname >
/var/www/vhosts/mysite.org/dbBackups/$(date +%Y%m%d)dbname.sql
答
您可能需要像这样定义一个变量:
export MYDATE="$(date '+%Y-%m-%d')"
,并用它连接起来是这样的:
...> /var/www/vhosts/mysite.org/dbBackups/"$MYDATE"dbname.sql
+0
这对于处理多个文件尤其有用。例如,我经常为多个数据库进行备份。 – 2009-08-25 20:11:20
嗯,看起来很奇怪。你可以在代码块中格式化这个吗? – 2009-08-25 16:44:05
对不起,先来这里贴一下,就修好了。 – 2009-08-25 16:45:07
谢谢!奇迹般有效! – jerrygarciuh 2009-08-25 16:57:25