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 />";
}
我已经创建了一个 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 />";
}