我想通过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中连接该字符串呢?
答案 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,但你可以试试,如果你更喜欢那种风格(这种风格的一个好处是它们可以毫无问题地嵌套)。