Знакомство с предустановленными сервисами

Несмотря на то, что установленный Tiny Core Linux представляет собой лишь ядро и консольную оболочку Busy Box, в нашем дистрибутиве уже есть некоторые предустановленные сервисы и программы с которыми нам предстоит иметь дело в дальнейшем. К примеру, в процессе загрузки TCL запускается предустановленный DHCP-клиент. Его задача - получить IP-адрес для сетевой карты от DHCP-сервера, если таковой присутствует в сети.

Монтирование дисков. В Linux-подобных системах существует такое понятие как монтирование дисков. Этот процесс, с большим упрощением можно сравнить с чтением информации с CD-диска. Сам дисковод информации в себе не несёт. Чтобы прочесть содержимое носителя - необходимо вставить этот самый диск. Смонтировать. В нашей же системе роль таких приводов выполняют обычные директории в папке /mnt/. Зная названия устройств самих носителей (HDD, CD/DVD-ROM, USB-flash) мы можем монтировать их к нашим папкам, а затем работать с их содержимым как с содержимым обычной директории. Названия устройств можно узнать из папки /dev/, однако Tiny Core Linux уже позаботился об этом и создал для нас готовые директории-шаблоны с одноименными названиями наших накопителей. К примеру sr0 - это устройство чтения лазерных дисков. Если их у вас несколько, то и папок будет больше. sr0, sr1, sr2 и так далее. Зачастую названия созданых по умолчанию папок малоинформативно. Поэтому мы создадим свои директории, и будем монтировать диски самостоятельно.

Создаем папку /mnt/HDD:

mkdir /mnt/HDD

Я разрешил запись-чтение всем пользователям для этой папки, но вы можете варьировать уровень прав доступа к содержимому папки исходя из своих собственных потребностей:

sudo chmod 666 /mnt/HDD

Далее монтируем жесткий диск командой mount. У меня в системе он определился под именем sda1, поэтому для моего случая команда монтирования будет выглядеть так:

sudo mount -o rw /dev/sda1 /mnt/HDD

Всё что мы делаем, это монтируем устройство /dev/sda1 (наш физический жесткий диск) в папку /mnt/HDD. После этого в директории HDD будет отображаться содержимое жесткого диска. Символ -o определяет дополнительные опции монтирования. В моём случае я разрешил пользователям как чтение так и запись содержимого нашего диска.

Tiny Core Linux 7 умеет работать с также и с NTFS-дисками. Единственное что для этого необходимо - указать явно тип файловой системы параметром -t:

mount -t ntfs /dev/sda1 /mnt/HDD

Мы можем без проблем смонтировать RAM-диск. TCL, как и все Linux-подобные ОС умеет это делать прямо "из коробки":

mkdir -m 777 -p /mnt/RAM
tc@BOX:~$ mount -t tmpfs -o size=512M tmpfs /mnt/RAM

Я опцонально задал размер RAM диска параметром "size=512M", однако когда всё доступное пространство будет исчерпано, система сама увеличит объем диска, при наличии свободной оперативной памяти. RAM-диски идеальны для хранения временных файлов, к которым идет частое обращение на чтение-запись. Примером могут быть файлы PHP-сессий или кеш прокси-сервера.

Более того, монтировать можно и другие ресурсы. В том числе и сетевые. Для этого необходимо установить утилиту работы с дисками формата cifs.

tce-load -wi cifs-utils.tcz

После этого команда монтирования сетевых дисков будет иметь вид:

mount -t cifs -o iocharset=utf8,user=[имя удаленного пользователя] //[сетевой адрес]/[сетевая папка] /mnt/NET

Параметр iocharset=utf8 заставляет систему использовать юникод, и избавляет от проблемы неверного отображения кириллицы в именах файлов.

Теперь осталось добавить команды монтирования нашего жесткого диска в автозагрузку:

/opt/bootlocal.sh

...
mkdir /mnt/HDD
sudo chmod 666 /mnt/HDD
sudo mount -o rw /dev/sda1 /mnt/HDD
...

И сделать бэкап:

sudo filetool.sh -b

Планировщик задач - CRON. Ещё одна полезная утилита, которая позволяет выполнять shell-скрипты по расписанию - cron. По умолчанию он не запущен. Запускаем его:

sudo crond

И тут же добавим команду в скрипт автозапуска:

/opt/bootlocal.sh

...
sudo crond
...

Для удобства настройки я создал директорию /opt/cron/ куда поместил пока пустые shell-скрипты daily.sh и watchdog.sh. Первый мы настроим на выполнение каждые сутки, и будем записывать туда команды, которые хотим выполнять ежесуточно. Второй - сторожевой таймер. Этот скрипт будет выполняться ежеминутно, и будет мониторить состояние служб на предмет "зависания", а также проверять наличие подключения к сети. В будущем это будет необходимо для резервирования канала на нашем мультисервере.

Теперь необходимо добавить эти задания в наш планировщик. Для этого откроем журнал расписаний cron в режиме редактирования:

sudo crontab -e

Редактирование происходит во встроеном текстовом тедакторе vi, алгоритм работы которого для новичка, мягко говоря не очень понятен. К сожалению корректное редактирование списка задач возмозно только посредством vi. У этого редактора есть два режима - редактирование и управление. Чтобы перейти в режим редактирования необходимо нажать i на клавиатуре. Далее добавляем такие строки:

* * * * * /opt/cron/watchdog.sh
0 0 * * * /opt/cron/daily.sh

и жмем Esc. Выходим из режима редактирования, сохраняем нажатием комбинации ZZ. Вот такой странный редактор.

Пару слов о том, что же мы записали. А записали мы наши два расписания в cron-формате. Он состоит из 6-ти цифровых значений и одного строкового. Цифровые значения в порядке слева направо означают минуту, час, день, месяц и день недели выполнения задания. Символ "*" означет любую цифру. Поэтому первая строчка гласит:

"выполнять скрипт /opt/cron/watchdog.sh каждую минуту каждого часа, каждый день и каждый месяц".

т.е. ежеминутно. Следующая строка содержит задание на выполнение скрипта /opt/cron/daily.sh каждые 0 минут 0 часов во все дни и месяца. Таким образом указанный скрипт будет запускаться ежедневно в полночь (00:00).

Теперь осталось внести наши списки заданий в бэкап-лист

/opt/.filetool.lst

...
var/spool/cron
...

и сохранить настройки:

sudo filetool.sh -b

ранее: "Удаленное администрирование"далее: "Файловый сервер SAMBA"

Оставить комментарий

Имя:

Сообщение: