Автор |
|
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 не разполага с такъв или поне аз не знам. Имам няколко дни за размисъл, как да не си губя времето всеки ден с глупости. И съм сигурен, че можете да ми дадете ценни идеи за задачката. Предварително благодаря за всяка идея! |
|
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 оправя проблема! Мерси Еди! Много ценно! |
|