Резервное копирование файла Powershell
Обновлено: 21.11.2024
Моя система резервного копирования PowerShell почти исчерпана. В прошлый раз я показал вам, как я справляюсь со своими ежедневными инкрементными резервными копиями. Сегодня я решил, что должен вернуться назад и вернуться к тому, как я справляюсь с еженедельными полными резервными копиями. Помните, я беспокоюсь только о резервном копировании нескольких важных папок. Я сохранил этот список в файле, который я могу обновить в любое время, если мне нужно будет начать резервное копирование чего-то еще.
Запланированное задание PowerShell
Начнем с кода, который я использую для настройки запланированного задания PowerShell, которое запускается каждую пятницу в 22:00. Я сохраняю код в файле скрипта, чтобы при необходимости воссоздать задание.
Одна вещь, которую я хочу отметить, это то, что вместо определения блока сценария я указываю путь к файлу. Таким образом, я могу настроить сценарий так, как хочу, без необходимости воссоздавать или изменять запланированное задание. Конечно, поскольку у меня есть это в файле сценария, это не так сложно, но мне не нравится трогать что-то, что работает, если мне это не нужно. Я включаю учетные данные, поскольку часть моей задачи будет включать копирование архивных файлов резервных копий на мое устройство Synology NAS.
Сценарий управления резервным копированием
Сценарий, запускаемый запланированным заданием, довольно прост. Он должен обработать список каталогов и создать резервную копию каждой папки в файле RAR. Я использую WinRar для решения архивации. Вы можете заменить свой собственный резервный или архивный код. У меня есть несколько вариантов, которые я сохраню в следующих статьях. Затем каждый архивный файл перемещается на мое устройство NAS. Теперь, когда я об этом думаю, мне, вероятно, следует добавить некоторый код для отправки копии на один из моих облачных дисков, таких как OneDrive.
Вот полный сценарий.
Сценарий RarBackup.ps1 выполняет фактическое архивирование и копирование на NAS.
Сценарий резервного копирования
Этот файл вызывает мои команды RAR для создания архива и его копирования на NAS. У меня есть код, использующий Get-FileHash для проверки успешности копирования файла.
Конструктивно я мог бы поместить весь этот код в один сценарий PowerShell. Но мне нравится более модульный подход, чтобы я мог повторно использовать сценарии или команды. Или, если мне нужно что-то пересмотреть, мне не нужно беспокоиться о поломке монолитного сценария.
Отчетность
Последний шаг, о котором я хочу рассказать, – отчетность. Я не слишком беспокоюсь о проверке результатов запланированных заданий. Все, что мне нужно сделать, это проверить мою резервную папку на наличие моих архивных файлов. Поскольку мои архивы резервных копий следуют стандартному соглашению об именах, я могу использовать регулярные выражения для сопоставления имени файла. Я использую этот управляющий скрипт для просмотра своих архивов резервных копий.
По умолчанию отображается форматированный вывод.
Обычно вы никогда не захотите включать командлеты Format в свой код. Но в этом случае я использую сценарий, чтобы получить желаемый результат без необходимости много печатать. Вот почему это скрипт, а не функция. Имея это в виду, сценарий управления также имеет параметр -Raw, который записывает файловые объекты в конвейер.
Мой сценарий еженедельного резервного копирования удаляет добавочные файлы. На данный момент я вручную удалю старые полные резервные копии. Хотя я мог бы добавить код, чтобы сохранить только последние 5 полных резервных копий.
Эта система все еще новая, и я постоянно дорабатываю и добавляю новые инструменты. Я не думаю, что смогу превратить это в полноценный автономный модуль PowerShell, учитывая, что я написал свой код для себя и своей сети. Но моего кода должно быть достаточно, чтобы вы могли использовать его для создания собственного решения. У меня есть несколько других идей и методов резервного копирования, которыми я поделюсь с вами в другой раз. А пока я хотел бы услышать, что вы думаете обо всем этом.
Этот сценарий был опубликован в 2014 году, а навыки работы с Powershell минимальны. Вам, сообществу, это понравилось.
Через Github, Mail, Facebook и Twitter я получил много отзывов и отчетов об ошибках 🙂
Итак, сегодня я опубликовал полностью новую версию 2.0! С большим количеством исправленных ошибок, почти со всеми функциями, которые были в старом, и, на мой взгляд, с лучшим кодом.
И, конечно же, с большой помощью сообщества.
Сценарий
Репозиторий GitHub
Убедитесь, что у вас установлена последняя версия с GitHub.
Майкл Зайдл, он же Techguy
автоматизирует все
Понравилось это сообщение?
Вот так:
-
Я обновил свой сценарий резервного копирования PowerShell и хочу предоставить вам новую версию. Я добавил кое-что новое.Я обновил свой сценарий резервного копирования PowerShell и хочу предоставить вам новую версию. Новый.Ich habe gerade mein BackupScript angepasst und möchte euch das natürlich zur Verfügung stellen. Es waren viele Änderungen unter.Ich habe gerade mein BackupScript angepasst und möchte euch das natürlich zur Verfügung stellen. Es waren viele Änderungen unter.Я пишу много скриптов в течение дня и недель, поэтому часто копирую некоторые базовые функции.
8 мыслей о «выпуске PowerShell BackupScript версии 2.0»
ist es möglich, Dateien außerhalb von Unterordner zu (mit)kopieren?
Здравствуйте, это был meinst du genau damit?
Вилен Данк для сценария. Ich finde das ganze echt toll. Все, что вам нужно сделать с резервной копией.
Wenn ich nun einen zu speichernden Pfad definiere, dann werden einzig die Unterordner (und die darin enthaltenen Dateien) gespeichert. Jedoch nicht die im Pfad abgespeicherten Dateien.
Бейспиль:
Nun werden die im OrderSave befindlichen UnterOrdner abespeichert. Aber die Files, die direkt im OrdnerSave liegen werden nicht in den $Destination-Pfad kopiert.
ich nehme das auf und werde das beim nächsten Release anpassen
Можно ли отредактировать этот сценарий, чтобы добавить шифрование и защиту паролем в полученный ZIP-файл?
Здравствуйте! Конечно, если вы хотите, чтобы это было реализовано, пожалуйста, добавьте запрос функции на GitHub
Tolles Script und genau die Lösung für mich.
Ich bekomme leider die Fehlermeldung:
01.04.2022-11:21:38: Не удалось измерить Backupdir
01.04.2022-11:21:38: Это не может быть изменено, eine Methode für einen Ausdruck aufzurufen, der den NULL hat. Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat. Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat. Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
01.04.2022-11:21:38: Ошибка BackUpCheck, не пытайтесь архивировать
В прошлом месяце я начал проект по резервному копированию важных папок. Этот процесс резервного копирования — не что иное, как еще один вариант восстановления, если он мне понадобится. Тем не менее, он работает уже больше месяца, и теперь у меня есть несколько полных файлов резервных копий. Мне не нужно держать их всех. Если я оставлю 4 последних полных резервных копии, этого должно быть достаточно. Вот как я управляю этим процессом с помощью PowerShell.
Когда я создаю файл полной резервной копии, он копируется в общую папку на моем устройстве Synology NAS. Вот что у меня сейчас.
Если вы помните, каждое имя файла включает то, что по сути является описанием набора; Скрипты и Dropbox например. Достаточно просто отсортировать файлы по времени последней записи, а затем соответственно удалить. У меня есть 5 наборов, и я могу запустить это:
Это должны быть самые старые файлы, которые я могу удалить. Однако я не хочу делать никаких предположений. Что делать, если полная резервная копия не была завершена в течение одной недели или я вручную запустил дополнительную полную резервную копию? Мне нужен более изощренный подход. Начнем снова.
Сначала получите все файлы резервных копий.
Затем, используя шаблон регулярного выражения для извлечения имени набора резервных копий, я группирую файлы.
Регулярное выражение ищет текст, которому предшествует _, а за ним следует -. Это просмотр назад и просмотр вперед.
Теперь я могу обрабатывать каждую группу, сортировать файлы и удалять самые старые.
Вот мой полный скрипт PowerShell для резервного копирования.
Я могу добавить этот скрипт в конец сценария еженедельного резервного копирования и удалить старые файлы. Я могу периодически вручную проверять свои папки резервных копий, чтобы убедиться, что я сохраняю только то, что мне действительно нужно. В противном случае я могу расслабиться и позволить PowerShell сделать за меня мою работу.
Я нашел в Интернете сценарий, который позволяет мне создавать резервные копии моих файлов на сетевом диске. Я изменил несколько вещей, чтобы настроить его так, как мне нужно, но я не хочу, чтобы он удалял мою резервную папку каждый раз, когда я ее запускаю, и копировал их заново. Я действительно хочу отразить свои файлы, чтобы, если я добавлю или удалю файлы из исходного каталога, он обновился вместо удаления исходной папки и повторной передачи всех файлов. Вот скрипт ниже.Любая помощь будет здорово. Спасибо!
Примите участие, чтобы выиграть Oculus Win, наушники/колонки или подарочную карту на 300 евро
Точно
- отметить 1206 лучших ответов
- thumb_up 2682 благодарных голоса
Я согласен, что кода для резервного копирования папки слишком много
Veem Endpoint Backup предоставляется бесплатно
Robocopy – это отличная утилита, которая также может легко создавать резервные копии папок
4 ответа
Рокн
Почему бы не использовать настоящую утилиту резервного копирования или Robocopy?
Точно
- отметить 1206 лучших ответов
- thumb_up 2682 благодарных голоса
Я согласен, что кода для резервного копирования папки слишком много
Veem Endpoint Backup предоставляется бесплатно
Robocopy – это отличная утилита, которая также может легко создавать резервные копии папок
Я буду больше изучать эти утилиты. Спасибо
ДжитэнШ
- отметить 473 лучших ответа
- thumb_up: 738 благодарных отзывов
Выполняйте резервное копирование Windows, но попробуйте также вспомогательное резервное копирование или kls
Эта тема заблокирована администратором и больше не открыта для комментариев.
Чтобы продолжить это обсуждение, задайте новый вопрос.
Щелкни! Обновление Linux, Паролей больше нет?, Атаки BitB, Juno Pictures, Новый лед
Ваша ежедневная доза технических новостей. Вы должны это услышать. Появляется Linux 5.17: Вот что внутри Торвальдс и его команда снова обновили ядро Linux, после некоторых трудных времен из-за некоторых изменений в последнюю минуту. Работа начинается на n.
Удобные наушники для работы из дома — чтобы слышать шум, но не передавать его
Поскольку все больше и больше людей работают из дома, требования к функциям гарнитур немного изменились. Теперь многим людям не нужны гарнитуры, которые полностью изолируют их от окружающей среды, потому что рядом с ними может находиться ребенок, которому нужно быть собой.
Эргономичное оборудование
Кто в США должен нести ответственность за предоставление эргономичного оборудования по запросу сотрудника? Это ИТ, поскольку ИТ предоставляет клавиатуры и мыши? Должен ли это быть HR, поскольку он эргономичен и несет потенциальную ответственность, если НЕ предоставляется? Должен ли это быть тот отдел.
Приветствие Xfinity (личный домашний Интернет)
Во-первых, мне больно. Я мог бы произнести речь «Он ставит передо мной задачу», как Хан в «Звездном пути 2: Гнев Хана». Просто замените «Они» на «Он». Но они сделали то, чего я хотел годами (десятилетиями?), так что, думаю, это должно быть признано. Ю.
Щелкни! SATCOM Threat, IE End of Life, Mac с кирпичами, Planet 9, Lego Delorean
Ваша ежедневная доза технических новостей. Вы должны это услышать. ФБР и CISA предупреждают об угрозах для сетей спутниковой связи Согласно новому предупреждению ФБР и CISA спутниковые сети находятся в зоне высокого риска. Согласно ZDNet.
Читайте также: