Скрипт Windows PowerShell архивации RedMine Turnkey Hyper-V по ssh

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Исходные данные

  • Windows Server Standart 2019.

  • Hyper-V.

  • RedMine установлен из образа Turnkey (https://www.turnkeylinux.org/redmine).

  • PowerShell-7.1.5-win-x64.msi

Задача

Получить бакап БД и файлов RedMine размером поменьше чем целый образ Hyper-V.

Надо немного уметь в PowerShell и PuTTY (хотя рекомендую WinSCP - визуально править файлы и по каталога ходить).

После отладки и корректировки под свои дополнительные нужды (например исключить большие Git каталоги) засунуть в стандартный планировщик Windows (не забыть про указание рабочего каталога).

Реализация

После номера пункта, Система в которой выполняем действие.

1. Windows. Установить OpenSSH.Client, выполнить PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Client*

2. Windows. Сгенерировать shh ключ, выполнить PowerShell

cd c:\Users\[UserName]\.ssh
ssh-keygen -t rsa -b 4096 -C "your_mail@example.com"

[UserName] - имя текущего пользователя.

Каталог c:\Users\[UserName]\.ssh обычно скрытый и\или системный. При отсутствии каталога предварительно его создать.

your_mail@example.com - e-mail текущего пользователя.

3. Redmine. Содержимым из c:\Users\[UserName]\.ssh\id_rsa.pub дополнить файл(добавить новую строку) root/.ssh/authorized_keys

Каталог root/.ssh/authorized_keys обычно скрытый и\или системный.

4. Windows. Установка первого соединения, выполнить PowerShell

ssh root@192.168.1.155

root - пользователь RedMine

192.168.1.155 - IP Hyper-V, где развернут RedMine

PowerShell попросит принять соединение, набрать yes и нажать Enter, если всё сделано верно больше вводить пароль при подключении по ssh больше не придётся.

5. Windows. Создаем файл StartBackUp.ps1 с содержимым в рабочем каталоге пользователя (в данный каталог будет производиться архивация данных RedMine)

cls
#Текущая дата
$DateStr=(Get-Date).ToString("yyyy_MM_dd_hh_mm_ss")

#Создаем (удаляя предыдущий) скрипт арихивации
Write-Host "=====================$DateStr======================"
$FileName = "BackUpScript.ps1"
if (Test-Path $FileName) 
{
  Remove-Item $FileName
}

#Формируем имя временного каталога RedMine
$BackUpPath="/var//www//"+$DateStr
Write-Host "Create: $FileName"

#Создать временный каталог для архива
"ssh root@192.168.1.155 'mkdir "+$BackUpPath+"'">>$FileName

#Архив файлов
"ssh root@192.168.1.155 'tar -cvf "+$BackUpPath+"/files.tar.gz /var/www/redmine/files'">>$FileName

#Архив Git
"ssh root@192.168.1.155 'tar -cvf "+$BackUpPath+"/git.tar.gz /srv/repos/git'">>$FileName

#Архив базы RedMine
"ssh root@192.168.1.155 '/usr/bin/mysqldump -u redmine -p9323XXXXXXX13ad redmine_production | gzip > "+$BackUpPath+"/redmineDB.gz'">>$FileName

#Запуск скрипта архивации
Write-Host "Run: $FileName"
.\BackUpScript.ps1

#Копировние временного каталога RedMine в текущий рабочий каталог Windows
Write-Host "Copy dir from $BackUpPath to "(Get-Location)
scp -r root@192.168.1.155:$BackUpPath (Get-Location)

#Создаем (удаляя предыдущий) скрипт удаления временного каталога RedMine
$FileName = "DelBackUpScript.ps1"
if (Test-Path $FileName) 
{
  Remove-Item $FileName
}
#Запуск скрипта удаления
"ssh root@192.168.1.155 'rm -r "+ $BackUpPath+"'">>$FileName
Write-Host "Run: $FileName"
.\DelBackUpScript.ps1

Данные для строки архива базы RedMine брать из /var/www/redmine/config/database.yml

6. Windows. Запускаем PowerShell, переходим в каталог с StartBackUp.ps1 и запускаем его на исполнение.

Источник: https://habr.com/ru/post/595001/


Интересные статьи

Интересные статьи

Данная статья - это не научный прорыв, а лишь помощник быстрее понять как работает стандартный функционал в BitrixДавайте представим, что в разделе каталога у нас 150 запросов к БД. Вроде бы немного п...
Появившиеся в 2006 году сервисы Google по работе с текстовыми документами (Google Docs) и таблицами (Google Sheets), дополненные 6 лет спустя возможностями работы с вирту...
Да, %username%, именно четверть века назад мир увидела новая операционная система от Microsoft с кодовым именем Chicago. Это была многозадачная ОС, которая стала прорывом по сравнен...
В этой статье мы рассмотрим, как система управления 1С-Битрикс справляется с большими нагрузками. Данный вопрос особенно актуален сегодня, когда электронная торговля начинает конкурировать по обороту ...
Схема утечки данных через Web Proxy Auto-Discovery (WPAD) при коллизии имён (в данном случае коллизия внутреннего домена с названием одной из новых gTLD, но суть та же). Источник: исследование ...