Всем здрасте !
Есть такая вот задача: есть сервер, на него по нфс монтируються диски с фильмами (например /share/Video/hdd*/папки_с_фильмами ), надо написать такой скрипт, чтоб он через некоторый промежуток времени сканировал директории и создавал симлинк в определённую папку ( /ftp/cinema/имя_папки_с_фильмом ). Тоесть чтоб просто забрасывали фильмы на монтируемые диски и скрипт сканировал через определённый промежуток и создавал симлинк на папку с фильмом (имеено на папку, а не на фильм). Кто знает помогите пожалуйста, так как с програмированием в оболочке вобще не дружу ! Заранее спасибо.
Ну например сделать вот такой скрипт и запихать его запуск в 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, это не сложно, но приятно :)
>Ну например сделать вот такой скрипт и запихать его запуск в 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;
Блин новая запара случилась :( Добавили ещё диски с фильмами, а там в названии файлов пробелы и симлинки нормально не создаються ... Подкскажите кто знает, как это решить, буду очень признателен !
>Блин новая запара случилась :( Добавили ещё диски с фильмами, а там
>в названии файлов пробелы и симлинки нормально не создаються ... Подкскажите
>кто знает, как это решить, буду очень признателен !Заключай имена переменных, воторые содержат пробелы, в двойные кавычки. (Вместо $i пиши "$i")