Скрипт для бэкапа каталога

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

    На компьютере установлен архиватор 7z, который выполняет свои обязанности, далее выполняем команду ftp, а в качестве параметра после ключа -s передаём текстовый файл ftp.txt, лежащий в том же каталоге, что и скрипт (в данном случае в корне диска C:)

    cd c:\"Program files"\7-zip
    #Архивируем архиважный каталог garbage в файл backup.zip
    7z a -tzip c:\backup.zip c:\garbage
    cd \
    #Открываем сессию ftp
    ftp -s:"ftp.txt"



    А вот содержимое файла:

    # IP адрес ftp-сервера
    open 192.168.1.1
    #логин
    admin
    #пароль
    admin
    #Указываем каталог на локальном диске
    lcd c:\
    #Передаём файл на сервер
    put backup.zip
    #Завершаем сессию
    bye


    Далее добавляем задачу в планировщик и всё работает.

    Похожие публикации

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 580 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 28

      0
      хорошее название для архиважной папки :)
      Автоматизации это всегда хорошо. У меня есть знакомый «админ», который ездит по субботам на работу только из за подобных еженедельных надобностей, которые можно с легкостью автоматизировать. На мои усмешки, он никак не реагирует, и продолжает тратить свое драгоценное время.
        0
        Ну, это «Саркаазм»)
        Мне это непонятно. Я уже сталкивался с тем, что нечто важное пропадает в самый необходимый момент, а сам я могу и забыть сделать backup. А так скрипт, выполняющийся по расписанию во
          0
          может сократить риск потери. А вашему админу просто, видимо, нечем занять своё «драгоценное время»)
            +1
            Тут скорее всего дело в не профессионализме.
            Я часто вижу, как люди замыкаются в имеющихся знаниях, и не хотят самостоятельно осваивать что то новое.
            Сам я стараюсь автоматизировать все, что только возможно. Иногда ради спортивного интереса. Начиная от ребута роутера, при пропадании интернета, заканчивая отсылкой смс клиентам со статусом заказа.
              0
              Может, мне повезло, но я таких людей редко встречал. Я тоже получаю какое-то удовольствия от процесса получения знаний и если получается то, что долго не удавалось.
          +1
          Возможно, выслуживается перед не столь продвинутым начальством :)
            +4
            А может, деньги зарабатывает: работа в выходные оплачивается по двойному тарифу. А ведь он работает)
              0
              Находчивый :)
          +1
          Автоматизация — друг программиста )
            0
            … и помощник администратора )

            P.S. Советую перенести в соответствующий блог.
              0
              Да нет, пожалуй. Малозначимый топик, скорее просто заметка.
            +1
            Слабовато.

            Реализовывал нечто подобное. Некоторые заметки.

            Для архивации не требуется установленный 7z. Достаточно файлов 7z.exe и 7z.dll.

            В вашем случае файл резервной копии будет каждый раз перезаписываться, т.е. у вас будет только последняя (поврежденная) и предпоследняя копия файлов. Что бы этого не происходило делаем следующее:
            rem Присваиваем переменным значения ГГ, ММ, ДД, ЧЧ и ММ
            set toEE=%date:~8,2%
            set toMM=%date:~3,2%
            set toDD=%date:~0,2%
            set toHH=%time:~0,2%
            set toNN=%time:~3,2%

            rem Создаем папки на двух дисках \ГГ\ММ\ДД\
            md D:\BackUp\%toEE%\%toMM%\%toDD%\

            rem Добавляем к имени каждого ZIP-архива через подчекривание ГГ.ММ.ДД_ЧЧ.ММ
            rem и копируем на второй физический диск в папку \ГГ\ММ\ДД\
            copy С:\BackUp\file.name.zip «D:\BackUp\%toEE%\%toMM%\%toDD%\file.name_%toEE%.%toMM%.%toDD%_%toHH%.%toNN%.zip»
              0
              Спасибо за замечания. Попробую учесть их.
                0
                Хочу заметить, что если переместить ваш bat в автозагрузку вы получите еще больший автоматизм
                этой операции
                  0
                  Скрипт выполняется в планировщике раз в неделю. Тем более компьютер выключается в двух случаях: вырубилось питание, заглючила винда — то есть редко. Плюс там архивчик на 20 ГБ, а это, наверно, будет грузить систему и сеть.
                    0
                    Лучше планировщик задач.
                  +1
                  а как бы сделать так, чтобы количество архивов было не больше 5 например? т.е. за последние 5 дней и т.п.
                    0
                    www.sql.ru/forum/actualthread.aspx?bid=3&tid=512748&pg=2#5141924
                    Пользуюсь этим vbs скриптом.
                      0
                      Будет посложнее.

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

                      Некоторые причины вынудили перейти с батников на использование Cobian Backup. Пока устраивает.
                        +2
                        все делается проще
                        берется forfiles.exe из Windows 2003, копируется в директорию с bat'ником

                        и в него дописывается всего одна строка
                        forfiles /p D:\BACKUP /s /d -7 /m *.dmp /C «cmd /c del /f /q @path»

                        где
                        D:\BACKUP — директория, в которой лежат файлы с backup'ами
                        7 — количество дней, за которые будут храниться файлы, в данном случае все старше 7 дней будет удаляться
                        *.dmp — маска файлов, которые будут обрабатываться
                          0
                          Спасибо. Удобно.
                    0
                    Как 7z порезать рар архивы по 200мб кусок к примеру?
                    раром вот так
                    rar a -ep -m0 -v200m file.rar file.avi
                    а как сделать через 7z?
                      0
                      Насколько я помню, используется тоже ключ -v
                      0
                      Я точно так же у себя бекап на ftp делаю. Кроме ftp еще шлю файл себе на e-mail, используя утилиту postie www.infradig.com/
                        0
                        Использую консольный ftp автоматизации обновления cureit от DRWEB:
                        ftp -s:«ftp.txt»

                        Cодержимое ftp.txt:

                        open ftp.drweb.com
                        anonymous
                        anonymous
                        cd pub
                        cd drweb
                        cd cureit
                        get cureit.exe
                        quit

                        И в планировщик :)
                          +2
                          Если мне не изменяет память, то в фильме «Хакеры» в качестве доказательства взлома были скопированы очень мегасекретные данные из папки «garbage» с какого-то сервера.

                          Так что с названием папки все ок! :)
                            0
                            Я так делаю:
                            «C:\Program Files\7-Zip\7z.exe» a -t7z -ssw \\192.168.24.16\BackUP\GARBAGE\%date%.bzip2 F:\Docs\ -m0=bzip2 -mmt=4 | findstr /P /I /V «Compressing» >> \\192.168.24.16\BackUP\GARBAGE\log_file.%date%.txt

                            Да, название папки я не менял ))
                              0
                              С командной строкой Windows я мало знаком. Придётся посидеть поразбираться с вашим скриптом) — будет полезно.

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

                            Самое читаемое