копирование папки

Тема в разделе "PHP программирование", создана пользователем RID, 9 апр 2008.

  1. RID

    RID Гость

    нуна помощь, надо скопировать папку с 1с из одной в другую, притом папка приемник должна создаваться каждый раз новая и именем должна быть дата + время
    я делаю так но ничего некопируетя, только создается папка с датой:


    Код (Text):
    <?
    $nnn = "E:/DUMPS/".date("Y_m_d");

    if (!is_dir("E:/DUMPS/")){mkdir ("E:/DUMPS/", 0700);}
    if (!is_dir("$nnn/")){mkdir ("$nnn/", 0700);}
    copy('E:/1c_base/1c_uat8.1', $nnn.'/1c_uat8.1');
    ?>
     
  2. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    может быть я и некропостер, но зарегистрировался, чтобы ответить на этот животрепещущий вопрос :)
    кстати интересная идея! и будет актуальна думаю.
    поставить вместо сервера обычный комп виндовс ХП, расшарить на нем интернет, и добавить функцию резервирования в обед к примеру всез баз 1С бухгалтерии. получаеться дешевый сервер :( а эта программа вобще бесплатна, только нужно пхп сервер поставить.
    я вот установил EasyPHP 2.0b1 - кто знает она точно 100% распространяеться бесплатно?
    идея вобще была сделать форму для отдела кадров, я ей сечас занимаюсь - типа небольшая база, на каждой фамилии при клике правой кнопкой мышке можно сгенерировать приказ о принятии или увольнении. в процессе реализации столкнулся с милионом проблем, а особенно с учетом отсутсвия знания языка пхп и образования, но увидел что он велик и могуч, ну с русским не сравниться канеш :)
    вот тоже подумал о варианте использования такой фишки с копированием базы 1С.

    суть вобщем создать пхп-страничку, в ней идет отсчет времени, она все время открыта в экплорере. во время наступления обеда запускаеться копирование из локалки папок базы средствами пхп на жесткий диск этого компьютера. и к примеру 2-3 недельной давности базы наоборот удаляються. насчет скрипта вычесления "устарелости" копии надо подумать, но от идей не отказался бы.
    или лучше запланировать допустим 10 копий - на полтары недели. при создании новой 11 копии, старая копия номер 1 затираеться. на следущий день при создании 12 - затираеться 2 и так далее.

    ну теперь вернемся к проблеме копирования папки. команда копи насколько я понял копирует только файлы.
    для копирования папки придеться выкручиваться. в разделе описание команды копи кстати и был выдран работающий вариант такой "придуманой" функции, кто-то в коментах его отписал. очень короткая и главное работает! скопировалась у меня проверочная папка, в папку с датой.

    Код (Text):
    <?php


    function full_copy( $source, $target )
    {
    if ( is_dir( $source ) )
    {
    @mkdir( $target );

    $d = dir( $source );

    while ( FALSE !== ( $entry = $d->read() ) )
    {
    if ( $entry == '.' || $entry == '..' )
    {
    continue;
    }

    $Entry = $source . '/' . $entry;           
    if ( is_dir( $Entry ) )
    {
    full_copy( $Entry, $target . '/' . $entry );
    continue;
    }
    copy( $Entry, $target . '/' . $entry );
    }

    $d->close();
    }else
    {
    copy( $source, $target );
    }
    }

    $nnn = "back1c/".date("Y_m_d");

    mkdir($nnn, 0777);

    full_copy( 'test 1', $nnn );

    ?>
    теперь вопрос в другом: будет ли она копировать из локальной папки?
    и еще вопрос - к примеру - в момент делания копии, главбух торчит в 1ске и чото там допустим работает. некоторые файлы в базе заняты - так как ранее думал вариант с командной строкой винрара, засунутую должным образом в планировщик заданий, но винрар ругался, что скопировать все файлы не может.
    потом был вариант с xcopy (в виндовсе такая есть типа досовской команды) - она вроди бы копирует все, но тут и собственно вопрос - некоторые файлы базы 1с в момент работы этой самой 1с получаються занятые, то есть находяться как бы вроди в процессе изменения. не получиться ли так, что когда наш пхп вариант наконец скопирует (и скопирует ли, если они заняты?) эту базу к себе на диск, то база эта скопированая будет повреждена и 1ска не сможет эту архивную копию открыть?
    или предположим сам процесс копирования довольно долгий, у нас помойму 100-150 мегабайт, и вот к примеру процесс копирования уже пошел, но тут бухгалтер тыкает на "провести" какой либо документ - помойму копия в данном случае будет 100% убитой.
     
  3. destr

    destr Гость

    Ога, с windowsXP совсем дешёвый сервер:)
    Создавать резервную копию можно и ночью, когда никто с базами не работает. Потом зачем скрипт будет постоянно выполняться, есть cron. Да и вообще зачем пхп, если для такой задачи можно написать bat'ник или shell-скрипт (если под linux).
     
  4. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    там хитрость одна есть. ночью не получится. так как комп глав буха будет выключен. основная база на компе главбуха, сервер задуман только делать копии. в обед думаю самое безопасное время для копирования. почему базы на компе главбуха? - ну дык - придет налоговая, компы заберет, будет фик знает скока проверять - поэтому базы на главбухном компе - пускай забирают и проверяют. мы на момент проверки будем работать с резервной копией. потеря получиться документов 5-10. это лучше вариант нежели стоять простоем несколько дней, в случае если основные базы бы забрали. сервер будет в сетке в другой раб группе. чтобы особо не светится. да и ценности он им представлять не будет - так как он всетаки бекап.
    по поводу дешевости, хп не такой дорогой, да и система знакома. а вот товарищ линукс это вобще незнакомый товарищ. никогда нето что не настраивал - не видел ниразу :)
    почему на пхп? - мне кажеться у него больше возможностей, чем у батника. в плане тогоже вычесления самой старой копии, 2 недельной давности и замещения её новой.
    что за крон? программа? бесплатная? это случаем не типа планировщик задач?
    и опять таки почему пхп - там за каждую строчку кода могу сказать что она приблизительно делает. а вот незнакомые программы - делал не я :) как они работают и как их настраивать - чччооорт его знает :)
    крайний вариант можно вернутся к xcopy.
    есть одна мысль - имееться ли программы - бесплатные естесно, не всмысле скачать бесплатно с креком - а реально freeware, которые делают примерно следующее - главбух уходя в 6 часов не выключает компьютер. компьютер продолжает работать допустим до 7:00 (час времени запаса, на случай когда главбух задержался наработе) - в 7 часов сервер начинает копировать базы. по окончании копирования удаленно дается команда на выключение компа.
     
  5. destr

    destr Гость

    http://forum.ru-board.com/topic.cgi?forum=...582&start=0 Ну вы хотя бы с батниками ознакомтесь тогда(там много читать, скорее всего даже найдёте что-то похожее), зачем тащить прогу какую-то, если простое копирование нужно. А cron имеется ввиду, как это в винде то называется то, да, планировщик задач наверное:)
     
  6. GOsha

    GOsha Гость

    А у меня базы 1С копируются и архивируются в RAR батником при запуске головного компа. Файлы с именем дата/время. Все просто как 5 копеек. А вы всякой хней страдаете... Мегапрограммеры, блин.
     
  7. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    тоже вариант. только в куда они у тебя архивируюца? на этом же компе и остаются? а как же налоговая? :blink:)) надо чтобы копировала на сервер, который под замком, и в тоже время оригиналы были на компе буха - налоговой надо же хоть что-то для проверки оставить.
    теперь как твои 5 копеек удаляют архивы 2 недельной давности? или все в ручную?
    притом если база большая нужно будет организовать "окно", дабы прочие бухи не подрубались в 1ску до окончания копирования. и как твой вариант работает при перезагрузке компа главбуха? опять копирует? и опять всем бухам ждать пока он закончит?
    было бы неплохо в биосе запланировать время просыпания компьютера за полчаса до прихода главбуха на работу - но тут опять проблема - юпс то она тоже отключает. а без юпски комп не включится.
    вариант тут только один - смарт юпска, которая отрубаеца по отрубанию компа. и запрограмить копирование 1ски не с утра, а наоборот вечером. к примеру сваливает главбух в 6, а копировать система будет в 7. после чего отрубается, и юпска тоже вместе с компом.
     
  8. GOsha

    GOsha Гость

    ув. SeregaZ - вы явно не добьетесь подобных успехов с помощью PHP. Предлагаю решение:

    в 3 часа ночи комп врубаем.
    Батником архивим базы. Все это с логгером, чтобы потом просмотреть фаулты.
    По поводу старых копий архива - 1 раз в месяц запускаем TotalCMD ставим ранжир по дате Shift+Del - и n-арховов в тучу.
    Если лень - пишем прожку, которая считывает все имена файлов в папке Backup и удаляет rar-ы старше 2 недель и пихаем ее в тот же батник, что и архивирует все наше добро (1 месяц 1 курса универа).

    Дальше самое интересное команда shutdown - и комп спать.

    САМЫЙ ПРОДВИНУТЫЙ ВАРИАНТ:
    Пишем мегапрожку которая все это делает сама. Команды те-же, что и в батнике.

    Теперь по поводу копирования на сервер - я вас умоляю - налоговая не имеет права смотреть, что у вас в компе - хоть голый президент. Для них - бумажки. А вот если у них будет акт на изъятие винтов (который у них не может быть), то в мусорном ведре они видели ваш замок. Кста архивировать можно и в сетевой путь //Server/1C_backups - главное расшарить.

    И 3-е.. Какой придурок вырубает ЮПС???? Зачем?

    Не надо усложнять себе жизнь.
     
  9. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    ну все это ясно, готовые решения будут? или все теорией и теорией?
    насчет изьятия винтов - такой расклад и предусматривается. у нас в стране такая практика - нормальное явление.
    насчет архивирования - винрар по сети ругаеца... и не хочет архивировать.
    насчет юпса - с электричеством напряженка. особенно зимой. будут веерные отключения электроэнергии. и надолго твоего юпса хватит, если он каждую ночь будет дохнуть? через месяц думаю придеца выкинуть.
     
  10. GOsha

    GOsha Гость

    1. ПО поводу UPS - ты че в сибири живешь? Где у тя веерные отключения? Фигассе. я думал уже давно такого нет.

    Теперь практика:

    1. Создаем папку C:\SysMgmt\

    2. Пишем в ней файл start.bat кодировака DOS:
    Код (Text):
    @Echo off
    echo ##########################################################
    echo #                                                      #
    echo # Начинаем автоматический запуск системы...          #
    echo #                                                      #
    echo # Пожалуйста, дождитесь окончания работы программы. #
    echo #                                                      #
    echo # Автор: GOsha                      Версия: 2.1     #
    echo #                                                      #
    echo ##########################################################
    time /t
    date /t
    echo __________________________________________________________
    echo.

    start /b /wait C:\SysMgmt\services\Nod_Copy.bat

    echo __________________________________________________________
    echo.

    start /b /wait C:\SysMgmt\services\1С_BackUp.bat

    echo __________________________________________________________
    echo.
    echo Загрузка завершена.
    pause
    3. Теперь в папке SysMgmt создаем папку services

    4. Сначала скопируем файлы обновления НОДа на свой комп с целью обновления файл nod_upd.bat
    Код (Text):
    @Echo off
    echo ##########################################################
    echo #                                                      #
    echo # Автоматическое копирование баз обновлений NOD32      #
    echo #                                                      #
    echo ##########################################################
    echo.
    copy /z /y "//Admin/nod_upd" "C:\Program Files\Eset\nod_upd"
    exit;
    5. Теперь с помощью 2х файлов для RAR`a. В этой же папке:

    файл-список baklist.lst:
    Код (Text):
    D:\1C_Databases\Base1
    D:\1C_Databases\Base2
    D:\1C_Databases\Base3
    D:\1C_Databases\Base4
    теперь коммандный файл упаковщика 1C_Backup.bat:
    Код (Text):
    @Echo off
    echo ##########################################################
    echo #                                                      #
    echo # Автоматическое создание резервной копии баз данных 1C #
    echo #                                                      #
    echo ##########################################################
    echo.
    "c:\Program Files\WinRAR\Rar.exe" a -agDD.MM.YY-HH.MM -ep "E:\BAK_" @baklist.lst
    exit;
    Оттак вот. А сего то было прочитано: "Справочник по коммандной строке WINDOWS". Находится просто: Пуск/Помощь/Поиск по слову "echo"
    И мануал к винрару - в папке с винраром.
     
  11. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    насчет нода прикольно :( у меня тож нод везде стоит. жалко придеца сносить. переходим типа на "лицензионное програмное обеспечение". терь там будет либо химиченый касперыч, либо какойнить бесплатный антивирус.

    copy /z /y "с:\1C\Base" "//server/bak/%date%" - копировать будет? помница с сетью в строке неособо.

    и опять таки нужно будет окно, чтобы бухи не подключались, пока архиватор заархивирует все.

    так. а терь как бы это дело запустить, но к примеру под логином администратора - чтобы как бы при включении компа небыло видно, что процесс происходит. дабы когда налоговая получит сей компьютер в свое распоряжение - командная строка не выдала сервер.
     
  12. GOsha

    GOsha Гость

    1. У нас тож лицензия, тока вот шоб каждый НОД гнал один и тот же траф. Нафига? Первый комп скачивает. ПОтом создает апдейт с помощью АпГена. А остальные при включении забирают его. и 33 раза один и тот же траф не гонят.
    2. Купите НОД. его тож можно купить, прикинь ))))
    3. ОТкуда я знаю будет у тя работать или нет. нафига копировать если можно заархивить. Он создаст архив с именем дата/время. А копия тож должна сработать. Поманьячь полчасика - должен. Если папка расшарена и даны права на изменение файлов по сети. Обрати внимание у меня апдейт с //Admin копируецца.
    4. По поводу бухов. Есть такая команда net share:
    Та же справка виндовс в строке поиска "net share". Теперь элементарное решение. Закрываем доступ к сетевому ресурсу. Делаем черное дело. Восстанавливаем доступ. Лень писать - возьми своей головой подумай. Так вот. Эти команды пихаем в тот же батник, что и бэкапер. )))
    5. НАРОД! Сока вас учить! НЕ ХРАНИТЕ БАЗЫ 1С на диске C:. - первое, что страдает при крахе системы, форматировании, вирусах и прочих-прочих проблемах.
    6. Мы гоним конкретный оффтоп (ветка-то PHP). Прошу модеров нибижацца )))
     
  13. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    ты поставь адмыньскую нод32, которая после обновления типа зеркала создает и не парься. один комп скачивает из инета, остальные настраиваются на это зеркало в локалке. и не нужны твои батники. они понадобяца когда нод пиратский на всех компах. там нужно будет на каждом клиенте логин и пароль менять, а с такими батниками эти пароли и не нужны. по поводу купить - я не думаю что на офис то деньги выделят, а тут какойто антивирус. я ж говорю либо химиченый касперский будет, либо бесплатное чегонить беспонтовое...
    насчет закрытия расшареного ресурса эт дааааа :))) видимо ты базе 1с ниразу доступ не закрывал. вылет у фсех клиентов кто был в этот момент в сети. потеря всех документов чего они там делали, и последующая переиндексация при запуске в монопольном режиме. это хорошо у меня 150 метров база, а есть по гиктарам размеры - по полчаса индексировать будет.
    про базы - к примеру написал что на Ц. на самом деле я не помню на каком они диске. надо ехать в офис и там смотреть. оказываеца бекап 1с базы это целая наука. и реализована она помойму только в случае когда эта база в мскуели чтоли крутиться, гдето я про это читал... в остальных вариантах надо внатури по ночам копии делать.
    и почему офтоп? ничо не офтоп... топик стартер вернеца и многое для себя подчерпнет. да и прочим народам будет наука как с 1с боротся.
    тут глобальная идея родилась. 1С бухгалтерию в пхп варианте сделать :))))))) вот будет и копировать базы спокойно и все на свете делать :)))
     
  14. GOsha

    GOsha Гость

    Поверь. я закрывал доступ к базе. И знаю, что понадобится переиндексация базы данных. Но подразумевается, что буховый комп будет работать, а остальные нет. * я про 3 часа ночи. )))
    Гиговые базы надо обрезать. Нахрена держать в 2008 году базу с 2002. Геморно, но оправдано.
    1С бух не надо делать в php варианте - это точно. На то она и 1С, что ты знаешь этот язык и работаешь.
    *я посмотрю какой ты конструктор печатных форм напишешь и как ты его бушь обрабатывать.
    Кароч тема мне кажецца исчерпанной. я просто показал, что можно делать.

    Есть еще смешная прога SOMScript. Прога рассматривается как RiskWare, но ты можешь ее использовать, как самобэкап. Она откроет 1С монопольно. Нажмет кнопку "архивировать", сохранит, и закроет 1С )))... Прога по шагам как по программе совершает с клавиатурой, мышью, окнами все, что ты задумал. Спокойно и по порядку. Веселая цацка. )))
     
  15. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    насчет форм - пожалста. сделал для кадров. тоже самое можно и для бахгултерии.
    http://www.almaty.tu2.ru/Kadry/main.php
    долго и нудно правда. и как бы сетевое, но не совсем. для работы сетевого варианта нужно еще пару закавык.

    вобщем я вроди бы придумал как это будет выглядеть. сделаю всетаки вариант пхп с копированием.
    просто нужно будет железо. в часности UPS. поглядел на своем ippone там вроди бы имеется опция включать и выключать юпску в определенное время.
    остается запрограмить юпс на включение за час до прихода главбуха в рабочии дни и в биосе выставить параметр "After power lost" в режим включения компа.
    сервер же в свою очеред все время включен и там запланировано на пхп, на это время, до прихода главбуха, копирование базы.
    возможно даже утром и вечером это запрограмить в разные папки. на юпсе еще только выключение запрограмить на час позже, чем главбух уходит. хотя она может на работе задерживатся :rolleyes: но это уже организационные мелочи.

    в целом мы имеем автоматический, без проблемный бекап, налоговая не в курсе что у нас есть сервер, и жили они щасливо, и умерли в один день.
    код наверное будет в скором времени выложен... надо ток до офиса добраца :rolleyes:)) все никак чото...

    и кстати чего за СОМСкрипт? чот рамблер молчит однако
     
  16. GOsha

    GOsha Гость

    Прога для работы с окнами, клавой и мышью. Написанная прога скомпилина в экзешник.

    Примерно программа выглядит так:

    1. Запустить xxx.exe
    2. Ожидать открытия окна "Приветствие"
    3. Переместить мышь 22*300
    4. Эмуляция нажатия lmb
    5. Отпустить lmb
    6. Переместить мышь 250*600.
    ......
    ......

    Т.е. свой набор команд.
    Используется для написания крэков. *Считывае данные из оперативы гоняет туда-сюда. Я с помощью нее в 13 лет подобрал пароль на XARAWebStyle. Када-то крэков на нее не было. Запустил на ночь, а она прикинулась юзером и вводила восьмизначный код 00000001, 00000002.... Отвечала на вронг-пасс "повторить ввод" и пробовала другой число. Крэк тупой, но я был горд. )))
    Еще раз я ее использовал, чтобы он русурсы в какой-то онлайн-цацке для жены клацал. Она запускала и уходила на работу. А он перемещал мышь и эмулировал нажатия в нужных точках окна браузера с частотой в секунду. Вечером она приходила богатым человеком... )))


    P.S.: я посмотрел твой сайт. Это не есть ценно. Регистрация и изменения пишутся за 15 минут. Это не сложно. Я говорил про конструктор ПЕЧАТИ как в 1С. 1С тем и ценна, что она гибкая и адаптируемая. А у тебя не то немножко...
     
  17. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    причем тут регистрация и изменения? суть в том, что ты щелкая на фамилии правой кнопкой, вызываеш меню, в котором приказы о принятии, увольнении, приеме на работу и тд. сперва окно с допольнительными окнами, для специфических данных - типа место для новой фамилии, если приказ об изменении фамилии, или количество отпускных дней. потом жмеш кнопку сформировать - получается готовый к печати документ, со вставлеными куда надо фамилиями, названием должностей, отделов и теми новыми фамилиями и количеством отпускных дней. для нас это особенно актуально, так как по закону делопроизводство должно быть на двух языках - приходится брать либо двуязычных сотрудников, либо 2 человек. сей проэкт данные не удобства решает. незная второго языка - можно смело принимать или увольнять или еще там какие приказы. ну а главное в ворде ненадо сидеть и набивать, меньше работы. потом далее доделаю формирование штатного расписания и прочих кадровых радостей.
    тоже самое можно сделать и с Бухгалтерией.
    работает пока только под эксплорером. мозила с оперой в пролете.

    и где этот редактор для скриптов с компилятором в ехе файлы брать?
     
  18. GOsha

    GOsha Гость

    2 SeregaZ
    http://www.geocities.com/xmemor/2lz/s0m.html - там и забери.
    Там же список команд, который она умеет давать компьютеру.

    ПО поводу твоего проекта - смотри сам. Нравится - делай. Неплохая гимнастика для мозгов.
    Но то же можно сделать и в 1С и хоть на десяти языках. Хоть галочки ставь, какие языки использовать )))
     
  19. SeregaZ

    SeregaZ Member

    Регистрация:
    15 сен 2008
    Сообщения:
    20
    Симпатии:
    0
    ну так... уж лучше занятся самообразованием, чем отстегивать за лицензию 1С: Кадры. правда я её в лицо не видел как она работает. но от этого функционала, что я предложил, отдел кадров просто в восторге, ждут с нетерпением окончания работ. надо добавить еще формирование печати справок о месте работы и зарплате.

    спасибо за ссылку. будем изучать.
     
  20. GOsha

    GOsha Гость

    Я просто абиссняю, что то, что ты написал на PHP можно написать в 1С за 40 минут без лишнего гемора, подключения к инету и гораздо большей скоростью работы. Лицензия 1С не таких уж атомных денег и стоит, чтобы фирма не могла себе ее позволить. А так - учиться никогда не вредно.. Я и сам до сих пор учусь. Всегда есть что новенького изучить. УДачи. И настойчивости в проектах. )))
     
Загрузка...

Поделиться этой страницей