Помощь в написании скрипта, 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")
|