The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 19-Ноя-12, 16:39  [смотреть все]
Нужен "скелет" скрипта на любом скриптовом языке        

1)есть шара на одном компе сетки(допустим с адресом 163.131.10.1/shara1) и шара на другом компе в сетке 163.131.10.2/shara2)...шары смонтированы на линуксовая машину с адресом 163.131.10.3        
2)в shara1 хранятся каталоги(папки),которые именуются сл образом хх-ххххх-хх, где х-символ или цифра. Каждый из этих овкатолог имеет подкаталоги,которые именуются сл образом yy_yy_yyyy, где y-символ или число.
3)задача скрипта скопировать содержание каталогов xx-xxxxx-xx в shara2 таким образом, чтобы во-первых,иерархия каталогов сохранилась, а во-вторых, вместо хх-ххххх-хх создать допустим каталог 18-ххххх-хх, т.е. в наименовании каталогов изменить 2 символа и туда все содержимое скопировать.

Например, если есть у нас в каталоге shara1 есть к3-loggo-1g подкаталоги 8с_658hy_13kk и 6р_hgl13_y1. Данные подкаталоги имеют ряд файлов в первом:1.log, 2.log. второй: 44.log, 12.log.

Запускаем скрипт:
создаёт список каталогов...
далее работает по каждому найденному в шаре1 каталогу...
доходим до каталога к3-loggo-1g
создаётся в шаре2 каталог 18-loggo-1g.
создаются соответсвенно подкаталоги с именами 8с_658hy_13kk и 6р_hgl13_y1.
в подкаталог 8с_658hy_13kk копируются файлы 1.log, 2.log. в подкаталог 6р_hgl13_y1 копируются файлы 44.log, 12.log.

и так по каждому найденному каталогу...

вот примерно так как-то....
Буду рад за любую полезную информацию как создать скрипт именно данный скрипт...буду рад за пример!

  • скрипт копирования шары в шару с переимнованием каталогов, !*! pavlinux, 01:11 , 20-Ноя-12 (1)
    > Запускаем скрипт:

    man bash

    > создаёт список каталогов...

    man mkdir

    > далее работает по каждому найденному в шаре1 каталогу...

    man find

    > доходим до каталога к3-loggo-1g

    man cd

    > создаётся в шаре2 каталог 18-loggo-1g.

    man mkdir
    > создаются соответсвенно подкаталоги с именами 8с_658hy_13kk и 6р_hgl13_y1.

    mkdir -p

    > в подкаталог 8с_658hy_13kk копируются файлы 1.log, 2.log. в подкаталог 6р_hgl13_y1 копируются
    > файлы 44.log, 12.log.

    man cp

    > и так по каждому найденному каталогу...

    for i in ....

    • скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 03:09 , 20-Ноя-12 (2)
      команды фундаментальные-то я линуха знаю))
      просто не знаю как их в чистом виде можно использовать в скриптах...
      опыт скриптонаписания очень мал((
      • скрипт копирования шары в шару с переимнованием каталогов, !*! pavlinux, 22:37 , 20-Ноя-12 (3)
        > просто не знаю как их в чистом виде можно использовать в скриптах...

        Всё очень просто:

        Одна команда - одна строка!
        Строка может состоять из команд!
        Команда может состоять из строк!

        :)

        http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...
        http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
        http://tldp.org/LDP/abs/html/

        • скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 03:16 , 21-Ноя-12 (4)
          >> просто не знаю как их в чистом виде можно использовать в скриптах...
          > Всё очень просто:
          > Одна команда - одна строка!
          > Строка может состоять из команд!
          > Команда может состоять из строк!
          > :)
          > http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...
          > http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
          > http://tldp.org/LDP/abs/html/

          Ну вот на пыхе как скрипт будет выглядить примерно?Просьба без смеха))я просто начинающий в этом...

          вот так?
          назовём скрипт kopir.php

          <?php
          $dirs = mkdir(163.131.10.1/shara1) //создаём список каталогов в шаре1
          for i in dirs:                      //проходимся по каждому найденному каталогу в шаре1
              $poddirs = find(i)              //создаём список подкаталогов каждого каталога в шаре1
              dirshcp=mkdir(163.131.10.2/shara2/18-%s%s%s%%s%%s%-%s%s)%i //вот здесь я вообще в затрудненнии как создать на шаре2 грубо гоовря папку(каталог) с именем такой же как в шаре1, но первые 2 символа заменить на символы 18  
             for j in poddirs:                 //проходимся по каждому подкаталогу найденного каталога в шаре1
                 recipient = mkdir(163.131.10.2/shara2/dirshcp/%s)%j //запоминаем в переменную путь куда скопировать
                 source = '%s/%s'%i%j //запоминаем в переменную путь откуда скопировать
                 cp(source,recipient) //копируем откуда куда файлы с сохранением иерархии и переименованием первых 2-х символов в имени верхнего каталога...далее переходим к сл каталогу в шаре1
          ?>

          запускаем скрипт на линуховой машине:
          #php kopir.php


          Но он не работает((

          • скрипт копирования шары в шару с переимнованием каталогов, !*! pavlinux, 00:51 , 22-Ноя-12 (5) –1
            Хрен какую-то написал... Нарисуй как выглядят каталоги на шаре1 и как должны выглядить на шаре2.
            Только в человеческом виде, а не  8с_658hy_13kk и 6р_hgl13_y1


            • скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 07:44 , 22-Ноя-12 (6)
              > Хрен какую-то написал... Нарисуй как выглядят каталоги на шаре1 и как должны
              > выглядить на шаре2.
              > Только в человеческом виде, а не  8с_658hy_13kk и 6р_hgl13_y1

              Нужно получить следующую картину в итоге:
              в шаре1 всё оставить без изменений:
              --------------------------------------------------------
              163.131.10.1/shara1|
                    |_  c1-speed-2012|
                                          |_  11_ma_12ye |
                                                         |_1.log
                                                         |_2.log
                                        
                                          |_  01_de_12ye |
                                                         |_51.log
                                                         |_22.log

                                          |_  04_ap_12ye |
                                                         |_17.log
                                                         |_22.log

                    |_  c2-speed-2011|
                                          |_  16_ye_12ye |
                                                         |_68.log
                                                         |_12.log
                                        
                                          |_  04_yi_12ye |
                                                         |_15.log
                                                         |_77.log

                                          |_  08_av_12ye |
                                                         |_33.log
                                                         |_24.log
              -----------------------------------------------------------
              после запуска скрипта в шаре2:
              ------------------------------------------------------------
              163.131.10.2/shara2|
                    |_  18-speed-2012|
                                          |_  11_ma_12ye |
                                                         |_1.log
                                                         |_2.log
                                        
                                          |_  01_de_12ye |
                                                         |_51.log
                                                         |_22.log

                                          |_  04_ap_12ye |
                                                         |_17.log
                                                         |_22.log

                    |_  18-speed-2011|
                                          |_  16_ye_12ye |
                                                         |_68.log
                                                         |_12.log
                                        
                                          |_  04_yi_12ye |
                                                         |_15.log
                                                         |_77.log

                                          |_  08_av_12ye |
                                                         |_33.log
                                                         |_24.log
              -----------------------------------------------------------------
              на линуксовой тачке с адресом 163.131.10.3, где планируется запуск скрипта шары примантирвоаны сл образом:
              163.131.10.1/shara1 в директорию /mnt/source
              163.131.10.2/shara2в директорию /mnt/ recipient

              в шаре1 появляются периодически обновления и их нужно как указано выше скопировать в шару2, но то что ранее было уже записано-не перезаписывать, т.е. добавлять лишь обновления(новое).
              примерно как-то так попытался визуализировать процесс


              • скрипт копирования шары в шару с переимнованием каталогов, !*! pavlinux, 18:02 , 22-Ноя-12 (7) +1

                #!/бын/башш

                src=(c1-speed-2012 c2-speed-2011)
                dst=(18-speed-2012 18-speed-2011)

                for ((i=0; i < ${#src[*]}; i++ ))
                        do
                           mkdir -p /mnt/recipient/${dst[i]};
                           rsync -au /mnt/source/${src[i]} /mnt/recipient/${dst[i]};
                done;


                • скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 04:05 , 23-Ноя-12 (8)
                  >[оверквотинг удален]
                  > src=(c1-speed-2012 c2-speed-2011)
                  > dst=(18-speed-2012 18-speed-2011)
                  > for ((i=0; i < ${#src[*]}; i++ ))
                  >         do
                  >            mkdir
                  > -p /mnt/recipient/${dst[i]};
                  >            rsync
                  > -au /mnt/source/${src[i]} /mnt/recipient/${dst[i]};
                  > done;
                  >

                  У меня немного не так...
                  у меня в /mnt/source создаются каталоги внезапно...т.е. я не могу заранее сказать какие имена каталоги будут..мне единственное,что нужно-это составить список этих каталогов и скопировать их в /mnt/recipient изменяя наименование каталогов(точнее первых 2-х символов-на 18 заменить).
                  А из этого примера мы замыкаемся исключительно на статические(заранее известные) имена каталогов...
                  как будет выглядить тогда формирование переменной src и самое главное переменной dst
                  так?
                  src=mkdir('/mnt/source')
                  dst=не знаю как(((рекурентными выражениями,но как их применить...вообщем затрудняюсь((

                • скрипт копирования шары в шару с переимнованием каталогов, !*! StopHam, 05:42 , 23-Ноя-12 (9)
                  >[оверквотинг удален]
                  > src=(c1-speed-2012 c2-speed-2011)
                  > dst=(18-speed-2012 18-speed-2011)
                  > for ((i=0; i < ${#src[*]}; i++ ))
                  >         do
                  >            mkdir
                  > -p /mnt/recipient/${dst[i]};
                  >            rsync
                  > -au /mnt/source/${src[i]} /mnt/recipient/${dst[i]};
                  > done;
                  >

                  результат получился не совсем такой который ожидался....
                  вообщем да копирование произошло,но в итоге получили такую кртинку в /mnt/recipient
                  ----------------------------------
                  /mnt/recipient|
                                |_18-speed-2012|
                                               |_c1-speed-2012|
                                                              |_  11_ma_12ye |
                                                                             |_1.log
                                                                             |_2.log
                                            
                                                              |_  01_de_12ye |
                                                                             |_51.log
                                                                             |_22.log

                                                              |_  04_ap_12ye |
                                                                             |_17.log
                                                                             |_22.log
                                |_18-speed-2011|
                                               |_  c2-speed-2011|
                                                                |_  16_ye_12ye |
                                                                               |_68.log
                                                                               |_12.log
                                            
                                                                |_  04_yi_12ye |
                                                                               |_15.log
                                                                               |_77.log

                                                                |_  08_av_12ye |
                                                                               |_33.log
                                                                               |_24.log
                  -----------------------------------------------------------------------------
                  т.е. в каталоге допустим 18-speed-2012 образовалася каталог c1-speed-2012, а нужно не сам каталог поместить, а его содержание с сохранением иерархии хранения(т.е. подкаталоги и т.п.)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру