Cron Job mysqldump 到每日文件夹

Cron Job mysqldump to daily folder

我已经创建了一个 cron 作业来从数据库中转储 table,它工作正常:

mysqldump -u username -ppassword dbname tablename > .../backups/matches.sql

这保存了文件(注意 ... 只是位置的前缀)。

我想做的是每天将其保存到备份中的文件夹中。例如,backups/20150909/matches.sql

我怎样才能用变量实现这个? 如果文件夹不存在,cron 作业是否会创建该文件夹?

如有任何帮助,我们将不胜感激。我每天都会备份很多 table,所以我想简单地设置每个 cron 作业来执行此操作。

我使用 PHP 作为备份解决了这个问题。

if(!file_exists($dir)) {
    mkdir($dir);
}
if(!file_exists($dir)) {
    echo "Directory (" . $dir . ") was not created.<br />";
} else {
    echo "Directory (" . $dir . ") successfully created.<br />";
}

然后我开始获取表格

mysqli_select_db($conn, $dbname);
$search = "SHOW TABLES";
$result = mysqli_query($conn, $search);
while($row = mysqli_fetch_assoc($result)) 
  {
    $tables[] = $row['Tables_in_p3pro_p3live'];
}

接下来是编写 sql 个文件

foreach($tables as $key=>$value) {
    $string = "mysqldump -u *username* -p*password* *dbname* " . $value . " > *path_to_dir*/backups/" . $foldername . "/" . $value . ".sql";

    exec($string);
    echo $value . " backup completed. <br />";
}