【问题标题】:Using date to append filename to database backups made by cron使用日期将文件名附加到 cron 进行的数据库备份
【发布时间】:2010-11-22 16:51:19
【问题描述】:

我想通过 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 中连接该字符串?

【问题讨论】:

    标签: unix shell date cron


    【解决方案1】:
    /usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > "/var/www/vhosts/mysite.org/dbBackups/"`date +%Y%m%d`dbname.sql
    

    【讨论】:

    • 对不起,第一次在这里发帖,刚刚修好了。
    • 太棒了。但就我而言,我不得不用反斜杠转义 %:date +\%Y\%m\%d
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      并像这样连接使用它:

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

      【讨论】:

      • 这在您处理多个文件时特别有用。例如,我经常为多个数据库做备份。
      【解决方案4】:

      将日期命令放在反引号中并删除空格:

      /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,但如果您更喜欢该样式,您可以尝试(该样式的一个好处是它们可以毫无问题地嵌套)。

      【讨论】:

        猜你喜欢
        • 2017-05-27
        • 2011-09-28
        • 2012-02-25
        • 1970-01-01
        • 1970-01-01
        • 2014-02-24
        • 2020-11-14
        • 2013-08-31
        • 1970-01-01
        相关资源
        最近更新 更多