download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Batch Backup script - help

Автор
Съобщение
phrozencrew
Чет, 24.03.11, 20:10
Здравейте,

Опитвам се да направя някаква проста система за архивиране и съхранение на важни данни от няколко директории под WinXP. Все още не съм измислил какво трябва да представлява, но искам да е просто и да работи без нужда от инсталация на каквото и да е. Т.е. трябва да ползвам архиватор, който не се инсталира и със сигурност да разполага с CLI-интерфейс.
Целта е следната:
1. Имам 2 директории, които да архивирам
C:\Program Files\MCPS\projects
C:\Program Files\MCPS\logs
2. Директориите да се архивират всяка вечер в точен час и след това съдържанието им да се изтрива, като задължително се проверява дали архивирането е било коректно
3. Името на архива да е с днешна дата в формат: dd.mm.yyyy
4. Архивираните копия да се запазват (копират) на отдалечен мапнат сървар:
Y:\Backup\xx\2011\
*xx - е номер на машина, от която архивирам
5. Прави се проверка, дали копирането е минало успешно и след това се изтрива локалното копие

На прима виста ми хрумнаха няколко идеи, но още не съм си изкристализирал всичко. Мисля, че мога да ползвам някои batch инструменти, като move, errorlevel, del, дали да не включа и (md5-сума за копирането???...хммм).
Това трябва да го приложа на 11 машини, които се водят Messrechner-и, т.е. такива на които е абсолютно забранено инсталирането на какъвто и да било софтуер, освен софтуера за лабораторни изследвания. Но пък е мега тъпо да се очаква архивирането и бекъпа да се прави на ръка. И все ще мога да им набутам някой конзолен архиватор, че май WinXP не разполага с такъв или поне аз не знам.

Имам няколко дни за размисъл, как да не си губя времето всеки ден с глупости. И съм сигурен, че можете да ми дадете ценни идеи за задачката.

Предварително благодаря за всяка идея!

редактиран от phrozencrew на 24.03.11 20:55
anonymous
Чет, 24.03.11, 21:30
7zip не покрива ли изискванията?

Попринцип съм чел, че дори и некомпресирано, rsync е много добро решение за такива цели(друг е въпроса дали на теб ти върши работа).

А защо след като бекъпа е важен за компютрите не се дадат и на скрипта права?

insecteater
Чет, 24.03.11, 22:04
Направи си нещо на Autoit, като за копиране можеш да ползваш командата
xcopy /s /c /d /e /h /i /r /y
а пък нататък за проверката ти си знаеш.
После само компилираш каквото си стъкнеш и го ползваш.
zlatena
Чет, 24.03.11, 22:13
Линукс има много подобни архиватори.Предполагам,че имат портабъл варианти и за Windows.
dreven
Чет, 24.03.11, 22:18
Защо държиш да е скрипт. Много по-добре биха стояли нещата, ако е ехе, с интерфейсче за избор на директориите, които искаш да архивираш и мястото където искаш да архивираш.
А ако се направи от ехе-то само да създава задача за Windows с избор на точното време за стартиране то нещата ще станат съвсем професионално. Една такава програмка ще може да се ползва от множество потребители. Потребители, на които няма да им се наложи да учат език за програмиране, за да променят папката, която искат да се архивира. А и самата реализация може би ще е много по-лесна.

Просто разсъждавам над идеята от гледна точка на потребител на подобна програмка.

insecteater
Чет, 24.03.11, 22:37
То като се замисля и на мен май ще ми свърши работа нещо подобно - да може да се слага на компютри независимо с какви акаунти са и да си бачка и да им спасява данните нанякъде по мрежата ...
dreven
Чет, 24.03.11, 23:56
Определено идеята е добра, но за да върши работа на по-широк кръг потребители трябва да е с графичен интерфейс. В противен случай програмата ще умре преди да се е родила.
anonymous
Пет, 25.03.11, 19:23
Днес малко понадрасках един скрипт... test.rar трябва да се деархивира в C:\ и да се стартира с start.hta

в първото поле трябва да се опише кога да бъде стартирано архивирането с таблица на cron http://ru.wikipedia.org/wiki/Cron за пример 0 22 * * 1-5 (всеки ден в 22ч. ще бъде пуснато архивирането.... а стартирането след рестарт става с пряк път в стартуп директорията...

joniewalker
Пет, 25.03.11, 19:34
Ами аз наскоро си писах такъв съвсем простичък скрипт на Macro Scheduler. Скрипта може след това да се компилира до .ехе файл и този файл да си го копираш където искаш и да си го изпълняваш. При мен си бачка бетон.
phrozencrew
Пет, 25.03.11, 20:50
Мерси за идеите, пичове!
Не съм сигурен дали въобще имам нужда от GUI за това чудо. По скоро ми трябва механизъм за качествена проверка за грешки. Задължително трябва да правя такава проверка, най-малкото защото ще пренасям данни на отдалечен мапнат сървар. И ако се сплитне мрежата за известно време си нямам на идея какво ще се получи.
Иначе горе долу намислих базовата работа на скрипта:
@echo off

set machinename="\08\"
set source1="projects\*"
set source2="logs\*"
set destination="D:\Backup"

envtime > time.bat
call time.bat
echo.
set datata=%DOM%.%MON%.%YYEAR%
del time.bat

7za a -tzip %datata%.zip %source1% %source2%

mkdir %destination%%machinename%
copy %datata%.zip %destination%%machinename%

del %datata%.zip

Не разполагам с мрежови директории, за това използвам за пробата D:\. И тъй като не съм сигурен какви са регионалните настройки (немски или български) на всяка от машините използвам envtime.exe от computing.net за да уеднаквя формата на датата. Както ме посъветвахте, използвам 7zip архиватора, който предлага самостоятелно exe за използване от командния ред: 7-Zip Command Line Version

Обаче имам сериозен проблем с проверката за грешки! Още при самото архивиране, ако задам :
if not errorlevel 0 goto exitzip
:exitzip
MSG * "Ima problem s zipvaneto"

Хем скрипта се изпълнява по нататъка, хем ми изскача съобщението за грешка... Фуцк! Нещо някъде бъркам и не знам къде... Хелп!

anonymous
Пет, 25.03.11, 21:21

RE: Batch Backup script - help

” ....
Обаче имам сериозен проблем с проверката за грешки! Още при самото архивиране, ако задам :
if not errorlevel 0 goto exitzip
:exitzip
MSG * "Ima problem s zipvaneto"

Хем скрипта се изпълнява по нататъка, хем ми изскача съобщението за грешка... Фуцк! Нещо някъде бъркам и не знам къде... Хелп! „

Ето един пример за определяне на ос с него ще разбереш принципа на if ...

echo off
ver | find " 9"
if not errorlevel 1 goto win9x
ver | find " 5."
if not errorlevel 1 goto win2k
ver | find " 6."
if not errorlevel 1 goto vista
ver | find " 7."
if not errorlevel 1 goto win7
echo XZ!
goto next
:win9x
echo win9x
goto next
:win2k
echo win2k
goto next
:vista
echo vista
goto next
:win7
echo win7
:next

phrozencrew
Пет, 25.03.11, 22:00
Ахахх, ам съм кух!
goto next
и най-накрая етикет
:next
оправя проблема!
Мерси Еди! Много ценно!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.