Немного про архивацию и резервное копирование. Скрипты и архиваторы.
Цитата:
Вообще-то у архивов zip уже довольно давно нет ограничения на размер файла в 4Гб. В настоящее время ограничение формата - 16EiB (16 экзабайт, или 2^64 байт). Достичь этого предела в ближайшее время вам не удастся чисто физически - в силу отсутствия дискового хранилища подходящей ёмкости :gigi:... И с такими архивами умеют работать все современные архиваторы, которые вообще понимают .zip, включая встроенные средства WinNT 6.x (Vista и всё, что новее)... |
Ну, если уж оффтоп... Действительно, современные архиваторы не страдают ограничением, или не должны бы страдать. Но вот у меня Win7, и как-то архив начиная с примерно 2ГБ родными средствами не читается. Не знаю, почему так. Под родными я понимаю только то, что само открывается из Тотал Коммандера допотопной и примитивной сборки, не адского комбайна. Это как раньше говорили: у меня синенькие не появились, имея в виду, что при загрузке системы не вылез Norton Commander. Ну и у меня почти так. Есть, чем большой архив создать и посмотреть, конечно. Скорее, дело в том, что у nnBackup, которую я использую в большинстве случаев для создания стека архивов, есть свое ограничение - для больших архивов в любом случае к заданию нужно подключать внешний архиватор. Я выбрал 7z, как бесплатный и с собственным легким файл-менеждером, ну и с более плотной паковкой, по сравнению с zip, как бонус. Но вот nnBackup как-то не очень заработала с 7z, да и с другими архиваторами тоже. Я думаю, в силу недостаточной прямизны моих рук на момент их стыковки. Поэтому я стал использовать 7z для архивирования напрямую без nnBackup, а работу со стеком архивов взял на себя Ваш скрипт.
Думаю, что (никакой вообще?) архиватор сам по себе не справится с ведением стека архивов. Так что 7z + этот скрипт = самое то. А nnBackup может еще икрементное архивирование делать и дифференциальное, или как оно правильно называется. Но это к теме вообще не относится. |
Цитата:
Borland, сочтёшь нужным - удали :) |
Plague, это так. Но дело все-таки не в этом - не заработали вместе nnBackup + любой из архиваторов. То есть был нужен стек архивов (скрипт). Его сейчас можно пристроить и с новым zip, например. Изначально вопрос был не в ограничении на размер архива, а в отсутствии механизма поддержки стека у любого архиватора из имеющихся у меня. Я ведь и не утверждаю, что перепробовал все существующие архиваторы. Так что скрипт в любом случае был нужен.
UPD: Я бы тему немного изменил - в конце добавил бы, что здесь годный скрипт... |
Я, конечно, дико извиняюсь, но "главные архиваторы" (каковыми я считаю Winrar и 7-zip) имеют достаточно развитые средства версионирования для целей резервного копирования. В частности - добавление текущих даты/времени в имя архива.
Имея архивные копии с именами типа backup_YYYYMMDD-HHMMSS.7z - количество хранимых архивных копий запросто ограничивается одной (первой) командой скрипта архивации, без всяких "стеков". Просто удаляются все архивные копии кроме последних <N> (собственно, аналог "размера стека"). Буквально такой командой: Код:
for /f %%N in ('dir /b /A:-D /O:-N "backup_????????-??????.7z" ^|more +2') do del /q "%%N" У меня на работе, собственно, именно так производится резервное копирование БД (правда, последнее время даже без архивации - просто на HDD хранятся пара последних по времени дампов БД в папках с соответствующими именами). Архивация дампов даёт совсем небольшой выигрыш по объёму, но очень сильно загружает сервер - дешевле сразу кинуть дамп на ленточку, что и делается. Скрипт резервного копирования запускается стандартным виндовым шедулером, без всякого доп. софта. Он довольно большой (~5k), но около 80% скрипта - команды формирования лога, проверки свободного места, отправки административных оповещений и т.п. Собственно процедура резервного копирования - полтора десятка строк из ~120... P.S. Отделил оффтоп в отдельную тему. |
Вот и у меня именно такие архивы YYYYMMDD-HHMMSS-backup.7z, но главное - как раз это:
Цитата:
А в целом - конечно, Вы правы, можно делать стек без перенумерации, просто удалением последнего по времени архива. |
особо не вникал, но тут вроде что-то на эту тему
https://gallery.technet.microsoft.com/scriptcenter/Backup-create-rotate-files-59178a89 |
Цитата:
Кстати, о 7zip по этой ссылке. Там юзер пишет: When I try to backup "d:\FilesToSave" 7zip throws an access denied error for "d:\System Volume Information"] THIS IS A 7ZIP ERROR NOT A PROBLEM WITH THIS SCRIPT. У меня тоже такое сообщение вылезало. Я уж думал, диску карачун пришел, а это проблема архиватора, видимо. |
Цитата:
Сомневаюсь, чтобы это была проблема архиватора, скорее что-то со скриптом: 7-zip пользуюсь регулярно, и ни разу не замечал, чтобы он лез куда не просят. Если полез - значит его об этом попросили. Разбираться в чужом скрипте на powershell мне, откровенно говоря, просто лень. :gigi: |
бекапить "System Volume Information" - сильный ход :biggrin:
На самом деле - смотреть в конфиге (который там не приведен) - почему он туда полез... |
У меня такое вылезало, когда архивируемая папка лежала в корне диска. Когда в субдиректории - не вылезало. Но, возможно, это просто совпадение, экспериментов не ставил.
Ну и да, насчет бекапа System Volume Information - как раньше мы жили без этого... |
Только что провёл натурный эксперимент. Действительно, при попытке упаковки папки, лежащей в корне диска, консольный 7-zip выдаёт парочку предупреждений (Warning), но отнюдь не ошибок (Error):
Код:
WARNINGS for files: Тем не менее - архив нормально создаётся, и никаких следов "проблемных папок" в нём нет. Т.е. да, это ошибка 7-zip. Но некритичная, ибо нормальной работе не мешает. Offtop:
Хотя и любопытно - какого 7-zip пытается лезть куда не просят.:gigi:
Если пакуется не папка из корня диска, а только её содержимое, либо папка НЕ из корня диска - проблема вообще не возникает. |
Цитата:
|
Часовой пояс GMT +4, время: 01:23. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.