Поиск по сайту:

Как настроить Raspberry Pi в качестве сервера резервного копирования для настольных компьютеров Linux и Windows


На этой странице

  1. Настройка Raspberry Pi в качестве резервного сервера
    1. 1. Скачать изображение Raspian
    2. 2. Прошить образ на карту microSD
    3. 3. Первая загрузка/конфигурация
    4. 4. Развернуть файловую систему
    5. 5. Изменить пароль пользователя
    6. 6. Вход в консоль
    7. 7. Локализация
    8. 8. Расширенные настройки
    9. 9. Установите имя хоста
    10. 10. Разделение памяти
    11. 11. Включить сервер OpenSSH
    12. 11. Завершить и перезагрузить
    13. 12. Обновите и установите необходимые пакеты
    14. 13. Продолжите с удаленным SSH-подключением или на Raspberry Pi.
    15. 14. Найдите и отформатируйте внешний USB-накопитель
    16. 15. Смонтируйте внешний USB-накопитель
    17. 16. Подключите внешний USB-накопитель при загрузке
    18. 17. Настроить самбу
    19. 18. Файл управления резервным копированием на Raspberry Pi

    1. 19. Создайте публичный ssh-ключ
    2. 20. Скопируйте открытый ключ ssh пользователю резервной копии Rasperry Pi.
    3. 21. Создать сценарий резервного копирования на рабочем столе

    1. 22. Скачать Cygwin
    2. 23. Установите Cygwin с необходимыми пакетами
    3. 24. Создайте публичный ключ ssh
    4. 25. Скопируйте открытый ключ ssh пользователю резервной копии Rasperry Pi.
    5. 26. Создать сценарий резервного копирования на рабочем столе

    Raspberry Pi — это серия небольших одноплатных компьютеров. Они довольно дешевы и хорошо подходят для запуска сервера резервного копирования или voip-сервера. В феврале 2015 года был выпущен Raspberry Pi 2. У него больше оперативной памяти, новый процессор и 4 встроенных USB-порта.

    Текущая цена Raspberry Pi 2 составляет 35 долларов США. Однако помимо этого вам потребуется еще несколько вещей:

    • Карта microSD: для загрузки Raspberry Pi 2 требуется карта microSD. Любой должен делать с 4GB или больше. Для резервного сервера 4 ГБ должно хватить. Вы могли бы хотеть получить тот, который читает быстро.
    • Зарядное устройство с разъемом Micro USB: для него также потребуется блок питания. Он питается от порта micro usb, поэтому, скорее всего, у вас дома есть зарядное устройство от старого мобильного телефона, который вам больше не нужен.
    • Внешний USB-накопитель. Поскольку это руководство посвящено настройке сервера резервного копирования, вам также потребуется внешний USB-накопитель. Может быть, достаточно внешнего жесткого диска на 512 ГБ, может быть, вам нужен диск на 4 ТБ. Это все зависит от ваших потребностей в хранении.
    • Оболочка. Последняя вещь — это оболочка. Вам не обязательно нужен корпус, но если вы его не используете, то вся материнская плата будет где-то лежать, и ее более вероятно повреждение.

    Таким образом, общая стоимость составит около 35 долларов США для Raspberry Pi, около 10 долларов США для карты microSD около 10 долларов США для корпуса, ничего для зарядного устройства micro usb, поскольку оно у вас, вероятно, есть, а затем независимо от внешнего стоит usb накопитель.

    Кроме того, для извлечения резервных копий я настраиваю samba, и общий ресурс находится в режиме только для чтения без каких-либо необходимых учетных данных. При правильной настройке в соответствии с этим руководством он будет доступен только в локальной сети и отклонит любую попытку подключения из-за пределов локальной сети. Настройка пользователей samba и других учетных данных выходит за рамки этого руководства. Есть много других руководств, которые объясняют это, и их можно легко включить, если в этом есть необходимость.

    Настройка Raspberry Pi в качестве резервного сервера

    Настройка Raspberry Pi в качестве сервера резервного копирования является «самой сложной» частью, так как вам сначала нужно прошить образ, а затем все подготовить. Однако пошаговое руководство должно провести вас через это.

    1. Загрузите изображение Raspian

    Сначала загрузите текущий образ Raspian отсюда https://www.raspberrypi.org/downloads/

    2. Прошить образ на карту microSD

    После загрузки образа необходимо прошить его на карту microSD. Поскольку для этого уже есть отличные руководства, нет смысла повторять это здесь. Лучше следуйте инструкциям здесь

    3. Первая загрузка/конфигурация

    После того, как вы прошили Raspberry Pi с помощью Raspian Image, подключите к нему экран HDMI и загрузите его. При первой загрузке вам будет представлен экран конфигурации. Этот экран конфигурации довольно прост, и есть несколько вещей, которые вы должны установить.

    4. Разверните файловую систему

    Сначала мы хотим, чтобы на SD-карте было доступно все пространство. Для резервных копий это не имеет большого значения, так как они все равно будут храниться на внешнем диске. Однако мне нравится иметь свободное пространство. Поэтому выберите 1 Expand Filesystem, после чего появится уведомление о том, что при следующей перезагрузке файловая система будет расширена.

    5. Изменить пароль пользователя

    Затем мы хотим изменить пароль по умолчанию для пользователя \pi\. Поэтому выберите 2 Изменить пароль пользователя, а затем дважды введите желаемый пароль, каждый раз с последующим нажатием Enter. Снова вам будет предложено с уведомлением о том, что пароль был изменен.

    6. Вход в консоль

    После этого мы хотим убедиться, что мы не запускаем и не запускаем gui. Поэтому выберите 3 «Включить загрузку на рабочий стол/рабочий стол». На следующем экране выберите Консоль Текстовая консоль, требующая входа в систему (по умолчанию).

    7. Локализация

    Затем мы хотим установить язык системы и другие доступные языки, раскладку клавиатуры и т. Д. Для этого мы переходим к 4 параметрам интернационализации. Когда вы введете это, вам будет предложено изменить языки, часовой пояс и язык клавиатуры. Все диалоги просты, поэтому я не буду вдаваться в подробности.

    8. Дополнительные параметры

    Теперь перейдите в 8. Дополнительные параметры. Там у нас есть еще куча вещей, которые мы можем установить. Три важных из них: имя хоста A2, разделение памяти A3 и SSH A4.

    9. Установите имя хоста

    Имя хоста позволит вам получить доступ к Raspberry Pi по имени хоста в локальной сети. Осторожно: вы можете использовать только буквы и цифры. В этом примере я использую в качестве имени хоста rpi2bu — сокращение от Raspberry Pi 2 Backup, но все зависит от вас.

    10. Разделение памяти

    Поскольку мы хотим использовать этот Raspberry Pi в качестве резервного сервера, мы не хотим тратить драгоценную оперативную память на GPU. Помните: это безголовый сервер. Поэтому установите разделение оперативной памяти на 16 МБ.

    11. Включить сервер OpenSSH

    Поскольку наши резервные копии выполняются с помощью rsync через ssh и поскольку доступ по ssh удобен для удаленного администрирования Raspberry Pi, включите также сервер OpenSSH в меню дополнительных параметров.

    11. Завершить и перезагрузить

    Итак, это все, что нужно настроить на экране конфигурации, и теперь вы можете выбрать в основной конфигурации. Как только вы это сделаете, Raspberry Pi перезагрузится, и через некоторое время вам будет предложено ввести учетные данные для входа. В настоящее время пользователем является pi, и установлен пароль, который вы установили на шаге 5. Также он покажет вам текущий IP-адрес Raspberry Pi.

    12. Обновите и установите необходимые пакеты

    Чтобы использовать Raspberry Pi в качестве резервного сервера, нам потребуется установить два дополнительных пакета: rsync и samba. Rsync — это инструмент, который синхронизирует файлы с вашего компьютера с Windows/Linux, а затем Samba делает резервные копии доступными в сети (в режиме только для чтения).

    Поскольку всегда есть много изменений и обновлений, мы сначала запускаем:

    sudo apt-get update && sudo apt-get upgrade

    а затем мы устанавливаем необходимые пакеты:

    sudo apt-get install rsync samba

    13. Продолжите с удаленным SSH-подключением или на Raspberry Pi.

    Следующие шаги можно выполнить на самом Raspberry Pi или через ssh-соединение. Я предпочитаю ssh-соединения, а в Linux я просто использую Konsole в моем KDE. В Windows вы можете использовать Kitty

    14. Найдите и отформатируйте внешний USB-накопитель.

    Прежде чем мы настроим сервер samba, нам нужно смонтировать внешний USB-накопитель и создать резервного пользователя. Прежде чем мы сможем смонтировать внешний USB-накопитель, нам нужно отформатировать его и узнать его UUID. Поэтому, прежде чем подключить внешний USB-накопитель, запустите:

    ls -al /dev/disk/by-uuid

    и он вернет что-то вроде этого:

    total 0
    drwxr-xr-x 2 root root 100 Mai 19 18:22 .
    drwxr-xr-x 6 root root 120 Jan  1  1970 ..
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 15CD-3B79 -> ../../mmcblk0p1

    Теперь подключите внешний USB-накопитель и снова запустите команду. Вот увидишь, результат другой и там новое устройство.

    total 0
    drwxr-xr-x 2 root root 100 Mai 19 18:22 .
    drwxr-xr-x 6 root root 120 Jan  1  1970 ..
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 15CD-3B79 -> ../../mmcblk0p1
    lrwxrwxrwx 1 root root  10 Mai 19 18:22 eac53de3-9f06-4e46-999c-684da279298b -> ../../sda1

    Это говорит нам о двух вещах. Новое устройство — /dev/sda1, а его uuid — eac53de3-9f06-4e46-999c-684da279298b. Когда вы присоединяете несколько каталогов, sda1 может измениться. Поэтому для целей монтирования в дальнейшем просто используйте его UUID, который не изменится, пока разделы не будут изменены или раздел будет отформатирован, однако мы собирались отформатировать раздел в подходящую файловую систему.

    Прежде чем мы сможем его использовать, нам нужно отформатировать этот диск. Я предпочитаю ext4, но некоторые люди могут предпочесть btrfs из-за его моментальных снимков и проверок целостности. Чтобы отформатировать его как ext4, просто выполните эту команду:

    sudo mkfs.ext4 /dev/sda1

    Как уже говорилось, форматирование также приводит к изменению UUID, поэтому вам нужно снова выполнить вышеупомянутую команду и принять к сведению новый UUID.

    15. Установите внешний USB-накопитель

    Следующее, что нам нужно смонтировать. Здесь вы должны решить, где вы хотите его установить. Я решил смонтировать диск в домашнем каталоге пользователей резервного копирования. Я мог бы смонтировать его как /home, если бы захотел. Однако, если у меня есть несколько резервных копий, я предпочитаю делать их на отдельные диски. Таким образом, один пользователь=1 диск, и диск монтируется в домашнем каталоге пользователей. К Rasperry Pi вы можете напрямую подключить 4 USB-устройства, поэтому при необходимости его легко расширить до другого пользователя. Прежде чем смонтировать его, я добавляю соответствующего резервного пользователя — в этом руководстве я называю этого пользователя bu. Чтобы создать этого пользователя, выполните следующую команду:

    sudo adduser bu

    Вам будет дважды предложено ввести пароль для этого пользователя.

    После добавления пользователя вы можете легко смонтировать внешний диск с помощью следующей команды:

    sudo mount /dev/sda1 /home/bu

    Однако, прежде чем мы сможем его использовать, необходимо сделать последний шаг. Теперь вам нужно изменить владельца смонтированной папки также на пользователя bu:

    sudo chown bu:bu /home/bu

    Итак, мы подключили внешний USB-накопитель и установили соответствующие разрешения. Если вы сейчас запустите следующую команду, вы увидите, что /dev/sda1 смонтирован в /home/bu

    df -h
    Filesystem      Size  Used Avail Use% Mounted on
    rootfs           15G  2.4G   12G  18% /
    /dev/root        15G  2.4G   12G  18% /
    devtmpfs        484M     0  484M   0% /dev
    tmpfs            98M  236K   98M   1% /run
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           195M     0  195M   0% /run/shm
    /dev/mmcblk0p1   56M   19M   37M  34% /boot
    /dev/sda1       2.7T  260M  2.6T   1% /home/bu

    Поскольку у меня уже есть некоторые тестовые данные на внешнем USB-накопителе, это показывает, что я уже использовал 260 МБ. На свежем диске должно быть ноль.

    16. Подключите внешний USB-накопитель при загрузке

    Все вроде находит, но после перезагрузки внешний USB-накопитель больше не монтируется. Обычно вы просто добавляете запись в /etc/fstab, но есть проблема с быстрой загрузкой и слишком медленным обнаружением USB. Решение довольно простое.

    Изменить: /boot/cmdline.txt

    и вы увидите, что есть строка, содержащая:

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    Просто добавьте к нему rootdelay=10, чтобы он выглядел сейчас:

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait rootdelay=10

    Далее редактируем /etc/fstab

    и добавьте это в конец этого файла

    UUID=eac53de3-9f06-4e46-999c-684da279298b       /home/bu        ext4    defaults        0       2

    Итак, теперь мы убедились, что внешние USB-накопители монтируются в /home/bu даже после перезагрузки. Если вы подключаете более одного USB-устройства, которое я никогда не проверял, и замечаете, что я не добавляю их все должным образом, возможно, вы расширите rootdealy до более чем 10.

    17. Настройте Самбу

    Затем настройте Samba так, чтобы все резервные копии были доступны в сети. Samba — это демон, который предоставляет общие сетевые ресурсы, к которым также можно получить доступ через Windows с использованием протокола smb.

    Просто отредактируйте /etc/samba/smb.conf и замените контекст файла конфигурации следующим:

    [global]
    
       workgroup = WORKGROUP
       server string = %h server
    ;   wins support = no
    ;   wins server = w.x.y.z
       dns proxy = no
    ;   name resolve order = lmhosts host wins bcast
       name resolve order = bcast lmhosts host wins
    
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
    
    ;   interfaces = 127.0.0.0/8 eth0
    ;   bind interfaces only = yes
    
       hosts allow = 127.0.0.1, 10.0.0.0/24
       hosts deny = 0.0.0.0/0
    
       log file = /var/log/samba/log.%m
       max log size = 1000
    #   syslog only = no
       syslog = 0
       panic action = /usr/share/samba/panic-action %d
    
       security = user
       encrypt passwords = true
       map to guest = bad user
       guest account = bu
    
    #   valid users = root
    
    #======================= Share Definitions =======================
    
    [Backup]
            comment = Backup Share
            path = /home/bu
            read only = yes
            guest only = yes
            guest ok = yes
            hosts allow = 127.0.0.1, 10.0.0.0/24
            force user = bu
            force group = bu
            hosts deny = 0.0.0.0/0

    Чтобы убедиться, что ничего не просочилось за пределы локальной сети, я установил в глобальном разделе запретить все IP-адреса и разрешить только локальный хост, а также локальную сеть. Я использую 10.0.0.x для своей локальной сети. Вероятно, вы используете 192.168.0.0, поэтому измените это соответствующим образом.

    Также в глобальном разделе вы видите, что гостевая учетная запись является пользователем bu, а в фактическом общем ресурсе вы можете видеть, что у гостей есть доступ и что его доступ только для чтения.

    Сохраните и выйдите из файла и перезапустите самбу:

    sudo /etc/init.d/samba restart

    При этом не была завершена настройка служб.

    18. Файл управления резервным копированием на Raspberry Pi

    Создайте и отредактируйте файл /home/bu/backups.sh и заполните его следующим содержимым:

    #!/usr/bin/env bash
    
    basePath="/home/bu"
    
    action="${1}"
    
    function checkMonth ()
    {
            now=$(date +"%Y-%m")
            last=$(<checkMonth.txt)
            if [[ ${now} != ${last} ]]
            then
                    # New Month
                    mkdir -p "${basePath}/current/"
                    rm -Rf "${basePath}/current/"*
                    echo "${now}" > "checkMonth.txt"
            fi
    }
    
    
    
    function makeHardlink ()
    {
            # Make hardlink copy
            now=$(date +"%Y-%m-%d_%H-%M")
            mkdir -p "${basePath}/old/${now}"
            cp -al "${basePath}/current"* "${basePath}/old/${now}"
    }
    
    
    
    function checkFree ()
    {
            # Check if old files need to be deleted
            freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' )
            curUse=$( cd "${basePath}/current" | du -s | awk '{print $1}' )
            estUse=$(( curUse * 2 ))
    
            echo "${freeSpace} - ${curUse} - ${estUse}"
    
            while [[ ${freeSpace} -le ${estUse} ]]
            do
                    echo "Not enough space... removing old backups..."
                    IFS= read -r -d $'\0' line < <(find "${basePath}/old" -type d -maxdepth 1 -printf '% %p\0' 2>/dev/null | sort -z -n)
                    oldDir="${line#* }"
                    rm -Rf "${oldDir}"
                    freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' )
                    echo "${freeSpace} - ${curUse} - ${estUse}"
            done
    }
    
    
    
    case ${action} in
    
            newMonth)
                            checkMonth
                            ;;
            hardLink)
                            makeHardlink
                            checkFree
                            ;;
    esac

    Этот скрипт имеет две цели. Его следует запускать до и после каждого резервного копирования.

    Функция checkMonth увидит, есть ли новый месяц с момента последней резервной копии. Как известно, жесткий диск может выйти из строя, а точнее некоторые его части могут выйти из строя. Если это произойдет, вы больше не сможете получить доступ к файлам данных в поврежденных секторах. Однако для создания полной резервной копии каждый раз требуется много места на диске. Чтобы сэкономить место на диске, я жестко связываю резервные копии, то есть я записываю только файлы «индекса» файловой системы, которые указывают на те же данные. Поэтому, если сектор данных поврежден, файл больше не может быть получен для всех файлов с жесткой ссылкой, поскольку все они указывают на одни и те же данные. Чтобы свести к минимуму этот риск, я гарантирую, что каждый месяц записывается новый полный набор резервных копий. Это съест ваше место для хранения. Например. если у вас 400 ГБ данных, это означает, что в первый месяц будет использоваться 400 ГБ + измененные файлы. Через 2 месяца он будет использовать еще 400 ГБ + измененные файлы и т. д.

    Это также означает, что первая синхронизация и первая синхронизация в новом месяце займут много времени. Все остальные быстрые.

    Функция makeHardlink фактически создаст жесткую копию последней резервной копии. Копия с жесткой ссылкой почти не требует места, а в резервной копии только новые файлы записываются заново. Также в сочетании с копией жесткой ссылки я запускаю функцию checkFree.

    Функция checkFree проверяет свободное место в /home/bu. Он также проверяет используемый размер последней резервной копии. Если свободного места меньше, чем в два раза больше, чем в последней резервной копии, то старые резервные копии будут удаляться до тех пор, пока свободного места снова не станет в два раза больше. Я склонен думать, что если у вас уже есть 400 ГБ данных, которые вы хотите создать резервную копию, маловероятно, что на следующий день/следующее время резервного копирования у вас будет более 800 ГБ.

    Вместе это означает, что вы можете использовать этот механизм резервного копирования «навсегда». Он автоматически удалит старые резервные копии, если свободного места станет слишком мало.

    После сохранения этого скрипта сделайте его исполняемым и измените владельца на пользователя bu:

    sudo 0755 /home/bu/backups.sh
    sudo chown bu:bu /home/bu/backups.sh

    Вот и все на стороне Raspberry Pi.

    Создание резервных копий на Rasperry Pi из Linux

    Чтобы делать резервные копии на Raspberry Pi, вам нужно всего лишь добавить текущего пользователя (или root, если хотите) в учетную запись пользователя резервного копирования Raspberry Pi.

    Я предполагаю, что у вас уже установлен ssh-клиент и у вас есть открытый ключ, который вы можете использовать. В конце концов вам нужно сначала установить rsync.

    19. Создайте публичный ключ ssh

    Если у вас пока нет открытого ключа, создайте его:

    ssh-keygen -t rsa -b 4096 -C ""

    Конечно, замените его своим адресом электронной почты или заполните что угодно, если хотите.

    20. Скопируйте открытый ключ ssh пользователю резервной копии Rasperry Pi.

    Затем вам нужно скопировать свой открытый ключ в резервную учетную запись пользователя Raspberry Pi:

    ssh-copy-id ~/.ssh/id_rsa.pub 

    Замените bu и rpi2bu вашим фактическим пользователем резервного копирования и именем хоста. Если по какой-то причине Raspberry Pi не может быть обнаружен по имени хоста, используйте его IP-адрес.

    21. Создайте сценарий резервного копирования на рабочем столе

    Теперь, когда мы можем войти в Raspberry Pi без необходимости вводить пароль, нам нужен небольшой скрипт bash, который делает резервную копию. Создайте backup.sh на рабочем столе.

    Отредактируйте ~/Desktop/backup.sh\ и добавьте это

    #!/usr/bin/env bash
    
    # Check for new month
    ssh  '/home/bu/backups.sh newMonth'
    # Run rsync backup
    rsync -avzpH  --partial --delete ~/ :/home/bu/current/
    # Make backup and check regarding free space
    ssh  '/home/bu/backups.sh hardLink'

    Затем сделайте его исполняемым:

    chmod 0755 ~/Desktop/backup.sh

    Вот и все — конечно, не забудьте установить имя хоста для Raspberry Pi и изменить пользователя, если вы используете что-то другое.

    Создание резервных копий на Rasperry Pi из Windows

    В Windows это немного сложнее, так как все эти хорошие инструменты * nix отсутствуют. Особенно ssh и rsync. Однако простым решением здесь является установка cygwin с соответствующими пакетами.

    22. Скачать Cygwin

    Сначала нам нужно скачать и установить cygwin. Загрузите его отсюда. Скорее всего вы хотите использовать 64-битную версию.

    23. Установите Cygwin с необходимыми пакетами

    Когда загрузка установщика Cygwin будет завершена, запустите его. Затем вам будет предложено ввести пару входных данных. Введите данные в соответствии со списком ниже:

    Выберите источник загрузки -> Установить из Интернета
    Выберите корневой каталог установки -> C:\cygwin
    Локальный каталог пакетов -> C:\Users\\Downloads (оставьте значение по умолчанию)
    Выберите свой Интернет Подключение -> Прямое подключение
    Выбрать сайт загрузки -> Выберите ближайший к вам сайт загрузки

    После этого вы увидите диалоговое окно Select Packages. Здесь важно выбрать rsync и openssh. Лучше всего вы можете отфильтровать список с помощью поля поиска. Просто введите rsync, и вы найдете его в папке Net. Нажмите на него, а затем Bin? столбец должен быть проверен сейчас. Повторите это для openssh.

    После этого он начнет загружать все пакеты и устанавливать их. Поскольку он загружает много инструментов * nix, это займет некоторое время.

    24. Создайте публичный ключ ssh

    После установки cygwin, включая rsync и openssh, у вас появится новая запись \Cygwin\ в вашем стартовом меню. Внутри этой записи вы найдете ссылку на терминал Cygwin. Запустите это, и терминал откроется. В терминале мы создаем открытый ключ ssh, выполнив эту команду:

    ssh-keygen -t rsa -b 4096 -C ""

    Конечно, замените его своим адресом электронной почты или заполните что угодно, если хотите.

    25. Скопируйте открытый ключ ssh пользователю резервной копии Rasperry Pi.

    Затем вам нужно скопировать свой открытый ключ в резервную учетную запись пользователя Raspberry Pi:

    ssh-copy-id ~/.ssh/id_rsa.pub 

    Замените bu и rpi2bu вашим фактическим пользователем резервного копирования и именем хоста. Если по какой-то причине Raspberry Pi не может быть обнаружен по имени хоста, используйте его IP-адрес.

    26. Создайте сценарий резервного копирования на рабочем столе

    Теперь откройте текстовый редактор и введите следующее:

    REM Just a little script for making backups
    
    REM Check if it's a new month
    c:\cygwin\bin\ssh.exe  '/home/bu/backups.sh newMonth'
    REM Make backup with rsync
    c:\cygwin\bin\rsync -avzpH  --partial --delete -e "c:\cygwin\bin\ssh.exe" /cygdrive/c/Users :/home/bu/current/
    REM Make hardlink copy and clean up space if necessary
    c:\cygwin\bin\ssh.exe  '/home/bu/backups.sh hardLink'

    Сохраните этот файл как backup.bat

    на рабочем столе (или в любом другом месте).

    Если вы установили Cygwin в любую другую папку, укажите соответствующий путь (по умолчанию для 64-разрядной установки будет использоваться c:\cygwin64). Также измените имя хоста Raspberry Pi и резервного пользователя, если вы использовали что-то другое.

    Когда вы щелкнете сейчас по файлу backup.bat на рабочем столе, откроется терминал и создаст резервную копию. Вы также можете запустить его из команды Windows (cmd.exe), чтобы он не закрывался автоматически после завершения.

    Проверка ваших резервных копий

    Просто делать резервные копии — это только половина дела. Вам нужно будет убедиться, что (а) резервные копии были сделаны и (б) вы можете использовать их для восстановления материала, если это необходимо.

    Для простоты мы настроили самбу заранее. При правильной настройке, если вы проверите сетевое окружение, у вас должен быть компьютер/сервер с именем rpi2bu по соседству. В Windows просто откройте Проводник, перейдите в Сеть и подождите 2-3 секунды, пока он не появится. В Linux, например. в Dolphin достаточно щелкнуть значок сети на боковой панели мест. Затем вы можете войти на этот компьютер/сервер без каких-либо учетных данных, после чего он покажет вам общий ресурс с именем Backup. Когда вы войдете в этот общий ресурс, вы увидите две папки: текущую и старую, а также два файла backups.sh и checkMonth.txt. Вы можете скопировать файлы обратно на свой компьютер, но, поскольку Samba настроена только для чтения, вы не можете удалить файлы.

    Поэтому скопируйте несколько файлов обратно на свой компьютер и убедитесь, что они работают нормально. Если они это сделают, вы успешно сделали резервную копию.