PowerShell
Перейти к навигации
Перейти к поиску
Содержание
Запуск скрипта
Бывает выдает ошибку:
Не удается загрузить файл C:\test.ps1, так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений.
Лечится выполнением так:
powershell -executionpolicy bypass -File C:\test.ps1
Скрипты
Проблемы резервная копия баз данных
ЕСТЬ ПРОБЛЕМА! НАДО ИСПРАВИТЬ, ДЕЛО В ТОМ ЧТО В POWERSHELL ПО УМОЛЧАНИЮ КОДИРОВКА CP866 а mysql-клиент в винде по умолчанию работает в cp1251, есть для корректной работы скрипта требуется добавить
--default-character-set=cp866
Но тогда и восстанавливать дамп требуется из powershell с тем же ключом. В общем творческий подход.
Так же возможно требуется поиграться с настройками перекодировки:
- [Console]::OutputEncoding - отвечает за перекодировку <native application> -> <Powershell>
- $OutputEncoding - отвечает за перекодировку <Powershell> -> <native application>
- [Console]::InputEncoding - отвечает за ввод с клавиатуры в консольное приложение)
Резервная копия баз данных (не очень рабочая смотри выше)
Делаем дамп всех клиентских баз данных в отдельные файлы. Делаем общий дамп всех баз в один файл. Архивируем в один файл. mysql_dump.ps1
# Настройки для резервного копирования $MySQLPath = "C:\Program Files\MariaDB 10.1\bin\" $Hostname = "127.0.0.1" $Username = "root" $Password = "--password=mypassword" $ShowDB = "show databases;" $DumpDir = "c:\backup" $Zip = "C:\Program Files\7-Zip\7z.exe" # Получаем штамп времени в формате ГГГГММДДЧЧММСС $timestamp = Get-Date -format yyyyMMddHHmmss # Создаем временную папку для резервного копирования & mkdir $DumpDir"\"$timestamp"-mysql" # Получаем список баз данных $Databases =( & $MySQLPath\mysql.exe -h $Hostname -u $Username $Password -B -N -e $ShowDB ) # Делаем dump баз данных по отдельным файлам Foreach ($db in $Databases) { # Базы information_schema и performance_schema исключаем, так как они мне не нужны и требуют блокировки таблиц. if (($db -ne "information_schema") -and ($db -ne "performance_schema")) { echo $db & $MySQLPath\mysqldump.exe -h $Hostname -u $Username $Password --add-drop-table --add-drop-database -B $db | Out-File $DumpDir"\"$timestamp"-mysql\"$db".sql" } } # Делаем общий дамп всех баз (это для удобства, иногда требуется восстановить все разом, вы можете не делать) & $MySQLPath\mysqldump -h $Hostname -u $Username $Password --add-drop-table --add-drop-database --all-databases > $DumpDir"\"$timestamp"-mysql\mysql-all-dump.sql" # Архивируем папку & $Zip a -y -bd -ssw $DumpDir"\"$timestamp"-mysql.zip" $DumpDir"\"$timestamp"-mysql" # Удаляем временную папку del $DumpDir"\"$timestamp"-mysql"