IT-инфраструктура для бизнеса и творчества
Разработка
NTA

SynсToy. Используем утилиту для быстрого архивирования данных

Иногда у нас возникает необходимость быстро синхронизировать файлы в двух каталогах – например, с целью актуализации архива на внешнем носителе, резервного копирования файлов и т.д. Это можно сделать при помощи небольшой бесплатной утилиты от Microsoft – SyncToy.

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

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

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

Как же обеспечить актуальность этих резервных копий?

Способов много.

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

Можно стереть старый архив и скопировать данные заново – в этом случае на какое-то время у вас совсем не будет резервных копий.

Можно заменять в архиве только измененные данные – в этом случае вашей памяти можно только позавидовать.

Для решения этой задачи компания Microsoft предлагает простое, свободно распространяемое решение – утилиту SincToy, которую можно скачать с сайта компании.

После запуска программы мы попадаем в основное окно системы.

Давайте попробуем создать резервную копию одной из наших папок. Нажимаем кнопку Create New Folder Pair. Появляется окошко с изображением двух папок.

Левая папка — это источник наших данных. Правая папка – расположение нашего архива (архивная папка может быть создана в процессе, если она не существовала ранее). Выбрав через окно браузера расположение папки-источника (H:\AUDIO\HiRes\Dire Straits) и папки с архивом (D:\backup\AUDIO),

нажимаем кнопку Next и переходим к следующему шагу. Что мы хотим сделать? Система предлагает нам три возможности.

Синхронизировать (Synchronize) – итогом этой операции будут две полностью идентичные папки. При этом, если вы с момента предыдущего копирования удалили какую-то информацию из папки-источника – она будет восстановлена в этой папке из архива.

Отразить (Echo) – это наиболее подходящий для нашей задачи вариант, когда папка архива приводится в соответствие с папкой-источником. Файлы, которые вы удалили с момента предыдущего копирования в источнике, также будут удалены в архиве.

Дополнить (Contribute) — отличается от предыдущего тем, что новые и измененные файлы переносятся в архив, как и в предыдущем случае, однако файлы, которые ранее были удалены в источнике — в архиве теперь не удаляются.

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

На этом подготовительные работы заканчиваются. Нажимаем кнопку Finish.

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

Кнопка Preview позволяет просмотреть, какие действия с файлами будут производится при нажатии кнопки Run.

Также в нижней части окна имеется информация о последней дате выполнения данной задачи архивации (в данном случае там отражено, что задача еще не запускалась).

Итак, поехали!

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

Еще один важный момент. В папке-источнике утилита оставляет файл вот такого вида.

Не удаляйте его – он нужен для обеспечения корректной архивации.

Вот и все! Ваши резервные копии теперь всегда актуальны (если вы, конечно, не будете забывать регулярно запускать эту утилиту).

Здоровья вам и вашим данным!

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
3 комментария
Популярные
По порядку

L0L, изобрели Grsync. Ламповая графика с ХРюши☺️

1

А можно ли по маске задать какие папки и файлы учитывать?

0

А разве это не умеют делать Total commander\FAR из коробки?
Да и утилита сама по себе хрень. Где копирование в облако, почему нет хотя бы FTP (и вариаций типа SSH)?
Копирование в пределах одного компьютера из вышепреведенного примера -  это же ошибка, нельзя такое советовать.

0
Читать все 3 комментария
Из науки в IT: как создать свой стартап и стать преподавателем

Как перейти в IT из другой сферы? Как разработать курс, которому нет аналогов? Как студенту получить максимум пользы от занятий? Рассказывает преподаватель OTUS Сергей Окатов, руководитель курсов «Kotlin Backend Developer» и «Kotlin Developer. Basic».

Авито возглавила три рейтинга App Annie
5 неожиданных сервисов Почты России, которые постоянно выручают меня в бизнесе

В прошлом году я открыл для себя совершенно удивительные фишки Почты России. С тех пор апка Почты у меня на главном экране в айфоне.

Улучшили лендинг сообщества маркетологов, опросив 80 человек: неочевидный способ использования custdev

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

Завод по производству идей. Как работают акселераторы, зачем они нужны стартапам и куда идти с идеей прямо сейчас

По данным Startup Genome, 9 из 10 стартапов терпят неудачу. Возможных причин «смерти» много: недостаточно протестированная гипотеза, неподтвержденная юнит-экономика, неверная стратегия или просто неудача в подходе к продажам.

Кнопка 112 — приложение с определением адреса и большой кнопкой вызова
«Я никогда не видел мошенничества такого масштаба»: золотодобыча, которая стоила акционерам $3 млрд Статьи редакции

Проект разработки «крупнейшего золотого месторождения» компанией Bre-X на острове Борнео оказался мошенничеством на миллиарды долларов, за которое так и не смогли никого наказать.

Команда Bre-X на Борнео, около 1997 года, слева направо: менеджер участка Джером Альто, старший вице-президент Джон Фельдерхоф, менеджер по разведке Майкл де Гузман и геолог Сезар Пуспос Сalgary Herald
Хочу кухню как у подруги: зачем в Циан сделали поиск квартир по фото

Рассказывает Юлия Зыкова, руководитель команды «Аудитория» в Циан.

@АнтиспамБот — когда ты реальная заноза в з@днице, или как давали отпор «П0шлым_Дев4енкам»

Прошло меньше двух недель с того дня, как в статье на vc.ru я рассказал про @antispamname_bot, предназначенный для борьбы со спамом в никнейме юзеров телеграмма вида «PEАЛЬНЫЕ_ZНAКОМСТVА» и «ПОИСК_PAPTHЕRОV». В новой статье я поделюсь тем, как прошли эти 10 дней: как бота подключили огромные чаты медиа изданий с аудиторией 100 000+ человек, чаты…

Что Tele2 предлагает клиентам в «черную пятницу»

На главной распродаже года клиентов компании ждут сразу несколько интересных предложений: скидки на смартфоны, пакеты SMS и безлимитный трафик на YouTube, Яндекс.Карты, Яндекс.Навигатор.

«Сбермегамаркет» игнорирует претензию клиента

Всем добрый день, господа. Произошла следующая ситуация: являюсь гордым владельцем трёх шерстяных олухов, каждый из которых жалобно пищит, не получая свою вкусняшку. Ранее заказывал в основном Brit с Яндекса, но в этот раз цены там были мягко говоря неадекватные, вследствие чего был вынужден обратить свой взор на сторонние предложение, благо…

null