]> git.p6c8.net - psmysqlbackup.git/commitdiff
Added first version of the script
authorPatrick Canterino <patrick@patrick-canterino.de>
Sun, 26 Dec 2021 20:34:17 +0000 (21:34 +0100)
committerPatrick Canterino <patrick@patrick-canterino.de>
Sun, 26 Dec 2021 20:34:17 +0000 (21:34 +0100)
This is a very rudimentary version, you can only backup to the same file per
database

.gitignore [new file with mode: 0644]
psmysqlbackup.ps1 [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..a4ca89b
--- /dev/null
@@ -0,0 +1 @@
+backup
\ No newline at end of file
diff --git a/psmysqlbackup.ps1 b/psmysqlbackup.ps1
new file mode 100644 (file)
index 0000000..dca87c2
--- /dev/null
@@ -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

patrick-canterino.de