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

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


Код:
<? 
$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');
?>
 
15.09.2008
20
0
#2
может быть я и некропостер, но зарегистрировался, чтобы ответить на этот животрепещущий вопрос :)
кстати интересная идея! и будет актуальна думаю.
поставить вместо сервера обычный комп виндовс ХП, расшарить на нем интернет, и добавить функцию резервирования в обед к примеру всез баз 1С бухгалтерии. получаеться дешевый сервер :( а эта программа вобще бесплатна, только нужно пхп сервер поставить.
я вот установил EasyPHP 2.0b1 - кто знает она точно 100% распространяеться бесплатно?
идея вобще была сделать форму для отдела кадров, я ей сечас занимаюсь - типа небольшая база, на каждой фамилии при клике правой кнопкой мышке можно сгенерировать приказ о принятии или увольнении. в процессе реализации столкнулся с милионом проблем, а особенно с учетом отсутсвия знания языка пхп и образования, но увидел что он велик и могуч, ну с русским не сравниться канеш :)
вот тоже подумал о варианте использования такой фишки с копированием базы 1С.

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

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

Код:
<?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% убитой.
 
D

destr

#3
Ога, с windowsXP совсем дешёвый сервер:)
Создавать резервную копию можно и ночью, когда никто с базами не работает. Потом зачем скрипт будет постоянно выполняться, есть cron. Да и вообще зачем пхп, если для такой задачи можно написать bat'ник или shell-скрипт (если под linux).
 
15.09.2008
20
0
#4
там хитрость одна есть. ночью не получится. так как комп глав буха будет выключен. основная база на компе главбуха, сервер задуман только делать копии. в обед думаю самое безопасное время для копирования. почему базы на компе главбуха? - ну дык - придет налоговая, компы заберет, будет фик знает скока проверять - поэтому базы на главбухном компе - пускай забирают и проверяют. мы на момент проверки будем работать с резервной копией. потеря получиться документов 5-10. это лучше вариант нежели стоять простоем несколько дней, в случае если основные базы бы забрали. сервер будет в сетке в другой раб группе. чтобы особо не светится. да и ценности он им представлять не будет - так как он всетаки бекап.
по поводу дешевости, хп не такой дорогой, да и система знакома. а вот товарищ линукс это вобще незнакомый товарищ. никогда нето что не настраивал - не видел ниразу :)
почему на пхп? - мне кажеться у него больше возможностей, чем у батника. в плане тогоже вычесления самой старой копии, 2 недельной давности и замещения её новой.
что за крон? программа? бесплатная? это случаем не типа планировщик задач?
и опять таки почему пхп - там за каждую строчку кода могу сказать что она приблизительно делает. а вот незнакомые программы - делал не я :) как они работают и как их настраивать - чччооорт его знает :)
крайний вариант можно вернутся к xcopy.
есть одна мысль - имееться ли программы - бесплатные естесно, не всмысле скачать бесплатно с креком - а реально freeware, которые делают примерно следующее - главбух уходя в 6 часов не выключает компьютер. компьютер продолжает работать допустим до 7:00 (час времени запаса, на случай когда главбух задержался наработе) - в 7 часов сервер начинает копировать базы. по окончании копирования удаленно дается команда на выключение компа.
 
D

destr

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

GOsha

#6
А у меня базы 1С копируются и архивируются в RAR батником при запуске головного компа. Файлы с именем дата/время. Все просто как 5 копеек. А вы всякой хней страдаете... Мегапрограммеры, блин.
 
15.09.2008
20
0
#7
тоже вариант. только в куда они у тебя архивируюца? на этом же компе и остаются? а как же налоговая? :blink:)) надо чтобы копировала на сервер, который под замком, и в тоже время оригиналы были на компе буха - налоговой надо же хоть что-то для проверки оставить.
теперь как твои 5 копеек удаляют архивы 2 недельной давности? или все в ручную?
притом если база большая нужно будет организовать "окно", дабы прочие бухи не подрубались в 1ску до окончания копирования. и как твой вариант работает при перезагрузке компа главбуха? опять копирует? и опять всем бухам ждать пока он закончит?
было бы неплохо в биосе запланировать время просыпания компьютера за полчаса до прихода главбуха на работу - но тут опять проблема - юпс то она тоже отключает. а без юпски комп не включится.
вариант тут только один - смарт юпска, которая отрубаеца по отрубанию компа. и запрограмить копирование 1ски не с утра, а наоборот вечером. к примеру сваливает главбух в 6, а копировать система будет в 7. после чего отрубается, и юпска тоже вместе с компом.
 
G

GOsha

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

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

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

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

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

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

Не надо усложнять себе жизнь.
 
15.09.2008
20
0
#9
ну все это ясно, готовые решения будут? или все теорией и теорией?
насчет изьятия винтов - такой расклад и предусматривается. у нас в стране такая практика - нормальное явление.
насчет архивирования - винрар по сети ругаеца... и не хочет архивировать.
насчет юпса - с электричеством напряженка. особенно зимой. будут веерные отключения электроэнергии. и надолго твоего юпса хватит, если он каждую ночь будет дохнуть? через месяц думаю придеца выкинуть.
 
G

GOsha

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

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

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

2. Пишем в ней файл start.bat кодировака DOS:
Код:
@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
Код:
@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:
Код:
D:\1C_Databases\Base1
D:\1C_Databases\Base2
D:\1C_Databases\Base3
D:\1C_Databases\Base4
теперь коммандный файл упаковщика 1C_Backup.bat:
Код:
@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"
И мануал к винрару - в папке с винраром.
 
15.09.2008
20
0
#11
насчет нода прикольно :( у меня тож нод везде стоит. жалко придеца сносить. переходим типа на "лицензионное програмное обеспечение". терь там будет либо химиченый касперыч, либо какойнить бесплатный антивирус.

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

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

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

GOsha

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

GOsha

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

Есть еще смешная прога SOMScript. Прога рассматривается как RiskWare, но ты можешь ее использовать, как самобэкап. Она откроет 1С монопольно. Нажмет кнопку "архивировать", сохранит, и закроет 1С )))... Прога по шагам как по программе совершает с клавиатурой, мышью, окнами все, что ты задумал. Спокойно и по порядку. Веселая цацка. )))
 
15.09.2008
20
0
#15
насчет форм - пожалста. сделал для кадров. тоже самое можно и для бахгултерии.
http://www.almaty.tu2.ru/Kadry/main.php
долго и нудно правда. и как бы сетевое, но не совсем. для работы сетевого варианта нужно еще пару закавык.

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

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

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

GOsha

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

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

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

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


P.S.: я посмотрел твой сайт. Это не есть ценно. Регистрация и изменения пишутся за 15 минут. Это не сложно. Я говорил про конструктор ПЕЧАТИ как в 1С. 1С тем и ценна, что она гибкая и адаптируемая. А у тебя не то немножко...
 
15.09.2008
20
0
#17
причем тут регистрация и изменения? суть в том, что ты щелкая на фамилии правой кнопкой, вызываеш меню, в котором приказы о принятии, увольнении, приеме на работу и тд. сперва окно с допольнительными окнами, для специфических данных - типа место для новой фамилии, если приказ об изменении фамилии, или количество отпускных дней. потом жмеш кнопку сформировать - получается готовый к печати документ, со вставлеными куда надо фамилиями, названием должностей, отделов и теми новыми фамилиями и количеством отпускных дней. для нас это особенно актуально, так как по закону делопроизводство должно быть на двух языках - приходится брать либо двуязычных сотрудников, либо 2 человек. сей проэкт данные не удобства решает. незная второго языка - можно смело принимать или увольнять или еще там какие приказы. ну а главное в ворде ненадо сидеть и набивать, меньше работы. потом далее доделаю формирование штатного расписания и прочих кадровых радостей.
тоже самое можно сделать и с Бухгалтерией.
работает пока только под эксплорером. мозила с оперой в пролете.

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

GOsha

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

ПО поводу твоего проекта - смотри сам. Нравится - делай. Неплохая гимнастика для мозгов.
Но то же можно сделать и в 1С и хоть на десяти языках. Хоть галочки ставь, какие языки использовать )))
 
15.09.2008
20
0
#19
ну так... уж лучше занятся самообразованием, чем отстегивать за лицензию 1С: Кадры. правда я её в лицо не видел как она работает. но от этого функционала, что я предложил, отдел кадров просто в восторге, ждут с нетерпением окончания работ. надо добавить еще формирование печати справок о месте работы и зарплате.

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

GOsha

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