Резервное копирование linux из windows

Добрый день.

Товарищи, подскажите пожалуйста в таком вопросе:

Есть сервер на ubuntu-server 14.04, есть машина на Windows 7, необходимо раз в месяц полностью копировать ubuntu-сервер и класть бэкап на машину с Windows. То есть делать полную копию жесткого диска с последующим копированием по локальной сети, чтобы в случае смерти жесткого диска(очень жесткие условия эксплуатации и жесткие диски мрут каждые полгода), просто развернуть бэкап на новый жесткий диск и вставив его в сервер, возобновить его работу.

Подскажите, каким инструментом это все можно осуществить?

Заранее спасибо.


  • Вопрос задан

  • 1986 просмотров

Пригласить эксперта

Разбиваем задачу на несколько логически простых-
1)Создать образ системы.
3)Создать копию данных
3)Перемещение образа и копии данных в хранилище бэкапов.

Создать образ можно с помощью например partimage, хотя в данном случае думаю будет уместней remastersys.
Чем копировать сами данные сильно зависит от собственно данных — думаю тут вопросов не возникнет.
Переместить в хранилище — монтируем сетевую шару и пишем туда.

Есть такой проект https://www.cygwin.com/. Это linux-утилиты под windows, там есть и ssh и rsync. Дальше думаю придумаете как вам поступить. Я на вашем месте через cygwin по rsync копировал все содержимое сервера с одновременным сжатием в tar.gz, чтобы не потерять разрешения на файлы.

погугли LVM backup / restore , кроме того делай raid и просто меняй вылетающие винты

Думаю, задача изначально поставлена неверно.
Здесь уместнее поставить вторую машину на той же Убунте, синхронизировать их rsync-ом и держать диски на этой машине так же открытыми, но только на чтение.
Получите спасение не только от смерти винта, но и от «мышка махнула, папочка удалилась» и даже от «взял и записал документ поверх нужного». Причем пользователи сами смогут по простой инструкции спасать свои головы.


  • Показать ещё
    Загружается…

10 окт. 2023, в 13:56

10000 руб./за проект

10 окт. 2023, в 13:55

2000 руб./в час

10 окт. 2023, в 13:38

1500 руб./в час

Минуточку внимания

Windows Subsystem for Linux
Windows Subsystem for Linux
(Image credit: Windows Central)

Regular backups are a good thing. You never know when something bad is going to happen and having a backup of the data on your PC could save more than a few headaches.

If you’re dabbling with the Windows Subsystem for Linux (WSL), it might not have crossed your mind. WSL is incredibly easy to set up, and if you destroy an installation it’s always fast to get going again. But you can, and probably should, take regular backups if you’re using it a lot.

Here we’ll show you how to export your entire Linux distribution into a file on your Windows 10 PC for safe keeping.

How to backup a WSL distribution

The neat thing about doing this is that you only need a single command in PowerShell to choose which of your distributions you want to export and the file name you want to give it.

Windows Subsystem for Linux

Source: Windows Central (Image credit: Source: Windows Central)

There are a couple of things you might want to do before you begin, though.

  • Run wsl -l -v to get a full list of the distribution names. This is important because you need to match exactly, and if you have «Ubuntu-20.04» you will need to use that. Just «Ubuntu» won’t work.
  • Use the cd command to navigate into the directory you want to save your export to. It will save to whatever directory you’re at the command line in, which by default will be your users folder.

Once you’re happy with the above, the export command follows this template:

wsl --export (distribution) (filename.tar)

Windows Subsystem for Linux

Source: Windows Central (Image credit: Source: Windows Central)

So, to export Ubuntu 20.04 the command would be:

wsl --export Ubuntu-20.04 ubuntubackup.tar

Make sure to add the .tar extension as well to your filename otherwise you may run into some issues.

Windows Subsystem for Linux

Source: Windows Central (Image credit: Source: Windows Central)

It only takes a few seconds to run and then you’ll be able to see the exported backup in whichever folder you saved it to.

Importing a previously exported .tar file

If you’re using the export feature to backup one of your WSL Linux distributions then there’s a good chance you might also want to use it at some point.

Fortunately, should the moment arise, there is an equally simple command template to import your .tar files to a specified install location.

wsl --import (distribution) (install location) (file location and filename) 

So it might look something like:

wsl --import Ubuntu-20.04 C:\Users\MyPC\AppData\Local\Packages\Ubuntu C:\Users\MyPC\Documents\ubuntubackup.tar 

Windows Subsystem for Linux

Source: Windows Central (Image credit: Source: Windows Central)

To check it imported correctly, run the

wsl --list

command and you should now see your newly imported distribution.

All the latest news, reviews, and guides for Windows and Xbox diehards.

Richard Devine is a Managing Editor at Windows Central with over a decade of experience. A former Project Manager and long-term tech addict, he joined Mobile Nations in 2011 and has been found on Android Central and iMore as well as Windows Central. Currently, you’ll find him steering the site’s coverage of all manner of PC hardware and reviews. Find him on Mastodon at mstdn.social/@richdevine

В этом сообщение я представлю вам BackupPC, программный кросс-платформенный бэкап сервер, который через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC добавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью.

BackupPC поставляется с надёжным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образом резервными копированиями других удалённых хостов. Используя веб-интерфейс, вы можете изучить файлы журналов и конфигурационные файлы, запустить/отменить/настроить расписания резервных копирований удалённых хостов и визуализировать текущий статус задач резервного копирования. Вы также можете просматривать архивные файлы и очень просто восстанавливать отдельные файлы или всё полностью из архивов бэкапов. Для восстановления индивидуальных отдельных файлов, вы можете загружать их из предыдущих бэкапов прямо в веб-интерфейсе. Если этого недостаточно, не требуется специальной программы на стороне клиента для клиентских хостов. На Windows клиентах используется родной протокол SMB, в то время как на *nix клиентах вы будете использовать rsync или tar через SSH, RSH или NFS.

Установка BackupPC

На Debian, Ubuntu, Mint и их производных запустите следующую команду.

# aptitude install backuppc

На Fedora используйте команду yum command. Обратите внимание, что имя пакета регистрозависимое.

# yum install BackupPC

На CentOS/RHEL 6 сначала включите репозиторий EPEL. На CentOS/RHEL 7 включите вместо репозиторий Nux Dextop. Затем продолжайте с командой yum:

# yum install BackupPC

Далее команды на разных дистрибутивах Linux идентичны, пользователи Debian, Ubuntu, Mint и их производных не забывайте ставить sudo перед каждой командой.

Как обычно, обе системы управления пакетами будут заботиться об автоматическом разрешении зависимостей. В дополнение как часть установочного процесса, вас могут спросить настроить почтовый сервер, настроить или перенастроить веб-сервер, который будет использован для графического пользовательского интерфейса. Я не стал ничего настраивать в почтовом сервере (чтобы не удлинять инструкцию). Следующие скриншоты из системы Debian:

01

02

Сделайте ваш выбор нажав на пробел и затем перейдите к Ок, используя кнопку [Tab], и нажмите [Enter].

Вам будет представлена следующий экран, информирующий вас, что администраторский пользовательский аккаунт ‘backuppc’ с соответствующим ему паролем (который, по желанию, может быть изменён), был создан для управления BackupPC. Обратите внимание, что пользовательский аккаунт HTTP и обычный Linux аккаунт с одинаковым именем ‘backuppc’ будут созданы с идентичным паролем. Первый нужен для получения доступа в защищённый веб-интерфейс BackupPC, в то время как второй нужен для выполнения резервного копирования используя rsync через SSH.

03

Вы можете изменить пароль по умолчанию для HTTP пользователя ‘backuppc’ следующей командой:

htpasswd /etc/backuppc/htpasswd backuppc

Для изменения обычного ‘backuppc’ пользовательского аккаунта Linux, используйте команду passwd.

# passwd backuppc

Обратите внимание, что установочный процесс автоматически создаст веб и программный конфигурационные файлы.

Запуск BackupPC и настройка Backups

Чтобы начать, откройте окно браузера по адресу http://<доменное имя или IP адрес сервера>/backuppc/. Когда появится окно запроса, введите данные HTTP пользователя, которые были предоставлены вам ранее. Если авторизация успешна, вас перекинет на главную страницу веб-интерфейса.

15543330314_70321f76ac_o

Наиболее вероятно, первое, что вам нужно сделать, это добавить хосты клиентов для резервного копирования. Перейдите в «Edit Hosts» (редактирвоание хостов) в панеле задач. Мы добавим два клиентских хоста:

  • Host #1: CentOS 7 [IP 192.168.0.17]
  • Host #2: Windows 7 [IP 192.168.0.103]

Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить основанную на ключе аутентификацию на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.

Вот инструкция для настройки аутентификации, основанной на ключе, для удалённого хоста CentOS. Мы создаём пользователю ‘backuppc’ пару ключей RSA и переносим публичный ключ в аккаунт рута хоста CentOS.

# usermod -s /bin/bash backuppc

# su - backuppc

# ssh-keygen -t rsa

# ssh-copy-id [email protected]

Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.

16164929932_3ee89974e3_o

Вам понадобиться рут доступ для удалённого хоста CentOS для получения доступа записи на всю файловую систему в случае восстановления бэкапа файлов или каталогов, собственником которых является рут.

Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:

15979622709_d4cd1dbd34_o

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

16163781611_c939673373_o

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

16139884676_8a42b8f619_o

А следующий скриншот показывает настройку резервного копирования для CentOS:

16139884666_6d8234bab3_o

Запуск резервного копирования

Для запуска каждого резервного копирования, перейдите к настройкам каждого хоста, а затем кликните «Start Full Backup»:

15978247428_5c66c062af_o

В любое время, вы можете просмотреть статус процесса, кликнув на home хоста, как показано в изображении выше. Если это по каким-либо причинам не получилось, также появится ссылка на страницу с сообщением ошибки (ошибок) в меню хоста. Когда резервное копирвоание завершено успешно, на сервере создаётся каталог с названием хоста или IP адресом в /var/lib/backuppc/pc:

16165680115_461c1e2150_o

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

Восстановление резервных копий

Для просмотра сохранённых файлов, переходите в раздел «Browse backups», что находится в главном меню хоста. Вы можете визуализировать каталоги и файлы с первого взгляда и выбрать те, которые вы хотите восстановить. Как вариант, вы можете кликнуть по файлу и открыть его, используя программу по умолчанию, или кликните правой кнопкой и выберете Сохранить ссылку, для его загрузки на машину, где вы работаете в данный момент:

16165680105_04d0b568cb_o

Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:

15978247398_e798c969b5_o

Заключение

Говорят «Чем проще — тем лучше», и именно это предлагает BackupPC. В BackupPC вы найдёте не только инструмент для резервного копирования, но также разносторонний интерфейс для управления вашими резервными копиями нескольких операционных систем без необходимости приложения на стороне клиента. Я уверен, что более чем достаточная причина, чтобы хотя бы попробовать.

Оставляйте ваши комментарии и вопросы, если они у вас есть, используя форму внизу. Я всегда счастлив услышать, что говорят читатели!


как делать резервную копию сайта plinkВсем добра, уважаемые читатели и гости. Сегодня публикую маленькую заметку о том, как сделать резервную копию файлов сайта по SSH. В интернете куча статей на данную тему, но чем я хочу выделить данную заметку? Тем, что при создании резервной копии на Windows машине с Linux\UNIX хостинга я столкнулся с множеством неудобств и проблем, которые я избежал, используя plink и putty.

Исходные данные для backup

Итак, имеем:

  1. Linux\UNIX хостинг с доступом по SSH, адрес хоста: ssh.host.example
  2. Компьютер с Windows, с помощью которого производим администрирование сайта.
  3. командный интерфейс plink, который поставляется с ssh клиентом PuTTY
  4. доступ в интернет для связи 1го и 2го.
  5. имя пользователя на хостинге: user
  6. пароль: P@sswOrd
  7. каталог, где размещены файлы сайта: /var/www/host.example

Проблема backup

  1. Очень часто, размещая сайт на хостинге, хостер предъявляет высокие требования и лимиты к операциям ввода-вывода на диск. В результате, при создании резервной копии в ssh консоли хостинга, процесс зашкаливающий по лимитам хостинга может быть убит и архив получится битый.
  2. Так же, типичная ситуация, когда у тебя файлы сайта занимают 70-80% дискового пространства, предоставленного хостингом, и при создании архива из ssh консоли хостинга — для полного архива не хватает места.
  3. Дополнительно, хостер может убивать процессы, которые создают большую нагрузку на CPU. Это тоже приведет к некорректно созданному архиву.
  4. Для создания архива с Windows машины необходимо проделать кучу действий: 1. подключиться к консоли по ssh, 2. создать архив, 3. подключиться SCP/SFTP клиентом, 4. скопировать файл архива, 5. удалить архив. Тут же мы выполняем все это одной командой.

Решение проблемы backup через plink

В общем, ранее меня эти проблемы не напрягали, т.к. бэкап нужно было делать не часто, а когда я стал дорабатывать блог, то оперативные архивы стали очень необходимы и я стал искать решения. Я знал, что подключаясь из Linux — это делается элементарно, через pipe. Поэтому я стал искать аналогию на Windows. В конечном счете, необходимо было выполнить команду на удаленном сервере, которая создаст архив и сложит его в локальную папку на клиенте. Долго искать не пришлось — мне помог plink. Как говориться, все гениальное — просто: качаем putty и plink. Выполняем следующие действия, открыв cmd в каталоге с plink.exe:

 c:\PuTTY_folder>plink -pw P@sswOrd [email protected] tar czf - /var/www/host.example > c:\backup_by_plink\backup_of_my_site.tar.gz

Здесь:

  • plink — собственно, сам exe’шник
  • -pw P@sswOrd — пароль к учетной записи user
  • [email protected] — имя пользователи и хост, на котором буде выполнены программа
  • tar czf — /var/www/host.example — собственно, исполняемая программа (читаем основные команды linux). Указывая «-» мы говорим tar’y выводить архив на консоль (вернее stdout).
  • > — символ командной строки Windows, осуществляющий перенаправление вывода команды в файл (аналог pipe в Linux)
  • c:\backup_by_plink\backup_of_my_site.tar.gz — место сохранения архива.

Т.о. мы решаем все 4 проблемы. При этом, если отключим компрессию (ключ z), то практически снизим нагрузку на CPU на хостинге.

Ссылки

Plink и Putty — http://www.chiark.greenend.org.uk/~sgtatham/putty/
документация — http://www.chiark.greenend.org.uk/~sgtatham/putty/docs.html
документация на русском — http://putty.org.ru/docs.html

P.S. 

Надеюсь, что кроме меня данная заметка будет кому-то полезна. Так же, хочу отметить, что кроме tar, тут никто не мешает использовать mysqldump, например. ;-)  До новых встреч!

С Уважением, Mc.Sim!


Теги:

У нас идёт цикл об информационной суверенности: как не зависеть от зарубежных сервисов в важных компьютерных делах. Сейчас говорим о защите важных файлов. Эта операция из нескольких этапов: 

  1. Настройка автоматического копирования на компьютере ← вы здесь.
  2. Запуск собственного удалённого файлового сервера ← на следующей неделе.
  3. Настройка автоматического копирования на свой сервер. 

В чём задача

Задача — сделать так, чтобы важные файлы на нашем компьютере копировались в безопасное место без нашего участия. Например, можно иметь безопасную флешку, на которую при подключении будут записываться свежие версии важных файлов. 

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

Решение будет состоять из двух частей: 

  1. Нечто, что будет копировать файл без нашего участия.
  2. Нечто, что будет запускать копирование в нужный момент. 

Что делаем

Сначала напишем скрипт, который делает бэкапы, а потом настроим всё так, чтобы он запускался автоматически. Звучит сложно, но на деле всё займёт 5 минут.

Скрипт мы сделаем с помощью системной утилиты rsync на Linux или Mac OS. На Windows используем утилиту nnBackup.

Автоматику будем запускать с помощью crontab — планировщика задач для Linux и Mac OS. На Windows используем либо встроенный планировщик задач, либо nnCron — клон crontab. 

Большинство автоматизаций делается на скриптах и выполняется в терминале (командной строке). Достаточно разобраться с этим один раз, чтобы оценить всю мощь и глубину такого подхода. Помните, во всех фильмах про хакеров они что-то пишут, бегут строчки кода и всё работает? Будем делать то же самое.

Настраиваем резервное копирование в Mac OS и Linux

Чтобы скопировать данные из одного места в другое, во всех дистрибутивах Linux, UNIX и Mac OS используют команду rsync. Она почти всегда идёт в комплекте с системой и решает только одну задачу — что-то куда-то копирует, при этом сам процесс можно настроить довольно гибко.

Общий вид команды такой:

rsync -как_копируем что_копируем куда_копируем

Что_копируем — это путь к папкам, где лежат наши данные. Их мы будем копировать

Куда_копируем — это путь к папке, где будет храниться бэкап. Если второй папки нет, программа сама её создаст. Если папка на другом устройстве, а самого устройства в системе нет, rsync может завершить работу. 

-как_копируем — её параметры копирования. Их очень много; если нужен полный список, наберите rsync —help. Сейчас нас интересует только два параметра — архив и вывод на экран. Для справки — вот полный перечень: 

-v, —verbose   выводить на экран всё, что программа делает
-q, —quiet   тихонько работать, если нет ошибок
-c, —checksum    пропускать ненужные файлы, смотря на контрольную сумму, а не на дату
 -a, —archive   сделать архив; то же самое, как если использовать ключи -rlptgoD (no -H,-A,-X)
—no-OPTION не использовать какие-то опции (например, —no-D)
-r, —recursive обработать все вложенные папки и подпапки
-R, —relative использовать относительные пути к файлам
-b, —backup сделать бэкап-файл
-u, —update пропустить файлы, если в папке назначения они более свежие
—inplace обновить файлы в папке назначения
-d, —dirs обработать просто папку, без вложенных папок
-p, —perms сохранять разрешения
-E, —executability сохранять флаг возможности выполнения файла
—chmod=CHMOD поменять права доступа к файлам или папкам
-X, —xattrs сохранять внешние атрибуты файла
-o, —owner сохранять владельца (только для суперпользователя)
-g, —group сохранять группу
—devices сохранять файлы устройств (только для суперпользователя)
—specials сохранять специальные файлы
-D то же самое, что —devices —specials
-t, —times сохранять время изменения файлов
-O, —omit-dir-times не смотреть на папки при использовании —times
—super экран помощи
—fake-super сохранять или восстанавливать особые атрибуты, используя xattrs
-n, —dry-run запустить вхолостую, без изменений в файлах, просто чтобы убедиться, что ошибок не будет
-W, —whole-file копировать файлы целиком
-e, —rsh=COMMAND указать программу выполнения на удалённом компьютере
—rsync-path=PROGRAM путь к команде rsync на удалённом компьютере
—existing пропустить создание новых файлов на получателе
—ignore-existing не обновлять уже существующие файлы на получателе
—remove-source-files удалить синхронизированные файлы у отправителя (не влияет на папки)
—del то же самое, что —delete-during
—delete удалить посторонние файлы из папки получателя
—delete-before удалить всё у получателя перед передачей данных (используется по умолчанию)
—delete-during удалять файлы во время передачи
—delete-delay сначала найти все удаляемые файлы, а потом удалить все сразу
 —delete-after получатель удаляет необходимые файлы после получения нужных файлов, а не до этого
 —delete-excluded если в конечной папке есть файлы, которые попали под исключения, и их надо удалить — всё равно удалить их
—ignore-errors удалять файлы, даже если есть ошибки ввода-вывода
—force даже если папка не пустая, всё равно удалять её
—max-delete=NUM не удалять более стольких-то (NUM) файлов
—max-size=SIZE не трогать файлы больше размера SIZE
—min-size=SIZE не трогать файлы меньше размера SIZE
 —partial если файл передался не полностью, всё равно сохранить его
—partial-dir=DIR если файл передался не полностью, положить его в папку DIR
 —delay-updates обработать обновлённые файлы в последнюю очередь
 -m, —prune-empty-dirs выбросить пустые папки из списка файлов на копирование
 -I, —ignore-times не пропускать файлы, если они совпадают по времени и размеру
—size-only если файлы одинаковые по размеру, пропустить
 —modify-window=NUM сравнить время изменения файлов с уменьшенной точностью (чтобы файл, изменённый через секунду, например, не считался новым)
 -T, —temp-dir=DIR create temporary files in directory DIR
-y, —fuzzy  если конечного файла нет, найти похожие
—compare-dest=DIR ещё сравнить полученные файлы относительно каталога DIR
—copy-dest=DIR …и приложить копии неизменённых файлов
 -z, —compress сжимать данные при передаче
-C, —cvs-exclude игнорировать файлы по типу CVS
 -f, —filter=RULE добавить правило RULE для фильтрации файлов
-F то же, что —filter=’dir-merge /.rsync-filter’
 —exclude=PATTERN исключить из копирования файлы, которые совпадают с паттерном PATTERN
—exclude-from=FILE взять из FILE паттерны, по которым исключить файлы из копирования
 —include=PATTERN не исключать из копирования файлы, которые совпадают с паттерном PATTERN
 —include-from=FILE взять из FILE параметры включения файлов в задачу копирования
—files-from=FILE забрать список исходных файлов для копирования из FILE
 —port=PORT дополнительный порт для обмена данными с удалённым компьютером
—sockopts=OPTIONS особые параметры связи с сервером по TCP
—stats вывести статистику по передаче файлов
 -8, —8-bit-output оставить нетронутыми восьмибитные символы во время вывода на экран
 -h, —human-readable вывести всё в формате, понятном человеку
—progress показывать прогресс передачи
-P то же самое, что —partial —progress
-i, —itemize-changes вывести отчёт об изменениях в копированных файлах
—log-file=FILE записать в FILE лог событий копирования
—password-file=FILE взять пароль демона из FILE
—list-only не копировать файлы, а просто перечислить
—bwlimit=KBPS ограничить пропускную способность канала передачи данных, если копируем через интернет
—protocol=NUM использовать более древний протокол для совместимости со старым софтом и железом
—iconv=CONVERT_SPEC запросить преобразование названий файлов в зависимости от языка
-4, —ipv4 использовать протокол TCP IPv4
-6, —ipv6 использовать протокол TCP IPv6
—version показать версию программы
(-h) —help показать помощь

Чтобы команда знала, что нам нужно не просто скопировать, а сделать бэкап, используется ключ -a. Без него компьютер будет просто копировать файлы каждый раз, даже если в резервной копии они уже есть, и тратить на это каждый раз много времени. А с ключом -a команда поймёт, что это бэкап, и не будет туда добавлять те файлы, которые там уже есть. А если в бэкапе будет лежать старая версия, а у нас уже новая, то она просто заменит старую на новую, чтобы у нас всегда были актуальные данные.

Вывод на экран — необязательный параметр, который не влияет на экран, но сейчас нам он пригодится. Его смысл в том, что так компьютер будет выводить название каждого файла, который он копирует в данный момент, — так мы увидим, что всё работает как нужно.

Ещё есть ключ —delete — он означает, что если в исходной папке какой-то файл уже удалён, то и в бэкапе его тоже нужно удалить. Если вам в резервных копиях нужна точная копия какой-то папки — добавляйте этот параметр при запуске.

Например, если нам нужно на флешке сделать бэкап папки с фотографиями, то пишем такую команду:

rsync -av /Users/mike/Pictures /Volumes/WIN10_64/Pictures

Вот что она означает:

  • rsync — название нашей команды;
  • -av — добавляем архивный ключ и вывод процесса на экран;
  • /Users/mike/Pictures — здесь лежат фотографии;
  • /Volumes/WIN10_64/Pictures — на флешке с названием WIN10_64 появится папка Pictures, в которой будет лежать бэкап.

Если бы нам понадобилось сделать не архивный бэкап (со всеми старыми файлами), а точную копию папки с фото, то добавился бы ключ —delele:

rsync -av --delete /Users/mike/Pictures /Volumes/WIN10_64/Pictures

Что за пути к файлам? В наших примерах используются адреса файлов, которые применяются в Linux и Mac OS. В них отсчёт идёт не от физического диска, как в Windows, а от корневой папки системы. В папке есть подпапка Users, где живут данные разных пользователей системы. В папке Users лежит папка mike — это папка пользователя Миши. Внутри этой папки уже лежат все его документы. 

В Windows это выглядело бы, например, так: C:/Users/mike/Pictures

Защита важных файлов: автоматический бэкап за пять минут

Запускаем команду в терминале. Благодаря ключу -v виден весь процесс создания резервной копии
Защита важных файлов: автоматический бэкап за пять минут
Открываем две папки и смотрим содержимое. Всё совпадает, значит, команда работает как нужно

Резервное копирование в Windows

Для Windows нет родной команды rsync, поэтому разработчику Николаю Немцову пришлось сделать её аналог — nnBackup. Она устанавливается как обычная программа, и потом тоже запускается из командной строки. Чтобы с ней было проще работать, ставим её в свою папку в корень диска C:

Единственное, что отличается в работе, — порядок аргументов и ключи запуска. Чтобы получить тот же результат, что и в предыдущем примере, нужно в командной строке написать такое:

nnbackup.exe sync -i C:\Users\Mike\Pictures\ -o
F:\Pictures\ -v -da

Теперь посмотрим, что внутри:

  • nnbackup.exe — название команды, которую мы хотим выполнить;
  • sync — параметр, который отвечает за создание именно резервной копии выбранной папки;
  • -i — ключ, после которого идёт путь к исходной папке;
  • -o — ключ, после которого идёт путь к папке назначения, где будет создан бэкап;
  • -v — выводим ход процесса на экран;
  • -da — показываем, что нам нужно удалить в бэкапе те файлы, которых нет в исходной папке. Если ничего удалять не хотите, удалите этот параметр из команды.

Устанавливаем nnBackup на диск C:

Защита важных файлов: автоматический бэкап за пять минут

Защита важных файлов: автоматический бэкап за пять минут

Запуск программы через командную строку Windows

А что, если мне нужно создать бэкап нескольких папок?

Чтобы сделать копии нескольких папок, нужно выполнить несколько команд подряд — сначала для одной папки, потом для другой и так далее. Компьютер сделает всё по очереди.

rsync -av --delete /Users/mike/Pictures /Volumes/WIN10_64/Pictures

rsync -av --delete /Users/mike/Misic /Volumes/WIN10_64/Music

Как будет работать автоматизация

Мы научились создавать бэкапы, но пока всё делается вручную. Это не дело — нужно, чтобы компьютер следил за этим сам.

Самый простой способ автоматизировать бэкапы — настроить выполнение команд по времени, например каждые 10 минут. Работает это так:

  1. Когда проходят очередные 10 минут, компьютер запускает нашу команду на создание бэкапа.
  2. Если флешка вставлена — всё отлично, бекап делается, данные в безопасности.
  3. Если флешка не вставлена — компьютер попытается выполнить нашу команду, не найдёт флешки и просто закончит выполнение команды.
  4. В итоге достаточно будет вставить флешку, и через 10 минут у вас начнёт создаваться актуальная резервная копия всех важных данных.

Интервал в 10 минут мы выбрали сами — можно поставить и раз в минуту, и раз в день, всё зависит от того, насколько часто у вас обновляются за день нужные данные.

Настраиваем расписание в Mac OS и Linux

За запуск команд по расписанию в Mac OS и Linux отвечает команда crontab. У неё много параметров и возможностей, но сейчас нас интересует только одно — как с её помощью запускать нашу команду для бэкапа раз в 10 минут.

Для этого делаем так.

  1. В терминале пишем команду crontab -e и нажимаем Enter. 
  2. Появляется окно редактора, где нужно нажать сначала s, а потом вставить такую строчку:

*/10 * * * * rsync -av --delete /Users/mike/Pictures /Volumes/WIN10_64/Pictures

  1. Нажимаем сначала Esc, а потом по очереди :wq (двоеточие, потом w, потом q) — это сохранит нашу команду и закроет редактор.
  2. Проверяем, что всё записалось командой crontab -l — мы должны увидеть свою команду.

За запуск каждые 10 минут отвечает начало команды — */10 * * * *. Остальные звёздочки отвечают за часы, дни, недели и месяцы, а косая черта — за постоянное повторение каждые сколько-то минут. 

Теперь 6 раз в час наша команда будет запускаться и следить за актуальностью резервной копии. Если нужно несколько команд, то просто добавьте новые строчки и сохраните всё таким же образом.

Защита важных файлов: автоматический бэкап за пять минут

Сохраняем и выходим из редактора
Защита важных файлов: автоматический бэкап за пять минут
Убеждаемся, что наша команда на месте и расписание действует
Защита важных файлов: автоматический бэкап за пять минут
Чтобы всё работало без сбоев, в Системных настройках нужно выбрать раздел «Защита и безопасность» → «Доступ к диску». В нём нажать на плюсик, потом ⇧+⌘+G, вставить /usr/sbin/cron и нажать Enter. В списке появится cron, а это значит, что он может выполнять любые задачи с файлами в любой момент

Настраиваем расписание в Windows

Самый простой способ сделать что-то по расписанию в Windows — использовать «Планировщик заданий». Это встроенная программа с неудобным интерфейсом, но базовые вещи в ней можно настроить. 

Главный минус «Планировщика» в том, что большинство служебных задач в нём сделать сложно — нужно заполнить много полей, настроек и постоянно следить за тем, от имени какого пользователя это делается. 

Для запуска планировщика выберите Пуск → Средства администрирования → Планировщик заданий.

Защита важных файлов: автоматический бэкап за пять минут

Интерфейс планировщика. Много настроек, окон, вкладок, полей и меню

Мы пойдём другим путём — используем программу nnCron Lite. Это аналог crontab для Windows того же Николая Немцова. Скачиваем программу и устанавливаем её в папку C:\cron, чтобы было проще запускать.

Теперь нужно сказать программе, что и как запускать. Для этого в ней есть специальный текстовый файлик cron.tab — его нужно отредактировать. 

Заходите в папку с программой C:\cron, находите там файл cron.tab, открываете в Блокноте. Логика наполнения такая же, как в MacOS: сначала звёздочками указываем периодичность запуска, а потом пишем команду, которую нужно выполнить. В нашем случае это будет так: 

*/10 * * * * nnbackup.exe sync -i C:\Users\Mike\Pictures\ -o  F:\Pictures\ -v -da

Защита важных файлов: автоматический бэкап за пять минут

Защита важных файлов: автоматический бэкап за пять минут

Правой кнопкой мыши щёлкаем на файле cron.tab и выбираем Блокнот
Защита важных файлов: автоматический бэкап за пять минут
Содержимое нашего файла в Windows. Сохраняйте, закрывайте

Что дальше

Резервное копирование по времени — просто, но неоптимально. Намного круче запускать создание бэкапов именно в тот момент, когда мы вставляем флешку в компьютер. Как это сделать, расскажем в будущих статьях. Подписывайтесь на нас везде, где ещё можно :-)

Вёрстка:

Кирилл Климентьев

  • Режим отладки windows 10 что это такое
  • Редактор контекстного меню windows 11
  • Режим защиты глаз windows 10
  • Режим совместимости в windows 10 что это
  • Резервная пропускная способность windows 10