From b88a0603e10b6dcd711ab39b431e2289f2408c57 Mon Sep 17 00:00:00 2001 From: Patrick Canterino Date: Sun, 26 Dec 2021 21:34:17 +0100 Subject: [PATCH 1/1] Added first version of the script This is a very rudimentary version, you can only backup to the same file per database --- .gitignore | 1 + psmysqlbackup.ps1 | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 .gitignore create mode 100644 psmysqlbackup.ps1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4ca89b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +backup \ No newline at end of file diff --git a/psmysqlbackup.ps1 b/psmysqlbackup.ps1 new file mode 100644 index 0000000..dca87c2 --- /dev/null +++ b/psmysqlbackup.ps1 @@ -0,0 +1,28 @@ +[String]$config_mysql_host = "localhost" +[String]$config_mysql_user = "backup" +[String]$config_mysql_password = "backup" + +[String]$config_mysql_cli = "C:\Program Files\MariaDB 10.5\bin\mysql.exe" +[String]$config_mysqldump_cli = "C:\Program Files\MariaDB 10.5\bin\mysqldump.exe" + +[String]$config_backup_dir = "backup" +[String]$config_rotate = 7 + +function Get-Databases() { + $databaseString = (& $config_mysql_cli --host=$config_mysql_host --user=$config_mysql_user --password=$config_mysql_password --batch --skip-column-names -e "SHOW DATABASES;") + $databases = $databaseString.split([Environment]::NewLine) + + return $databases +} + +function Create-Backup([String]$database, [String]$target) { + & $config_mysqldump_cli --host=$config_mysql_host --user=$config_mysql_user --password=$config_mysql_password --single-transaction --result-file=$target $database +} + +$databases = Get-Databases | Where-Object { $_ -ne "information_schema" -and $_ -ne "performance_schema"} + +foreach($d in $databases) { + $backupFile = $config_backup_dir + "\" + $d + ".sql" + Write-Output "Backing up $d to $backupFile..." + Create-Backup $d $backupFile +} \ No newline at end of file -- 2.34.1