плагин nnBBackup

Обсуждение программ nnCron и nnCron LITE

плагин nnBBackup

Postby manson » Mon, 20 Mar 2006, 14:45

Спасибо за помощь Valery_Kondakoff и SeMa конкретно здесь:
http://www.nncron.ru/forums/viewtopic.php?t=1175&sid=b2d19815654c974384f3df35b3fd9684
и здесь:
http://www.nncron.ru/forums/viewtopic.php?t=1172&sid=b2d19815654c974384f3df35b3fd9684

Вот этот скрипт архивирует папочки как мне надо, сразу скажу что я форт пользую не больше недели и скрипт на стадии "вроде бы работает" :) , так что сильно не пинайте за корявость...

Коротоко: указываем куда и от куда архивировать, он создает внутреннюю структуру папок (только первого уровня относительно указаного каталога) и сваливает туда архивные копии содержимого по датам. Архивирует только изменившиеся файлы, начиная с даты последнего архива этой папки. И если не хватает места - удаляет старые архивы во всех папках пока не хватит места. Используется WinRAR и плагин files_pick.spf.

Пример: указываю от куда - D:\чертежи\ в этой папке около 50 папок с фамилиями сотрудников, и в C:\чертежи_архив\ создаются теже папки с фамилиями и внутрь кидаются архивы этого сотрудника с датами - C:\чертежи_архив\Иванов\Иванов_06.03.20-13.56.28.rar, C:\чертежи_архив\Иванов\Иванов_06.03.20-14.34.12.rar и т.д.

Если кому пригодиться пользуйтесь наздоровье (мне тоже пригодились чужие примеры этого форума), и еще хотелось бы узнать как плагины лепить, может чего из этого получится. Если что оставляйте название nnBBackup, мне будет приятно

Code: Select all
#( nnBBackup
NoActive

CREATE ph 255 ALLOT
CREATE fordel 255 ALLOT
CREATE phrar 255 ALLOT
CREATE phwhere 255 ALLOT
CREATE phwheretmp 10 ALLOT
CREATE recf 255 ALLOT
CREATE founftmp 255 ALLOT

VARIABLE _free_space
VARIABLE nfiles
2VARIABLE DIRECTORY_SIZE

S" D:\чертежи\" ph PLACE
S" C:\чертежи_архив\" phwhere PLACE
S" C:\Program Files\WinRAR\" phrar PLACE

CREATE buff 200 ALLOT
: FT>YYYY.MM.DD/hh:mm:ss ( d -- a u )
  FT>YMDHMS S>D
   <# # # DROP # # DROP # # DROP # # DROP # # DROP # # # # #>
;

AsLoggedUser

Action:
phwhere COUNT 1 MIN phwheretmp PLACE

FILE-CREATE: "%phwhere COUNT%log.txt"
FILE-APPEND: "%phwhere COUNT%log.txt" "%crlf%%crlf%[ %YY%.%MM%.%DD%-%hh%:%mm%:%ss% ---->  S T A R T  <---- ] %crlf%"

FOR-FILES: "%ph COUNT%*"
IS-DIR?
 IF
  IS-HIDDEN? 0=
  IF
   \ esli mesta ne hvataet to udalyat rari poka ne hvatit
   DIR-SIZE: "%ph COUNT%%FOUND-FILENAME%" 1024 UM/MOD SWAP DROP phwhere 1+ C@ FREE-SPACE >
       IF
       BEGIN
        RECURSIVE
        OLDEST-FILE-WTIME: "%phwhere COUNT%*.rar" fordel PLACE
        FILE-DELETE: "%fordel COUNT%"
        FILE-APPEND: "%phwhere COUNT%log.txt" "[ %YY%.%MM%.%DD%-%hh%:%mm%:%ss% - FREE SPACE TOO LOW - file deleted %fordel COUNT% ] %crlf%"    
           DIR-SIZE: "%ph COUNT%%FOUND-FILENAME%" 1024 UM/MOD SWAP DROP phwhere 1+ C@ FREE-SPACE >
       UNTIL
       THEN

      \ v sluchae esli mesto vsetaki ne osvobodilos - ne arc
      DIR-SIZE: "%ph COUNT%%FOUND-FILENAME%" 1024 UM/MOD SWAP DROP phwhere 1+ C@ FREE-SPACE <
      IF
          DIR-CREATE: "%phwhere COUNT%%FOUND-FILENAME%"
      RECURSIVE
      RECENT-FILE-WTIME: "%phwhere COUNT%%FOUND-FILENAME%*.rar" recf PLACE
      FILE-WTIME: "%recf COUNT%" FT>YYYY.MM.DD/hh:mm:ss buff ZPLACE
          IF
       START-APP: %phrar COUNT%Rar.exe A -M4 -Y -RI0 -DH -EP1 -TA%buff ASCIIZ>% -ag_YY.MM.DD-HH.MM.SS %QUOTE%%phwhere COUNT%%FOUND-FILENAME%\%FOUND-FILENAME%.rar%QUOTE% %QUOTE%%ph COUNT%%FOUND-FILENAME%%QUOTE%
       s" 0000000" buff ZPLACE
      THEN

      \ zapis v log razmera rar archiva
      GET-CUR-TIME
         DIR-SIZE: "%phwhere COUNT%%FOUND-FILENAME%" DIRECTORY_SIZE 2!
         DIRECTORY_SIZE 2@ 1024 UM/MOD SWAP DROP S>D DIRECTORY_SIZE 2!
         FILE-APPEND: "%phwhere COUNT%log.txt" "[ %YY%.%MM%.%DD%-%hh%:%mm%:%ss% - %ph COUNT%%FOUND-FILENAME%%crlf%                      %phwhere COUNT%%FOUND-FILENAME%\%FOUND-FILENAME%.rar - %DIRECTORY_SIZE 2@ <# # # # 44 HOLD #S #>% Мб. ] %crlf%"
   ELSE
         FILE-APPEND: "%phwhere COUNT%log.txt" "[ %YY%.%MM%.%DD%-%hh%:%mm%:%ss% - FREE SPACE TOO LOW - ne voshlo %ph COUNT%%FOUND-FILENAME% ] %crlf%"
   THEN


   \ ne nachinat' novuyu arc poka ne zakonchitsya staraya   
    BEGIN
      PAUSE: 1000
        WIN-EXIST: "%phrar COUNT%Rar.exe" NOT
       UNTIL

  THEN
 THEN
;FOR-FILES

)#
manson
 
Posts: 10
Joined: Tue, 14 Mar 2006, 11:44

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron