Страница 1 из 1

Скрипт для создания силинков

Добавлено: 2007-07-12 16:24:48
zik
Всем здрасте !
Есть такая вот задача: есть сервер, на него по нфс монтируються диски с фильмами (например /share/Video/hdd*/папки_с_фильмами ), надо написать такой скрипт, чтоб он через некоторый промежуток времени сканировал директории и создавал симлинк в определённую папку ( /ftp/cinema/имя_папки_с_фильмом ). Тоесть чтоб просто забрасывали фильмы на монтируемые диски и скрипт сканировал через определённый промежуток и создавал симлинк на папку с фильмом (имеено на папку, а не на фильм). Кто знает помогите пожалуйста, так как с програмированием в оболочке вобще не дружу ! Заранее спасибо.

Добавлено: 2007-07-12 16:48:02
Alex Keda
ну ты хоть чё-то пиши.
выкладывай.
а мы будем подсказывать.
=========
а так - ты неправильно сформулирвоал тему. Правильно бы было "Напишите за меня скрипт который..."

Добавлено: 2007-07-14 10:50:00
zik
Вот что у меня получилось ... конечно криво, но работает :lol:
#!/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;

Добавлено: 2007-07-14 11:13:54
serge
А что за ftp стоит? Умеет по симлинкам ходить? Без chroot'a получается.

Добавлено: 2007-07-14 14:25:40
zik
to serge

ОС FreeBSD 6.1, vsftpd 2.0.4
Вот-вот, щас новая ипопея ... Я упустил что пользователи сидят все в chroot и симлинки не пашут ... :twisted: Пытался сделать через mount_nullfs, но не получилось :( Надо чтоб была папка с симлинками в которой например были каталоги с спарсеными сылками с подмонтированных жестких ( например: /ftp/klips , /ftp/private , /ftp/movie и т.п.) и поним можно было ходить через фтп и самбу ...

Добавлено: 2007-07-14 14:32:50
serge
У меня через nullfs работает. По симлинкам тож обламался :)

Добавлено: 2007-07-14 14:47:46
zik
У меня б тоже работало если б на жёстких не было свалки ... Мне надо, чтоб была папка /ftp/kino/ , /ftp/clips , /ftp/pub (все эти папки в chroot у vsftpd ) и там должны быть линки спарсенные с стореджей /share/Video/HDD*/ (* - номер харда). И тут начинаеться хождение по кругу ...

Добавлено: 2007-07-14 17:15:31
serge
Все равно не могу понять почему не станет работать nullfs. Будет что-то типа:

Код: Выделить всё

mount_nullfs /share/Video/HDD* /ftp/movie/HDD*
Т.е. придется делать точки монтирования в соответствующем каталоге, и в них монтировать.

Добавлено: 2007-07-14 20:00:42
Alex Keda
да должно прокатить...
========
кстати - кроме nullfs ещё есть unionfs - тоже штука с интеерсными особенностями...

Код: Выделить всё

ussr# pwd
/tmp/test
ussr# mkdir test1
ussr# mkdir test2
ussr# touch test1/test1_1.txt test1/test1_2.txt test2/test2_1.txt test2/test2_2.txt
ussr# ll te
test1/  test2/
ussr# ll test*
test1:
total 0
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_1.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_2.txt

test2:
total 0
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test2_1.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test2_2.txt
ussr# mount_unionfs /tmp/test/test1 /tmp/test/test2
ussr# ll test1/
total 0
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_1.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_2.txt
ussr# ll test2
total 0
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_1.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test1_2.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test2_1.txt
-rw-r--r--  1 root  wheel  0 14 июл 20:59 test2_2.txt
ussr#
ussr# df -h | grep test
<above>:/tmp/test/test1                143G     77G     60G    56%    /tmp/test/test2
ussr#       
такой вот любопытный листинг :))

Добавлено: 2007-07-14 20:11:18
serge
А в двух словах пояснишь отличия nullfs от unionfs. Чеб в ман не лезть :wink:

Добавлено: 2007-07-14 20:14:54
Alex Keda
я даже показал :)

Добавлено: 2007-07-14 20:16:23
Alex Keda
совсем вкратце - можно содержимое нескольких директорий смонтировать в одну.
========
можно сделать чтобы содержимое исходной не менялось, однако работая в смонтированной директории файлы будут меняться - вернее их копии, видимые только тебе.
короче - интересная штука.

Добавлено: 2007-07-14 21:18:47
Andy
lissyara писал(а):совсем вкратце - можно содержимое нескольких директорий смонтировать в одну.
========
можно сделать чтобы содержимое исходной не менялось, однако работая в смонтированной директории файлы будут меняться - вернее их копии, видимые только тебе.
короче - интересная штука.
А как насчет один диск, к примеру с ntfs в директорию смонтировать? null этого не позволяла вроде.

Добавлено: 2007-07-14 21:21:14
Alex Keda
непонял...

Re: Скрипт для создания силинков

Добавлено: 2007-07-15 8:48:04
Andy
В системе 2 диска, один ntfs, другой ufs. У меня, к примеру, ftp в nix'е поднято. Я хочу c:\music сделать доступной всем пользователям, в
результате мне надо, не перенося данные, сделать доступной музыку с другого винта, допустим в каталоге /home/andy. Как ты писал в статье, nullfs этого не позволяет. Может ли такую возможность дать unionfs?

Re: Скрипт для создания силинков

Добавлено: 2007-07-15 9:01:13
Alex Keda
а ты попробуй.
у меня NTFS нету - поэтому попробовать не могу.