Главная |  Новости |  Продукты |  Программы |  Статьи |  Контакты |  
Как известно, ос линукс не имеет функции "корзины" для файловых систем. А это значит, что любой удаленный файл в системе больше не подлежит восстановлению. Исключение составляют лишь файловые системы ext2, но уже в файловой системе ext3 файл уже невозможно восстановить. Графические оболочки как Гном или КДЕ имеют свою собственную реализацию корзины, однако на уровне консоли эта корзина не действует. Как же решить эту проблему? Ведь случайно или по ошибке удаленные файлы, в следствие своих действий или действий программы иногда приносят немало смертей нервным клеткам владельца удаленных файлов. Можно конечно повышать самодисциплину – внимательно обдумывать каждое свое действие при удалении файлов. Можно пытаться использовать примочки для команды/программы rm, заменяя ее на нечто похожее команде mv, но это лишь припарки - они мало эффективны и помогают на уровне команд в консоли и скриптов которые используют rm для удаления файлов. Увы, но если вы работаете в mc или используете программу которая во время работы удаляет файлы, то примочки к rm уже не помогут. Потому что на программном уровне идет не обращение к программе rm, а обращение к функции ядра – unlink, которая удаляет файл. Ниже речь пойдет о программе recycled4linux. Эта программа состоит из двух частей: программа которая работает с корзиной и модуль для ядра. Ее модуль для ядра заменяет функцию unlink и не удаляет файл, а переносит в корзину, откуда уже в дальнейшем его можно удалить. Есть поддержка пользователей, квот, и прочих опций для удаляемых файлов.

{
Примечание автора:
Программа еще в стадии разработки (статус Бета) и поэтому могут быть проблемы. Так что если вы решите установить эту программу на сервер занятый важной задачей, то пеняйте на себя. Соответственно возможны security holes и прочие неприятные вещи. Пишу не для того что бы напугать, а для того что бы не было бессмысленного флуда о том что чем меньше всякого в ядре – тем лучше. Я лишь описываю проблему и одно из ее решений. Для тестирования и для пользования можно ставить на десктопе.
}

Официальный сайт проекта - http://www.shirka.org/


Теперь речь пойдет об сборке этой программы.
Для сборки рекомендую использовать cvs версию так как в ней например есть поддержка ядра 2.6.7 (появилась после моих баг репортов).

Итак откройте ваш любимый терминал и впишите:
1.cvs -d:pserver:anonymous@cvs.shirka.org:/var/cvsroot login
2.cvs -z3 -d:pserver:anonymous@cvs.shirka.org:/var/cvsroot checkout recycled
3.cd recycled
4.make -f Makefile.cvs
5../configure --enable-debug --enable-kdebug ( + опции )
6.make
7.make install

Выше указанными действиями вы скачаете последнюю версию R4L, соберете ее (с опциями для дебага), а также проинcталлируете.
Программа требует исходники ядра для сборки, так как она создает модуль для ядра.


R4L использует конфигурационный файл (/etc/recycled.conf) для настройки.
Давайте же глянем что в нем прописано.

[General]

# Name of recycled directory
{
Название папка для корзины.
Если у вас есть mount point то в каждом смонтированном разделе будет использоваться папка корзины.
!!! Также незабудьте создать папку для корзины, поскольку автоматически папка не создается !!!
# mkdir /.recycled
}
Recycled_Name = .recycled

# Apply default configuration for this users
{
Использовать стандартную конфигурацию для ниже указанных пользователей.
}
#Users = duclos, root

# or use this syntax for apply for all users
{
Можно также указать *All_Users* для применения параметров для всех пользователей.
}
Users = *All_Users*

# Protect dangerous root user
{
Защищать опасного суперпользователя.
}
Root_Protected = Yes

# Root don't protect these filesystem types
{
Не использовать корзину для ниже указанных файловых систем.
}
FS_Type_Exclude = proc, usbfs, usbdevfs, devfs, devpts, tmpfs

# mkdir UID dir in recycled directory
# example :
# mkdir /.recycled/501 for fist user (501 is uid of first user on Linux Mandrake)
# mkdir /.recycled/502 for second user (502 is uid of second user on Linux Mandrake)
# mkdir /.recycled/0 for root user (0 is uid of root user on all Linux)
{
Использовать номер пользователя для удаленных файлов.
}
Append_UID = Yes

# General Quota
{
Использовать квоты для корзины.
}
Quota = On
Quota_Limit = 10%
Quota_Alert = 80%

# Laps time between two calls INIT script
InitTime = 1800s
# Laps time between two calls scripts
LapsTime = 30s


#
# Default configuration for all users
#
[Default]
{
Директории обрабатываемые r4l.
}
# Includes directories for recycled
# example :
# Includes = /bin:/usr/bin (absolutes paths)
# Includes = ~/Prj:~/Documents (relatifs paths to home directory of user)
Includes = ~/
{
Директории необрабатываемые r4l.
}
# Excludes directories for recycled
# Idem with Includes
Excludes = ~/tmp

{
Активировать сервис корзины.
}
# Yes : recycled is active
# No : recycles is not active
Active = Yes

{
Перемещать ли в корзину файлы нулевой длины.
}
# Yes : save zero size files
# No : don't save zero size files
Zero_Size = No

{
Сохранять ли скрытые файлы.
}
# Yes : save dot files
# No : don't save dot files
Dot_File = No

{
Сохранять ли скрытые директории.
}
# Yes : save files in dot dir
# No : don't save files in dot dir
Dot_Dir = No

{
Сохранять ли файлы меньше определенного размера.
}
# Don't save file with him size < Min_Size
# A value 0, ignore
# Prefix Kk (value * 1024), Mm (value * 1024 * 1024), Gg(value * 1024 * 1024 * 1024)
Min_Size = 0

{
Сохранять ли файлы больше определенного размера.
}
# Don't save file with him size > Max_Size
# A value 0, ignore
# Prefix Kk (value * 1024), Mm (value * 1024 * 1024), Gg(value * 1024 * 1024 * 1024)
Max_Size = 0

{
Квоты корзины.
}
# Quota
Quota = On
Quota_Limit = 10%
Quota_Alert = 80%
Quota_AddAlert = -10%

# Laps time between two calls INIT script
InitTime = 1800s
# Laps time between two calls scripts
LapsTime = 30s

{
Путь к скриптам r4l.
}
# Notify scripts
Script_Alert = /etc/recycled/alert.sh
Script_Limit = /etc/recycled/limit.sh


После настроек конфигурации можно приступить к запуску сервиса.
После инсталляции r4l создает в init.rc свой сервис. Для red-hat (rh..fc) можно для запуска использовать команду service recycled start, а для остановки service recycled stop. Ну а после запуска можно проверить работу корзины.

Частные объявления - Программы учета рабочего времени - бесплатная доставка!

Комментарии: (0)   Рейтинг:
Средняя оценка участников (от 1 до 10) : Пока не оценено   
Проголосовавших: 0



Copyright(R) 2001-2009. ThizLinux Laboratory Limited. All Rights Reserved.