Linux. Вопросы и ответы 2

Linux. Вопросы и ответы Q: Что такое cron и at? Для чего они нужны?

A:
Как отдельным пользователям, так и системному администратору иногда требуется периодически запускать определенные команды. Например, системному администратору может потребоваться периодически запускать команду для очистки каталогов от временных файлов (/tmp и /var/tmp), для предотвращения переполнения диска. Для этого используется функция cron. У каждого пользователя имеется файл crontab, в котором содержится список команд, представленных к выполнению, и количество раз, которое они должны быть выполнены. Программа-демон crond обеспечивает своевременное выполнение указанных команд. Функция at идентична функции cron, только команда запускается один раз в указанное время и запуск больше не повторяется.

Q: Есть ли что-нибудь типа scandisk для Linux? Да и вообще, как поддерживать работоспособность файловых систем?

A:
Файловые системы это достаточно сложные объекты, поэтому иногда их функционирование нарушается. Для проверки целостности и работоспособности файловой системы используется команда fsck. Наиболее часто возникающие тpудности связаны с перебоями в питании, неполадках в оборудовании или ошибках пользователя (например, некорректное выключение системы).
Большинство систем сконфигурировано таким образом, что команда fsck запускается автоматически при загрузке системы, поэтому возможные неполадки будут обнаружены (и, возможно, исправлены) перед тем, как система будет использоваться. Работа с поврежденной файловой системой может привести к потерям данных и другим нарушениям ее функционирования.
Однако, если файловая система довольно большая по объему, то ее проверка может занять некоторое время, а так как неполадки случаются очень редко, то если система была выключена корректно, пpименяются определенные методы для избежания проверки файловой системы. Первый из них связан с тем, что если существует файл /etc/fastboot, то никаких проверок не производится. Второй метод заключается в том, что в файловой системе ext2 (а именно она пока что еще наиболее используема, хотя и есть гораздо более лучшие файловые системы) существует специальный флаг, раположенный в суперблоке, который используется для выявления коppектности демонтирования системы пpи последнем выключении системы.

Эта возможность используется в программе e2fsck (версия команды fsck для файловой системы ext2fs) для избежания излишней проверки файловой системы, если флаг ее целостности установлен (то есть система была коppектно демонтирована). Фунционирование метода, используещего файл /etc/fastboot, зависит от файлов, запускаемых при загрузке системы, в то время как применение команды e2fsck работает в любом случае (см. руководство по e2fsck для более подробной информации).
Автоматическая проверка используется только для файловых систем, устанавливаемых во время загрузки. Для проверки других систем команда fsck должна выполняться отдельно. Если fsck находит неисправность, не подлежащую восстановлению, то могут потребоваться глубокие знания и понимание работы файловых систем и их типов. Также могут потребоваться резервные копии. Некоторую информацию по тем или иным вопросам можно найти через конференции, связанные с системой Linux. Также может потpебоваться программа debugfs, созданная Theodore T.
Команда fsck должна использоваться только для демонтированных систем (за исключением системы root, смонтированной в режиме read-only во время загрузки), так как при ее работе используется прямой доступ к диску и информация о внесении каких-либо изменений в файловую систему может быть недоступна операционной системе, что, обычно, приводит к нарушению ее работы.

Иногда следует проводить поиск плохих блоков при помощи команды badblocks. При ее выполнении выводится список номеров найденных плохих блоков. Этот список может быть использован программой fsck для внесения изменений в структуру файловой системы во избежание использования этих блоков для хранения информации.

Q: Я случайно стер один из своих файлов. Как мне его восстановить, т.е. есть ли в Linux что-нибудь типа unerase?

A: Просто взять и восстановить нужный файл не получится — имена файлов и сами файлы в Линуксе есть совершенно разные сущности. Как следствие — найти удаленный файл по имени невозможно.
Можно искать только по размеру, типу, времени удаления, правам и т.д. Подробно процесс восстановления удаленных файлов с помощью стандартного средства — утилиты debugfs — описан в "Linux Ext2fs Undeletion mini-HOWTO" ( http://pobox.com/~aaronc/tech/e2-undel/howto.txt ) и состоит из множества довольно кропотливых шагов. К счастью, написано несколько средств, в значительной степени автоматизирующих этот процесс, таких, как, например, recover ( http://www.linuxave.net/~recover/ ), unrm ( http://hideout.art.ro/ ). Впрочем, наиболее удобное из них встроено в Midnight Commander. Единственная сложность с ним заключается в несколько неочевидном способе его запуска. Для этого нужно из-под пользователя root (чтобы иметь прямой доступ к файловой системе) в командной строке программы набрать команду
cd /#undel:<имяраздела>
имя нужно писать без части /dev/, то есть, например, для первого раздела первого ide-диска это будет
cd /#undel:hda1

После этого можно будет рассматривать получившийся список файлов, ища в них наиболее подходящие. Все эти манипуляции настоятельно рекомендуется (если не хотите еще сильнее усугубить ситуацию, повредив еще и файловую систему) выполнять в single-user mode на отмонтированном или, в крайнем случае, примонтированном как read-only разделе.

X-Stranger
xstranger@tut.by
www.linux4u.narod.ru


(c) компьютерная газета




Компьютерная газета. Статья была опубликована в номере 29 за 2001 год в рубрике soft :: linux

©1997-2024 Компьютерная газета