Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Kirill Frolov                        2:5030/827.2   22 Jan 2004  23:27:06
 To : Kirill Frolov
 Subject : Fwd: дата последней доступа к файлу, "Мои документы"
 -------------------------------------------------------------------------------- 
 
 
    В линухе, да и в других юнихах насколько я знаю, нет такой важной
  вещи, вроде каталога "Моих документов" в виндовсе.  Это несколько
  затрудняет работу с этими самыми "Моими документами", так как приходится
  вручную разбираться в структуре файловой системы и местоположении этих
  "документов".
 
    Также зачастую невозможно сказать, как часто используются, и
  используются ли вообще конкретные документы (файлы). Время последнего
  доступа atime ничего не говорит ввиду того, что постоянно изменяется при
  осуществлении резервного копирования, программой updatedb (aka locate) и
  рограммами вроде file, xfm, dfm, konqerror, nautilus, midnight commander
  и другими...  А ведь часто имеется огромная и неструктурированная куча
  "документов", лучшей организацией которой было, помещение в архив или
  удаление наиболее редко используемых файлов (для каталогов вроде /tmp),
  всё это совместно с полнотекстовым поиском, разумеется.
 
    Для решения означенных выше задач приходит в голову идея библиотеки,
  загружаемой через LD_PRELOAD, и запоминающей при выполнении системного
  вызова open, время последнего использования каждого файла, и какие файлы
  наиболее часто используются и какими программами. Параллельно можно
  отфильтровывать случаи использования файла служебыми программами, вроде
  утилит резервного копирования и индексирования. Возникает вопрос: ГДЕ
  МОЖЕТ СОХРАHЯТЬСЯ ИHФОРМАЦИЯ О ВРЕМЕHИ ИСПОЛЬЗОВАHИЯ ФАЙЛА?
 
    Первое, что приходит в голову -- какая либо БД, вроде mysql, sqlite
  или даже gdbm. Hо это мне кажется слишком громоздким и сложным решением,
  тем более что в данном случае требуется или отдельный процесс-сервер или
  особо устойчивая к сбоям БД.
 
   Второй вариант, к которому я больше склоняюсь предполагает запись
  ссылок на последние несколько (десятков-сотен...) используемых файлов в
  ~/Recent, и возможно, кроме того, запись в ещё один каталог
  shell-скриптов позволяющих "открыть" файл той же программой, какой он
  был открыт в последний раз.  Также предполагается организация в каждом
  подкаталоге $HOME скрытого каталога, например с именем ".attributes". 
  В скрытых подкаталогах будут содержаться файлы, с именами в точности
  соответствующими файлам основного каталога, и mtime каждого файла будет
  содержать время последнего доступа к файлу со стороны пользователя, а не
  служебных программ, в отличии от atime.  Кроме того, само тело скрытых
  файлов может содержать дополнительные атрибуты, вроде комментариев,
  ссылок на другие файлы и т.п.  Идея позаимствована с каталогов
  ".AppleDouble" оставляемых неизвестными мне программами, и содержащими
  атрибуты файлов для ЭВМ "Apple Macintosh".  Где-то, не помню уже где,
  читал, что в новой версии ext2 файловой системы для linux планируется
  поддержка расширенных атрибутов, как в OS/2. Так что теоретически, со
  временем, вместо скрытых каталогов могут быть использованы расширенные
  атрибуты. Мне этот путь, по сравнению с записью в БД, кажется более
  unix-way.
 
    Конечно, описанный выше подход имеет определённые недостатки, вроде
  захламления файловой системы посторонними файлами и тому подобного...
  Кроме того, поскольку в отличие от БД нет никакой таблицы
  индексированной по времени использования невозможно достаточно быстро
  вывести список файлов отобранный и отсортированный по времени доступа.
  С другой стороны, ссылки на наиболее часто используемые файлы всегда есть
  в ~/Recent, а наиболее редко используемые файлы на то и редко
  используемые, что доступ к ним требуется редко... и скорей всего их
  однажды понадобится просто удалить или заархивировать. Операция поиска
  наиболее ненужных файлов, проводимая раз в сутки-неделю, параллельно с
  updatedb, резервным копированием и индексированием текстовых данных,
  я думаю, не будет сильно загружать систему.
 
    А что вы думаете по этому поводу?  Как по хранению данных о времени
  последнего доступа, так и об организации неструктурированного
  файлохранилища вообще?
 
  PS: исправлять atime назад после каждого read() "системой" программы реально
     дурная идея -- меняется ctime и tar после этого делает полный backup
     всех файлов... А O_NOATIME флага к open() в линухе почему-то нет :`-(
 --- [ZX]
  * Origin: Registered Linux User #204355 (2:5030/827.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Fwd: дата последней доступа к файлу, "Мои документы"   Kirill Frolov   22 Jan 2004 23:27:06 
 Fwd: дата последней доступа к файлу, "Мои документы"   Konstantin Brazhnikov   23 Jan 2004 17:10:08 
 Re: Fwd: дата последней доступа к файлу, "Мои документы"   Eugene B. Berdnikov   24 Jan 2004 18:03:25 
 Fwd: дата последней доступа к файлу, "Мои документы"   Konstantin Brazhnikov   25 Jan 2004 17:03:30 
 Re: Fwd: дата последней доступа к файлу, "Мои документы"   Eugene B. Berdnikov   26 Jan 2004 17:03:15 
Архивное /ru.linux/38332d5ec657.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional