Страница 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
Вот что у меня получилось ... конечно криво, но работает
#!/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 и симлинки не пашут ...
Пытался сделать через 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. Чеб в ман не лезть
Добавлено: 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 нету - поэтому попробовать не могу.