Делаем резервные копии с помощью xcopy. Где хранит письма почтовый клиент The Bat! Удаление сессии резервного копирования в bat

Делаем резервные копии с помощью xcopy. Где хранит письма почтовый клиент The Bat! Удаление сессии резервного копирования в bat

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

9 сентября 2007

Н едавно у меня появилась необходимость иметь резервную копию одной базы данных за последние несколько дней. Одним из условий было реализовать это всё без использования сторонних или самописных программ. После недолгих размышлений было решено реализовать это с помощью стандартных dos-овских команд, описанных в.bat-файле.

Т е, кто умеют писать BAT-файлы, могут дальше не читать в принципе. Для остальных поясню, что все строчки, начинающиеся с rem, являются комментариями. Следовательно, они не выполняются и вы можете копировать код целиком.

А лгоритм очень простой. У нас есть две папки archive_new , где хранится архив за вчера, и archive_old , где хранится архив за позавчера. Таким образом получаем следующее:


rmdir /s /q \\server\archive\archive_old

ren \\server\archive\archive_new archive_old

mkdir \\server\archive\archive_new
rem Копируем файлы с базой данных в папку archive_new
copy /y *.base \\server\archive\archive_new

В сё. При таком алгоритме, выполняющемся раз в день, мы будем иметь две резервные копии: за вчера и позавчера.

Э тот простейший алгоритм идеально подходит, когда нужно просто копировать файлы в другое место. У него есть два минуса.

В о-первых базы могут быть большими.

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

Д ва этих минуса легко решаются путём архивирования баз данных и задания переменных для относительных путей.


rem Вместо названия архива будет использована текущая дата
SET archive_name=%date%.rar

rem Удаляем папку archive_old

rem Переименовываем папку archive_new в archive_old

rem Создаём директорию archive_new

rem Архивируем все файлы кроме *.exe и *.bat
rar a -r -m5 -x*.bat -x*.exe %archive_name%
rem Копируем архив с базой данных в папку archive_new
copy /y %archive_name% %server_dir%\archive_new \
rem Перемещаем архив
move %archive_name% %serev_dir%\archive_new \

NB: для того, что бы работала строчка с архивированием, вам понадобиться файл «rar.exe» из стандартной поставки WinRar"а.

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

rem Объявляем переменные для названия архива и пути архивной папки на сервере
SET archive_name=%date%.rar
SET server_dir=\\server\archive\
SET temp_dir=\\temp\
rem Удаляем папку archive_old
rmdir /s /q %server_dir%\archive_old
rem Переименовываем папку archive_new в archive_old
ren %server_dir%\archive_new archive_old
rem Создаём директорию archive_new
mkdir %server_dir%\archive_new
rem Копируем файлы с базой данных в папку temp
copy /y *.base %temp_dir%
rem Архивируем все файлы в папке temp, кроме *.exe и *.bat
rar a -r -m5 -ep1 -x*.bat -x*.exe %archive_name% %temp_dir%
rem Перемещаем архив в папку archive_new
move %archive_name% %server_dir%\archive_new \
rem Очищаем содержимое папки temp
del /q %temp_dir%*.*

В от в общем-то и всё. Теперь только осталось сделать расписание для выполнение этого.BAT-файла и можно не беспокоиться о сохранности базы данных сайта.

P.S. Для тех, кто хочет поизвращаться, большинство описанных здесь вещей можно сделать через ключи в RAR"е.

Все мы не раз слышали о необходимости выполнения резервного копирования данных. Крах системы, чьи-то шаловливые ручки, или они же, только свои, да еще множество причин, по которым ваши данные могут испортиться или уничтожиться. Тем, кому приходилось неделями восстанавливать утраченные данные, это объяснять уже не приходится.

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

Автоматическое резервное сохранение должно удовлетворять определенным требованиям:

  • должно выполняться регулярно. Причем период копирования определяется частотой обновления данных. Т.е. если файлы изменяются каждый день, то и копировать их нужно каждый день;
  • копии должно храниться отдельно от источника данных. Это может быть внешний диск, а еще лучше хранить копии на удаленном сервере или в облаке в интернете. Тогда даже если комната с компьютером и внешним диском взлетит на воздух, данные преспокойно останутся храниться в облаке на мощных и защищенных серверах крупных ИТ-компаний;
  • если хранилище имеет небольшой размер, копии должны сжиматься для экономии места;
  • по той же причине нужно вести контроль количества последних хранящихся копий. Например, для очень важных данных у меня хранятся 7 ежедневных, 4 еженедельных и 12 ежемесячных копий. Остальные копии удаляются за ненадобностью;
  • после выполнения сохранения нужно проверить наличие резервной копии и ее целостность.

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

Чтобы сделать автоматический запуск файла, например, раз в неделю, нужно

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

Еще в процессе установки The Bat! вы могли выбирать, где разместить почтовый каталог. И если соответствующий путь вы тогда не указали, значит программа использует вариант по умолчанию:

C:\Users\Имя_Пользователя\AppData\Roaming\The Bat!

Переходим в почтовый каталог The Bat! и сразу отмечаем одну или несколько папок с названиями наших ящиков. В них и хранятся все данные email-профилей. И письма в том числе.

Но здесь не все так однозначно. Почтовик не хранит каждое письмо в отдельном файле. Для входящей и исходящей почты существуют свои базы данных — что-то вроде архивов. Поэтому восстановить конкретное сообщение у вас не получится — придется «реставрировать» все хранилище.


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

Как резервировать и восстанавливать письма в The Bat!

Допустим, вы переустановили мейлер от Ritlabs и определили новую директорию для почтового каталога. Утраченные письма в этом случае можно легко восстановить. Для этого просто переместите папку с данными нужного ящика по новому пути.

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

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


После этого резервную копию писем можно импортировать, к примеру, в The Bat!, установленный на другом ПК.


В результате письма из резервной копии будут полностью восстановлены и помещены в прежнюю папку почтового аккаунта.

Сегодня мы узнаем про то, что такое bat файл и заодно создадим один из них.

Думаю, что многие, так или иначе, периодически создают (так называемые backup -ы) тех или иных файлов и папок.

Вроде все привычно и делать ничего особо сложного не надо: вставить флешку, открыть "Мой компьютер ", найти что надо скопировать, выделить, тыкнуть мышкой, выбрать "скопировать", перебраться в нужный каталог, тыкнуть "вставить" и тд.

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

Поехали.

Bat файл - что к чему, вводная

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

Пакетный файл (т.е bat файл, от англ. batch file ) - текстовый файл в MS-DOS, OS/2 или Windows , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.

После запуска пакетного файла, программа - интерпретатор (как правило COMMAND.COM или CMD.EXE ) читает его строка за строкой и последовательно исполняет команды.

Пакетный файл - аналог shell script в Unix -подобных операционных системах.

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

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

Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for ), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного - 1 или большее значение).

Пакетные файлы в DOS имеют расширение.bat ; для других операционных систем они могут иметь другие расширения - например, .CMD в Windows NT и OS/2 , или .BTM в 4DOS или подобных оболочках.

С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.

Как создать bat файл и использовать его

Давайте подготовим небольшое тестовое поле, чтобы было на базе чего экспериментировать. Откройте мой компьютер и создайте на диске C:\ папочку test . Зайдите в неё и создайте в ней папку .

Накидайте туда файлов (штук 5-10 ) - фотки, документы и тд и тп (любых короче). Поле для экспериментов готово. Далее нам надо создать, собственно, сам bat файл по нажатию на который у нас будет происходить копирование папки C:\test\testcopy в, скажем, папку C:\test\backup . Создавать вторую папку (которая backup ) не надо - она будет появляться автоматически.

Создать bat очень просто. Жмем правой кнопкой мышки там где хотим его создать (расположение не важно - можно прямо на рабочем столе) и выбираем "Создать " - "Текстовый документ ".

Задаем созданному файлу название и открываем его блокнотом или любым другим текстовым редактором. Т.е. на данный момент мы имеем открытый текстовый файлик, который называется, допустим, копирование.txt .

Добавляем в файл команду, например, для копирования

Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводиться по средством консоли (cmd ) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:

xcopy C:\test\testcopy C:\test\backup /f /i /y /s

Разъясняю что тут к чему:

  • xcopy - это сама команда;
  • C:\test\testcopy - это источник, т.е. папка откуда копируются файлы и каталоги;
  • C:\test\backup - это результат, т.е. место, куда будут скопированы файлы и каталоги;
  • /f /i /y /s - дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).

Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.

Какие есть (т.е. те, что я указал в данном примере):

  • /f - выводит имена исходных файлов и файлов-результатов в процессе копирования
  • /i - создает новый каталог в случае, если тот отсутствует в конечном пути
  • /y - перезаписывает файл в случае, если он уже есть
  • /s - копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.

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

Меняем формат файла и пробуем его запустить

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

Жмем "Применить " и "Ок ". Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем "Переименовать " и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).

В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):

Собственно, все, что нам остается - это запустить этот файл простым кликом по нему мышки.

Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:

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

Послесловие

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

При желании можно поставить запуск этого bat -ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup "ов.

Если есть какие-то вопросы или проблемы - спрашивайте. Как всегда помогу чем смогу;)

PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела "Автоматизация администрирования ".. так что можете собой гордится:)

Программ для создания резервных копий (backup, бэкап) великое множество. Есть и платные, есть и бесплатные. В некоторых используются «мастера», которые позволяют указать массу параметров, не прибегая к сложному процессу настройки.

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

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

Для того, чтобы скопировать файл/каталог используется команда xcopy . Она имеет много параметров, но в общем случае указывается так:

Xcopy "D:\myfiles\*.*" "j:\backup\myfiles\*.*"

Данная команда скопирует каталог «d:\myfiles » в «j:\backup\myfiles ».

Итак наши действия очень просты. Вначале откроем Notepad2 . В нем нужно указать те каталоги, которые следует резервировать. Лично у меня важные данные хранятся в нескольких каталогах: «txt», «work» и т.д.

Вторым параметром мы указываем куда следует скопировать. Обычно я для резервирования использую внешний жесткий диск (USB).

Для того, чтобы Windows при каждом его подключении присваивала одну и ту же букву диска, нужно войти в Панель управления - Администрирование - Управление Компьютером - Управление дисками . На подключенном диске кликните правой кнопокй мыши и выберите «Изменить букву диска или путь к диску... ». В открывшемся окне выберите «Изменить » и укажите нужную букву. Например, у меня указано «J».

Для удобства лучше сохранять имена каталогов, чтобы потом не запутаться. А сам бэкап я размещаю в отдельном каталоге «backup ».

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

Вот рабочий пример резервирования кошельков WEBMONEY и Яндекс-Деньги :

Xcopy "C:\Program Files\WEBMONEY\*.*" "j:\backup\WEBMONEY*.*" /E /F /H /R /K /Y /D xcopy "C:\Program Files\Wallet\*.*" "j:\backup\Wallet*.*" /E /F /H /R /K /Y /D

Эти строки нужно скопировать в Notepad2 и сохранить в файле с расширением «.bat», например «backup.bat ». Теперь нам достаточно только запустить его и все будет сделано автоматически.

Теперь обратите внимание, что пути мы указываем в кавычках «"» - это требование Windows для длинных имен. Каталоги разделяются обратным слэшем «». В конце указываются параметры для xcopy .

То есть вам нужно только указать ваши каталоги для резервирования и сохранить как «backup.bat ». Вы можете сделать несколько таких файлов: процесс копирования может иногда занимать много времени, поэтому какие-то совсем критичные данные я копирую чаще - для них существует другой файл «QiuсkBACKUP.BAT ».

Естественно вам нужно следить за тем, чтобы на приёмном диске было достаточно места.

Теперь следующий момент, с которым вы можете столкнуться - неверная кодировка текста. Дело в том, что русские буквы для DOS (где и происходит копирование) отличаются от Windows (где вы создали bat-файл). Например у меня есть каталог «c:\Избранное ». Если я запущу bat-файл, то ничего не произойдет, поскольку xcopy его просто не найдет. Поэтому наш bat-файл нужно преобразовать в DOS-кодировку (её часто называют «OEM »).

Для этого мы выделяем такие строчки в Notepad2 и жмем Ctrl+Shift+O (или Edit - Convert - To OEM Text ). Вы увидите «белиберду», но не пугайтесь, так и должно быть. В моем примере это выглядит так: «c:?§Ўа ­­®Ґ »

Если у вас есть Total Commander , то вы можете просмотреть этот файл по F3 и в просмотрщике переключить кодировку - клавиша «S ».

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

Здесь задача совсем несложная: вначале нужно удалить старый «old », после этого переименовать текущий бэкап в «old » и скопировать как обычно xcopy . Вот пример резервирования каталога «c:\work »:

Del "j:\backup\work_old" /s /q rmdir "j:\backup\work_old" /s /q rename "j:\backup\work" "work_old" xcopy "c:\work\*.*" "j:\backup\work*.*" /E /F /H /R /K /Y /D

Команда «del » удаляет все файлы из каталога. Команда «rmdir » удаляет пустой каталог. Команда «rename » переименовывает файлы. А командой «xcopy » мы, как обычно, копируем файлы.

просмотров