Kservistorg.ru

Все о бытовой технике
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как синхронизировать файлы с Linux на Amazon S3; CloudSavvy IT

Как синхронизировать файлы с Linux на Amazon S3 — CloudSavvy IT

Amazon S3.

AWS S3 — это сервис облачного хранения Amazon, позволяющий хранить отдельные файлы как объекты в корзине. Вы можете загружать файлы из командной строки на вашем Linux-сервере или даже синхронизировать целые каталоги на S3.

Если вы просто хотите поделиться файлами между экземплярами EC2, вы можете использовать Том EFS и подключите его непосредственно к нескольким серверам, полностью исключив «облако». Но вы не должны использовать это для всего, потому что это намного дороже чем S3, даже с включенным нечастым доступом.

Ubuntu One Setup

Если вы еще не настроили Ubuntu One, вам придется настроить его перед синхронизацией файлов. Нажмите значок почты на панели и выберите « Ubuntu One ».

Нажмите кнопку Присоединиться сейчас и создайте учетную запись.

На других компьютерах нажмите ссылку « У меня уже есть учетная запись! » и войдите в свою существующую учетную запись.

После этого вы получите папку «Ubuntu One» в своей домашней папке. Все файлы в этой папке автоматически синхронизируются между вашими компьютерами.

Файлы в унисон

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

Вообще в Unix довольно много утилит позволяющих организовать резервное копирование изменившихся файлов, которых можно настроить в режиме синхронизации данных. Самым популярным решением является rsync (rsync.samba.org) . Эта утилита умеет рекурсивно выполнять синхронизацию файлов и каталогов, причем используемый алгоритм позволяет минимизировать трафик, возможно и сжатие информации. Администраторы давно и с успехом используют эту утилиту, например чтобы создать копию домашнего каталога на удаленной системе достаточно ввести:

$ rsync -Hbaz -e ssh /home/grinder/ grinder@comp2:backup

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

Проект Unison

bcpierce/unison/) изначально разработана Бенджамином Пиерсом (Benjamin C. Pierce), американским профессором преподавателем компьютерных наук в университете в Пенсильвании. При написании использовался современный объектно-ориентированный язык OCaml. При его создании использовался алгоритм rsync, поэтому в другой каталог передаются только отличия файлов, что экономит трафик. Unison может быть использован в двух вариантах. Первый подобен rsync, то есть создается зеркальная копия исходного каталога. Второй так называемый режим двухсторонней синхронизации, когда изменившие файлы синхронизируются в обоих направлениях. Программа может работать как в клиент-серверном варианте, так и в одиночном режиме. Возможен запуск с командной строки, так и с использованием простого и понятного GUI. Для удобства пользователь создает профили, в которых определяются каталоги для синхронизации, типы файлов которые следует игнорировать и прочие настройки. Профили хранятся в виде обычных текстовых файлов с расширением *.prf в скрытом каталоге

Еще один плюс Unison доступен в версиях для нескольких операционных систем: Linux, *BSD, Mac OS X, Solaris, есть даже пакет для Compaq IPAQ и Sharp Zaurus. Каталоги и файлы синхронизируются как локально, так и используя защищенное SSH соединение. Распространяется по лицензии GNU GPL. В настоящее время активная работа над проектом прекращена, устраняются лишь найденные ошибки, хотя последняя версия датирована январем 2008 года.

Читайте так же:
1с синхронизация с сайтом по артикулу

Пробуем в работе

Так как Unison это обычная программа, не требующая перекомпиляции ядра установка ее очень проста. Тем более что в большинстве пакетных репозитариев она имеется. В Ubuntu для установки достаточно ввести:

$ sudo apt-get install unison unison-gtk

Как видите графический интерфейс в Ubuntu (и Debian) поставляется в отдельном пакете. Для того чтобы синхронизировать два каталога в командной строке, достаточно ввести команду:

$ unison /home/grinder/source /home/grinder/destination

Учтите, что при синхронизации проверяются (и сохраняются) права доступа. К удаленной Unix системе можно подключиться при помощи SSH использовав такую конструкцию:

$ unison /home/grinder/source ssh://username@remotehostname/dest

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

Вывод изменений

Предлагаемое действие показано стрелочкой < или > в зависимости от того, где найдено отличие, нажав «?» можно получить подсказку по командам. Действие f является рекомендуемым Unison. Например:

Proceed with propagating updates? [] ?

y or g Yes: proceed with updates as selected above

n No: go through selections again

q exit unison without propagating any changes

Для того чтобы разрешить указанные действия выбираем y.

Proceed with propagating updates? [] y

Единственная ситуация с которой не сможет справиться Unison без вашей подсказки это когда изменились оба файла. Такие ситуации помечаются как <-?->. Нажав клавишу «d» можно просмотреть различия выданные командой diff.

changed <-?-> changed file1 [] d

— /home/grinder/dir2/file1 2008-02-23 14:59:18.000000000 +0200

+++ /home/grinder/dir1/file1 2008-02-23 14:59:10.000000000 +0200

Клавиша «х» подскажет дату изменений, чтобы проигнорировать этот файл нажимаем «I». И наконец чтобы объединить изменения нажимаем «m».

changed <-M-> changed file1 [] m

Синхронизиовать два каталога в Linux и Windows можно несколькими способами. Если все действия производятся в Windows, то просто подключаемся по SSH (в Ubuntu необходимо установить пакет openssh, так как SSH сервера в поставке по умолчанию нет). Если наоборот, то мне кажется, что проще смонтировать Windows ресурс. Для удобства прописываем строку для монтирования в файле /etc/fstab:

//win_computer/shared /mnt/win cifs noauto,users,password=,iocharset=utf8,codepage=cp866 0 0

Если для доступа к удаленному каталогу требуется пароль, не забудьте указать его в строке после password= или указывайте вручную при монтировании. Я также использую параметр noauto, чтобы ресурс не монтировался автоматически. Иначе если он не будет доступен при загрузке, это увеличит время. И в iocharset укажите правильную кодировку, чтобы имена файлов на кириллице показывались правильно. Кстати в некоторых случаях Unison не хотел работать с такими файлами, так что привычка обзывать файлы латинскими буквами не будет лишней. Теперь монтируем Windows каталог:

$ sudo mount /mnt/win

И синхронизируем, как два обычных локальных каталога.

Чтобы в процессе команда задавала меньше вопросов, используем параметр -batch или -auto.

Профили

Программа имеет большое количество параметров, просмотреть их можно введя «unison -help«, более подробно они описаны в документации http://www.cis.upenn.edu/

Читайте так же:
Как регулировать ремешок apple watch

bcpierce/unison/download/releases/stable/unison-manual.html. Чтобы не вводить их каждый раз, удобнее создать профили. Как уже говорилось профиль это обычный текстовый файл. В нем записаны все команды которые необходимо выполнить, причем профили могут ссылаться друг, на друга для чего используется директива include. Поэтому общие для всех параметры лучше определить в одном файле.
$ kate

# команда для объединения конфликтных файлов

merge = diff3 -m CURRENT1 OLD CURRENT2 > NEW

# шаблон для файлов

# журнал никогда не был лишним

# шаблоны файлов которые будут игнорированы

ignore = Name temp.*

Теперь второй профиль, в котором указываем уже каталоги.

# каталоги для синхронизации

include = default default.prf

ignore = Name *mp3

# задает меньше вопросов

Теперь чтобы синхронизировать каталоги, указанные в этом профиле достаточно ввести «unison work«.

Работа с GUI

Большинство пользователей наверное предпочтет все-таки графический интерфейс. Если устанавливался пакет unison-gtk, то в меню К (если KDE) появится нужный пункт.

GUI

Из консоли вызвать графическую версию Unison можно использовав параметр -ui.

$ unison -ui graphic или unison-gtk

Если ранее были созданы профили, программа запросит выбрать один из них, иначе вначале необходимо будет создать новый профиль. Для этого указываем исходный (локальный) каталог и второй каталог, в настройках которого можно уже указать удаленное подключение. После создания профиля будут проверены оба каталога, если они не синхронизированы, появится окно с предупреждением о том, что будет сравнено их содержимое. Нажимаем ОК и ждем пока Unison соберет и выведет информацию о каталогах. Стрелка укажет, в каком направлении будет произведена синхронизация. Если будет обнаружен конфликт (например, Unison не может их перезаписать, хотя файлы и изменились или изменились оба файла) такая пара отмечается вопросительным знаком. Для их слияния нажимаем кнопку Merge. Чтобы синхронизировать все одним махом, достаточно нажать кнопку Go. Используя кнопки на передней панели можно указать направление изменения справа-налево (Right to Left) или слева-направо Left to Right.

Что еще?

Unison не единственная, хотя скажу, по моему мнению самая удобная утилита позволяющая синхронизировать каталоги. Такую функцию имеет и файловый менеджер Krusader. Достаточно в нем открыть нужные каталоги в панелях и выбрать в меню пункт Инструменты — Синхронизировать каталоги (Ctrl -Y), появится окно Синхронизация каталогов, в котором можно указать дополнительные функции: задать шаблон имени файла, время последнего доступа или изменения, тип файла, размер, права и другие.

Синхронизация в Krusader

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

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

/.mc/menu или системный /etc/mc/mc.menu добавляем такую строку:

U unison directories

unison -batch %d %D

Теперь зайдя в MC достаточно нажать F2 и затем клавишу U и каталоги, открытые в противоположных панелях будут без лишних вопросов синхронизированы средствами Unison.

Программа Komparator (http://sourceforge.net/projects/komparator) написана с использованием Qt библиотек. Чтобы ее установить достаточно ввести:

$ sudo apt-get install komparator

Теперь в Правый URL и Левый URL указываем каталоги которые нужно сравнить и нажимаем Искать. Результат после анализа будет показан в трех вкладках в панели внизу: Файлы-дубликаты, Новые файлы и Отсутствующие файлы. Как и в Krusader можно задать шаблон имени, размер, время изменения и другие параметры поиска. Для удобства задаются предустановки, вызвав любой можно быстро сравнить каталог.

Komparator

Программа Conduit (www.conduit-project.org) построенная на гномьих библиотеках хотя, также предназначена для синхронизации, но ее функция несколько шире. Кроме синхронизации файлов между компьютерами, она позволяет снхронизировать фотографии, электронную почту, данные контактов, заметки, календарь и другую информацию со многими он-лайн сервисами и электронными устройствами (мобильные телефоны, iPod, PDA и другие). При необходимости данные автоматически конфертируются в нужный формат. Список сервисов, о которых знает Conduit довольно приличный: Flickr, Picasa, SmugMug, ShutterFly и другие.

Conduit

Так как в пользователь Linux не редко использование нескольких браузеров не лишним будет небольшая программа BookmarkBridge (bookmarkbridge.sourceforge.net) позволяющая синхронизировать закладки. В Ubuntu она устанавливается командой «sudo apt-get install bookmarkbridge«.

bookmarkbridge

В репозитарии нашлась еще одна специализированная консольная утилита tra, но по сравнению с Unison она мне показалась не достаточно понятной.

nix script

Я написал bash скрипт, позволяющий делать простую одностороннюю синхронизацию папок. Можно использовать для бэкапа файлов на съёмный носитель и вообще для синхронизации любых папок на компьютере.

Производить синхронизацию будем с помощью rsync.

Собственно, вот весь скрипт:

Что оно делает

Скрипт в бесконечном цикле выполняет синхронизацию двух папок и имеет следующий синтаксис:

Изменения папки /source/dir/ применяются к папке /destination/dir/dir — переименование файлов, удаление, перемещение и т.п.

Как это работает

Разберём весь скрипт по порядку.

Прежде всего нас интересуют вот эти строчки:

В первой строке мы указываем путь к интерпретатору. Это стандартное начало для bash скриптов.

В следующих двух строчках вводим переменные syncfrom и syncto. Это будут наши параметры, которые мы будем указывать уже при запуске скрипта.

syncfrom будет содержать путь к исходной папке, а syncto путь к папке, в которую будет производиться копирование.

Присваиваем им соотвестственно $1 и $2, что означает, что следующая команда запишет путь /source/dir/ в значение переменной syncfrom и путь /destination/dir/ в значение syncto:

Цифры 1 и 2 означают порядковый номер параметра. Если бы я указал 0, то это было бы название скрипта.

Самое интересное в скрипте это строка с вызовом rsync. Она заключена в бесконечный цикл, чтобы постоянно мониторить нашу исходную папку и при необходимости производить синхронизацию.

Рассмотрим ближе строку

Здесь параметр -aP означает, что rsync будет действовать рекурсивно и выводить лог синхронизации в терминал.

—delete разрешает удаление, если файлы/папки были удалены из исходной папки. Если вам это не нужно, просто не указывайте этот параметр.

$syncfrom и $syncto это, как уже выше было сказано, пути к папкам.

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

В этом примере исключаются файлы desktop.ini и все файлы с расширением .tmp.

В том же цикле, что и rsync вызывается команда sleep со значением 2. Это пауза в две секунды. Она тут ради экономии ресурсов компьютера, чтобы не проводить синхронизацию много тысяч раз в секунду. Раз в две секунды для наших целей вполне достаточно.

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

Так как в параметрах к rsync есть параметр —delete у нас появляется потенциальная угроза потерять данные в случае банальной опечатки или указания пустой директории как исходной.

Для того, чтобы синхронизация не началась с пустой или несуществующей папкой нужно написать обработчики. За это отвечают строки:

Строка c if проверяет существует ли указанная исходная папка и возвращает сообщение об ошибке, если результат ложь.

elif проверяет не пустая ли папка и сообщает, если это так.

Если оба условия выполнились, то синхронизация начинается.

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

Как использовать

Положите файл sync.sh в любое удобное место и дайте ему права на выполнение:

Далее выполните скрипт с указанием параметров:

где /source/dir/ это путь к исходной папке, а /destination/dir/ путь к папке назначения.

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

Статья написана в формате MarkDown и сконвертирована в HTML с помощью скрипта Parsedown.

Сервисы

Статьи

  • Bash-it
  • Отправка письма в терминале через Яндекс
  • Снапшот корня btrfs при обновлении системы
  • Настройка веб-сервера Caddy с PHP на чистом Termux
  • Выхлоп Chromium *chrome://gpu из TermuxArch
  • Работаем с файлами скачанными с Google Photo
  • Создаем свой дистрибутив Manjaro
  • Лечим нерабочие сочетания клавиш в mc
  • Отображение состояния смартфона (Android) на сайте
  • Доступ к компу из интернета без DDNS и покупки доменного имени
  • Оповещение о бекапах
  • Программирование языком автолюбителя
  • Подготовка поста в соц.сеть. Развитие.
  • SVG Введение. Структура файла.
  • SVG Простые фигуры
  • SVG Пути (линии Безье, кривые)
  • SVG Кроим код через bash
  • Синхронизация папок с помощью bash и rsync
  • TermuxArch установка
  • Конвертер VCARD (VCF 3.0) ⧎ CSV
  • watch-srv — Скрипт уведомлений о входе на сервер.
  • VNC на XFCE4
  • Ставим X на TermuxArch

Видео

  • Выбор Linux (видео с канала PLAFON)
  • Скрипт для быстрой подготовки постов для соц.сети.
  • Первое знакомство с SVG для новичков
  • SVG работа с текстом в терминале Linux
  • TermuxArch полный процесс установки
  • TermuxArch установка XFCE4+VNC

Подсказки (Tips)

Контакты

  • VKontakte:@nixscript
  • instagram:@nixscript
  • facebook:@nixscript
  • youtube:@NixScript
  • GitHub:@nixscript
  • own git:@nixscript
  • Сайт Михаила Новосёлова:NixTux.ru

хостинг

Новым клиентам скидка 25% на первый месяц по этой 👉 ссылке или по промокоду: 648148526

Как сделать синхронизацию папки c Linux на Windows?

Для того чтобы отправить файлы в windows c помощью rsync самый лучший способ — это смонтировать файловую систему локального windows-компьютера на сервер через ssh-туннель по smb. Тогда не потребуется устанавливать rsync на сам Windows и это решает проблему с доступом между сервером и домашним компьютером.

Для этого нужно подключаясь к серверу с локального компьютера сделать проброс R-типа. Пробрасывать нужно localhost:445. Затем, нужно чтобы в системе на сервере был установлен пакет cifs-utils. Расшариваете на локальном компьютере нужную папку, затем создаете точку монтирования на сервере, и монтируете туда уже c localhost. Кстати, на нашем сайте есть генератор-скриптов для бэкапов сайта, и в нем реализована генерация такого скрипта.

  1. Создаём пользователя: вводим логин, пароль.
  2. Вводим имя устройства, ставим галочки и нажимаем «Get started».
  3. Меняем язык в настройках, русский поддерживается.

Все действия в интерфейсе производятся через меню «+». Там можно выбрать синхронизировать папку уже находящуюся на сервере или добавить по ключу, которую мы хотим синхронизировать с нашим сервером. Для синхронизации папок создаются специальные ключи и ссылки, которые передаются на другие устройства с такой же программой.

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

Установка и настройка часового пояса в CentOS 7

Для того, чтобы задать нужный вам часовой пояс в операционной системе CentOS 7, есть два метода.

  1. Через утилиту timedatectl
  2. Через утилиту tzdata

Утилита timedatectl

Что хорошо, ее можно сразу использовать из коробки. И так как помните у меня часовой пояс GMT это +0, я хочу изменить на Москву, это +3. Для начала посмотрим доступный список часовых поясов в Centos, делается это ключомlist-timezones.

Список будет огромный, поэтому сделаем фильтрацию по европе.

Нахожу тут Europe / Moscow, то что мне и нужно.

Далее его задаем, командой;

Как видите, все прекрасно поменялось.

Утилита tzdata

В CentOS 7, все настройки о часовых поясах, хранятся файле /etc/localtime и способ с использованием утилиты tzdata, заключается в том, чтобы его подменить на нужный.

Делаем резервную копию файла localtime, командой:

Устанавливаем пакет tzdata

Посмотрим список часовых поясов в папке /usr/share/zoneinfo/

Теперь, когда основной файл localtime мы переименовали, можем за место него сделать символическую ссылку из папки /usr/share/zoneinfo/.

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

Синхронизация времени в Centos 7

NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью. Протокол был разработан Дэвидом Л. Миллсом, профессором Делавэрского университета, в 1985 году.

Рассмотрим 2 утилиты синхронизации времени в Centos:

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector