X-Git-Url: https://git.p6c8.net/psmysqlbackup.git/blobdiff_plain/b88a0603e10b6dcd711ab39b431e2289f2408c57..00c62a33770c2c932dbd14d46a7f443c9c8f4d5e:/psmysqlbackup.ps1?ds=sidebyside diff --git a/psmysqlbackup.ps1 b/psmysqlbackup.ps1 index dca87c2..7ca585a 100644 --- a/psmysqlbackup.ps1 +++ b/psmysqlbackup.ps1 @@ -1,28 +1,36 @@ -[String]$config_mysql_host = "localhost" -[String]$config_mysql_user = "backup" -[String]$config_mysql_password = "backup" +[String]$configMysqlHost = "localhost" +[String]$configMysqlUser = "backup" +[String]$configMysqlPassword = "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]$configMysqlCli = "C:\Program Files\MariaDB 10.5\bin\mysql.exe" +[String]$configMysqldumpCli = "C:\Program Files\MariaDB 10.5\bin\mysqldump.exe" -[String]$config_backup_dir = "backup" -[String]$config_rotate = 7 +[String]$configBackupDir = "backup" +[String]$configRotate = 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;") + $databaseString = (& $configMysqlCli --host=$configMysqlHost --user=$configMysqlUser --password=$configMysqlPassword --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 + & $configMysqldumpCli --host=$configMysqlHost --user=$configMysqlUser --password=$configMysqlPassword --single-transaction --result-file=$target $database } +$currDaytime = Get-Date -format "yyyyMMdd-HHmmss" + $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 + $databaseBackupDir = Join-Path -Path $configBackupDir -ChildPath $d + + if(!(Test-Path $databaseBackupDir)) { + New-Item -ItemType directory -Path $databaseBackupDir -ErrorAction Stop | Out-Null + } + + $databaseBackupFile = Join-Path -Path $databaseBackupDir -ChildPath "backup-$d-$currDaytime.sql" + Write-Output "Backing up $d to $databaseBackupFile..." + Create-Backup $d $databaseBackupFile } \ No newline at end of file