The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помощь в написании скрипта, !*! zick, 12-Июл-07, 17:19  [смотреть все]
Всем здрасте !
Есть такая вот задача: есть сервер, на него по нфс монтируються диски с фильмами (например /share/Video/hdd*/папки_с_фильмами ), надо написать такой скрипт, чтоб он через некоторый промежуток времени сканировал директории и создавал симлинк в определённую папку ( /ftp/cinema/имя_папки_с_фильмом ). Тоесть чтоб просто  забрасывали фильмы на монтируемые диски и скрипт сканировал через определённый промежуток и создавал симлинк на папку с фильмом (имеено на папку, а не на фильм). Кто знает помогите пожалуйста, так как с програмированием в оболочке вобще не дружу ! Заранее спасибо.
  • Помощь в написании скрипта, !*! vic, 19:22 , 12-Июл-07 (1)
    Ну например сделать вот такой скрипт и запихать его запуск в cron (man crontab):
    #!/bin/bash
    for i in /share/Video/hdd*
    do
      find $i -mindepth 1 -maxdepth 1 -type d -exec ln -s {} /ftp/cinema \;
    done

    На уже существующие одинаковые каталоги будет ругаться, но это можно слить в /dev/null..

    Если в каталоге /share/Video только подкаталоги hdd*, то можно обойтись find без for, хотя и в данном случае тоже можно обойтись, но лень думать :)

    p.s. папки - это только в вин, в никсах каталоги.
    p.s.s. подружитесь с bash или ksh, это не сложно, но приятно :)

    • Помощь в написании скрипта, !*! zick, 12:23 , 14-Июл-07 (2)
      >Ну например сделать вот такой скрипт и запихать его запуск в cron
      >(man crontab):
      >#!/bin/bash
      >for i in /share/Video/hdd*
      >do
      >  find $i -mindepth 1 -maxdepth 1 -type d -exec ln
      >-s {} /ftp/cinema \;
      >done
      >
      >На уже существующие одинаковые каталоги будет ругаться, но это можно слить в
      >/dev/null..
      >
      >Если в каталоге /share/Video только подкаталоги hdd*, то можно обойтись find без
      >for, хотя и в данном случае тоже можно обойтись, но лень
      >думать :)
      >
      >p.s. папки - это только в вин, в никсах каталоги.
      >p.s.s. подружитесь с bash или ksh, это не сложно, но приятно :)
      >


      Да уже пополной начинаю дружить =) Дружба потихоньку крепнет ) Вот мой скрипт, знаю что криво и неполноценно, но работает ...

      #!/usr/local/bin/bash
      # write by zik (c)

      cd /share/Video/ ;

      for i in $(ls);
      do
          #pwd;
          cd /share/Video/$i/Movie/ ;
          if [ $(pwd) = "/share/Video/$i/Movie"  ];
          then
              for a in $(ls);
              do
                  ln -s /share/Video/$i/Movie/$a /ftp/kino/films/ ;
                  cd ../../ ;
              done;
          
          fi
      done;

      • Помощь в написании скрипта, !*! zick, 23:02 , 26-Июл-07 (3)
        Блин новая запара случилась :( Добавили ещё диски с фильмами, а там в названии файлов пробелы и симлинки нормально не создаються ... Подкскажите кто знает, как это решить, буду очень признателен !
        • Помощь в написании скрипта, !*! phpcoder, 10:49 , 27-Июл-07 (4)
          >Блин новая запара случилась :( Добавили ещё диски с фильмами, а там
          >в названии файлов пробелы и симлинки нормально не создаються ... Подкскажите
          >кто знает, как это решить, буду очень признателен !

          Заключай имена переменных, воторые содержат пробелы, в двойные кавычки. (Вместо $i пиши "$i")




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

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