вторник, 20 октября 2009 г.

incron - запуск программ по событиям файловой системы

Создаем скрипт, который будет сортировать файлы по расширению, и производить над ними необходимые действия
#!/bin/bash
DIR=/home/userhome
{
echo "File: $i"
case "$1" in
*.avi| *.flv| *.vob| *.mpg)
mv -v "$DIR/$1" $DIR/Видео
;;
*.png| *.jpg| *.gif)
mv -v "$DIR/$1" $DIR/Картинки
;;
*.doc| *.odt| *.ods| *.html| *.htm| *.chm| *.djvu| *.pdf)
mv -v "$DIR/$1" $DIR/Документы
;;
*.txt)
/home/username/scripts/dos2unix "$DIR/$1"
mv -v "$DIR/$1" $DIR/Документы
;;
*.zip| *.rar| *.tar| *.bz2| *.gz| *.tgz| *.deb| *.7z)
mv -v "$DIR/$1" $DIR/Архивы
;;
*.mp3| *.ogg)
mv -v "$DIR/$1" $DIR/Музыка
;;
*.torrent)
mv -v "$DIR/$1" $DIR/torrents/watch
if ps aux | grep rtorrent | grep -v grep > /dev/null
then echo "Ужу запущен"
else
rtorrent
fi
;;
*.pl| *.py| *.sh)
mv -v "$DIR/$1" $DIR/scripts
;;
*)
echo "- None"
;;
esac
} &> /tmp/download_sort.log
Запускаем incrontab -e
пишем правило, котрое будет проверять заданную директорию на наличие действий в ней, например при создании файла в домашней директории, будет запускатся скрипт сортировки
/home/username IN_CREATE /home/username/scripts/download_sort $#
Подробно http://inotify.aiken.cz

Комментариев нет: