Linux and windows backup

Backing up a Remote Linux Machine With Windows (Using Rsync and Cygwin)

The goal here was for me to get a backup of my VPS server (Running CentOS 6). My background is primarily Windows based, so I wanted a solution where I can just run the backup from a Windows machine, (i.e. my my laptop) and let it connect, login and perform the backup.

What is Rsync? If you are familiar with Robocopy it’s similar, it can perform a backup/sync of data and encrypt that data while it’s passing over the network. In addition, once the initial sync has been done, the next time you run it, it only replicates the changes. This makes it ideal for backups.

What is Cygwin? Basically it’s a Linux ‘Shell’ that will run on a Windows machine.

Solution

Step 1: Install Cygwin on My Windows Client

1. Download Cygwin (URL is on the image below), and install on the machine that will be performing the backups. When prompted accept all the defaults to download form the internet > Accept the install directory C:cgywin64 > Install for All users > Set the local Package Directory to the Desktop > Internet = Direct Connection > Choose a Download site > Next.

Install Cygwin

2. When asked to select packages > Expand Net.

Cygwin Packages

3. Select openssh and rsync to be installed.

Cygwin openssh and rsync

4. Expand shells > Select bash to be installed. > Complete the installation.

Cygwin install bash

Step 2: Generate SSH Keys in Cygwin

5. Launch Cygwin and generate some SSH Keys.

ssh-keygen -t rsa -b 2048 KEEP PRESSING ENTER TO ACCEPT THE DEFAULTS, AND HAVE A BLANK PASSPHRASE 

Cygwin Create SSH Keys

Step:3 Create a User (On the Remote Linux Host) to Perform Backups

6. Connect to the server via SSH, (or open a terminal session). Logon as, (or su to) root.

useradd -s /bin/bash passwd ENTER AND CONFIRM THE PASSWORD 

Linux Create Backup User

7. To ensure your user has the correct folders in their home folder the easiest way is generate a pair of keys on the remote Linux machine (the same as you did before).

Читайте также:  Команда top linux все процессы

Create .ssh directory

Step 4: Copy the Public SSH Key from the Windows Machine to the Linux Machine

8. Above, Cygwin told us the keys are in /home//.ssh > Go to that directory and make sure they are there > Make a copy of the id_rsa.pub key > Call the copy authorized_keys > Copy that key to the correct folder on the remote Linux machine (via SCP).

cd /home/ /.ssh Note This is the username on the Cygwin machine) ls CHECK id_rsa.pub IS LISTED cp id_rsa.pub authorized_keys ls CHECK authorized_keys IS LISTED scp authorized_keys username>@Linux Machine's name/IP>:/home/username>/.ssh Note The username (above) is the username on the Linux Machine 

Copy from Cygwin to Linux via SCP

9. Now check we can login to the remote Linux machine, from the Windows machine (without having to provide a password for the user we created). Note: Sometimes you need to do this twice before it will work.

ssh username>@Linux Machine's name/IP>

If successful, your prompt should change to that of the remote Linux machine.

Test SSH from Cygwin

10. To return to Cygwin, simply type exit.

Disconnect SSH Session

Step 5: On the Windows Machine Create a Backup Job

11. On the Windows machine create a folder that will hold the backup files (create it in the C:cygwin64 folder).

Backup VPS to Windows

12. Lets test our backup to that folder. (Note: This does not back any data up it just performs a ‘dry run’).

rsync -avzun username>@Linux Machine's name/IP>:/ /VPS-Backup

Note: Above I’ve chosen the root ‘/’ directory, you may just want to select specific folders to backup e.g.

  • /var/www/ The Default location for Apache’s Website Files.
  • /var/lib/mysql The Default location for MySQL Databases.

Warning: Folder locations may differ depending on the server and how it was setup.

Rsync to backup VPS

13. Tailor the following, and save it on the Windows machine, in the C:cyqwinbin directory as Remote-Server-Backup.sh

# Remote-Server-Backup.sh # # # rsync tool to download server data # from [Remote Linux Server name] to [Windows Backup Machine] # # # download only those files on [Remote Linux Server name] in # [server directory] # Only files that are newer than what is already on the # [Windows Backup Machine Directory] # # Syntax # # rsync -avzu [user name]@[Remote Linux Server name]: #[server directory] [Windows Backup Machine Directory] # Windows Shortcut Target Should be #C:cygwin64binbash.exe --login -i '/bin/Remote-Server-Backup.sh' rsync -avzu username>@Linux Machine's name/IP>:/ /VPS-Backup 

Remote Backup Server Script

14. On the Windows machine create a new shortcut.

Windows Create Shortcut

15. Browse to, and select c:cygwinbinbash.exe

Windows Run Bash shell

16. Give it a sensible name > Finish

Shortcut Name

17. Open the properties of the shortcut and change the Target: to;

C:cygwin64binbash.exe --login -i '/bin/Remote-Server-Backup.sh'

Note: You may also want to change the icon to the Cygwin one at C:cygwin64Cygwin.ico

Читайте также:  Nvidia linux unable to find kernel source tree

Cygwin Launch Shell Script

18. Run the shortcut to perform the backup.

Run Rsync Backup from Cygwin

You could (if you wanted), use the Window scheduler to schedule this for you, but I prefer to do it myself.

Источник

Подскажите универсальное решение для резервного копирования linux и windows

Есть ли бесплатное решение для резервного копирования систем linux и windows? Имею NAS и несколько машин работающих на linux и windows, как можно организовать резервное копирование систем? Что-то наподобие Acronis Cyber Backup. Пробовал Veeam, на Windows всё нормально работает, а в linux клиенте нет поддержки новых ядер. Пробовал urBackup в linux нет поддержки образов дисков.

так бэкапь имиджы этих виртуалок и все.

Сейчас пользуюсь. Проблема в том, что систему нужно выключать при бэкапе. Или я чего-то не знаю?

В том то и проблема, что это не виртуалки

Банально, но факт: универсального решения нет, есть набор оптимальных подходов для данного конкретного окружения.

Например: раз в неделю делаем холодную копию всего сервера, плюс ежесуточное РК базы данных (если таковая используется), строго по вендорским рекомендациям к ней.

Ну и исходя из этого, пошаговый отработанный план восстановления.

NDfan ★ ( 05.01.21 06:39:01 MSK )
Последнее исправление: NDfan 05.01.21 06:39:53 MSK (всего исправлений: 1)

В том то и проблема, что это не виртуалки

не изобретай велосипедов, переводи на виртуализацию. сделать слепок разделов и перенести на KVM винду не так сложно, те совсем не сложно а с linux еще проще

Для клонеззилы нужно останавливать систему. Но хорошая штука. Даже раиды копирует.

Источник

Бэкап общей папки Windows в Linux

что посмотреть

Здравствуйте, уважаемые читатели. Сегодня тема статьи: «Бэкап общей папки Windows в Linux». Рассмотрим организацию резервного копирования общего ресурса Windows, на машину под управлением Linux.

Предположим на одном из компьютеров локальной сети, под управлением Windows, есть директория с общим доступом, в которой находятся критически важные файлы. С файлами ежедневно производятся какие-то манипуляции. Как обезопасить файлы в директории?

Можно настроить резервное копирование критически важной директории на машину под управлением Linux. Отдельной машины для этого не понадобится, если в сети есть Linux машина, которая работает в роли DHCP-сервера, шлюза, или в какой-нибудь другой роли, то можно без проблем добавить функционал резервного копирования на неё. Функционал резервного копирования не потребует больших ресурсов, кроме того, производится резервное копирование будет ночью, так что особой нагрузки на сеть также не будет.

Подготовительные действия

  • Предварительно нам нужно создать необходимую инфраструктуру.
  • Для хранения резервных копий, создадим директорию /rezerv.
  • Кроме того, для монтирования общей папки, создадим директорию /mnt/arhiv.
# mkdir /rezerv
# mkdir /mnt/arhiv
  • На компьютере под управлением Windows, создаём нового пользователя с паролем, и даём ему полный доступ на папку с критически важными файлами.
  • Проверяем подключение к общей папке с Linux машины. Монтируем общую папку к созданной для этих целей директории /mnt/arhiv.
# mount -t cifs //192.168.10.20/123 /mnt/arhiv -o user=user-2,password=123

— 123 – название общей папки Windows.

— user-2 – пользователь для подключения к общей папке.

— 123 – пароль пользователя user-2.

  • Если всё было сделано правильно, то Вы получите доступ к файлам общей папки Windows, зайдя в директорию /mnt/arhiv.
  • Резервное копирование мы будем производить с помощью утилиты tar. В одной из предыдущих статей, мы уже пользовались утилитой для создания бэкапа файлов сайта.
Читайте также:  Linux get open ports

Ручной бэкап общей папки Windows в Linux

# tar -czvf /rezerv/docs-`date +"%Y-%m-%d_%H-%M"`.tar.gz -C /mnt/ arhiv
  • В итоге в директории /rezerv, мы получим резервную копию общей папки Windows, в архиве формата: docs-Дата_Время.tar.gz

Автоматический бэкап общей папки Windows в Linux

  • Для настройки автоматического резервного копирования, мы будем использовать планировщик заданий Cron. Нужно зайти в /etc/crontab и добавить задание.
  • Можно создать простую задачу, как и в случае с бэкапом сайта.(Общая папка должна быть постоянно подключена)
  • Задание в таком случае будет выглядеть так:
# Бэкап
00 23 * * * root /bin/tar -czf /rezerv/docs-`date +\%Y-\%m-\%d_\%H-\%M`.tar.gz -C /mnt/ arhiv
  • Резервное копирование будет производится каждый день в 23:00.
  • Но наиболее удобным вариантом, будет настройка резервного копирования при помощи специального скрипта.
  • Создаем файл /usr/local/bin/backup.sh с таким содержанием:
 #!/bin/sh dir_1='/rezerv' dir_2='/mnt/' dir_3='arhiv' time=`date +"%Y-%m-%d_%H-%M"` mount -t cifs //192.168.10.20/123 /mnt/arhiv -o user=user-2,password=123 /usr/bin/tar -czvf $dir_1/docs-$time.tar.gz -C $dir_2 $dir_3 /usr/bin/find $dir_1 -type f -mtime +7 -exec rm <> \; umount /mnt/arhiv 
  • Три первые строчки, это директории используемые для резервного копирования.
  • Четвертая строчка, это формат даты и времени.
  • Дальше идёт команда для монтирования общей папки.
  • После монтирования, расположена команда создания бэкапа.
  • Предпоследней идёт команда удаления резервных копий старше семи дней.(Можно изменить под свои нужды)
  • И последней идёт команда размонтирования общей папки Windows.
# Бэкап с помощью скрипта 
00 23 * * * root /usr/local/bin/backup.sh >/dev/null 2>&1
  • После добавления задания, скрипт backup.sh будет выполнятся каждый день в 23:00.

Таким способом, можно организовать резервное копирование одной и более общих папок, на разных компьютерах локальной сети. Можно создать несколько скриптов, изменив переменные, и время выполнения скрипта.

Сегодня мы рассмотрели тему: «Бэкап общей папки Windows в Linux». Произвели настройку резервного копирования критически важных файлов. Смотрите также видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

Видео на тему «Бэкап общей папки Windows в Linux»:

Источник

Оцените статью
Adblock
detector