-
#!/bin/bash
-
# ramdisk.sh
-
# «электронный диск» — это область в ОЗУ компьютера
-
#+ с которой система взаимодействует как с файловой системой.
-
# Основное преимущество — очень высокая скорость чтения/записи.
-
# Недостатки — энергозависимость, уменьшение объема ОЗУ, доступного системе,
-
# относительно небольшой размер.
-
#
-
# Чем хорош электронный диск?
-
# При хранении наборов данных, таких как таблиц баз данных или словарей, на электронном диске
-
#+ вы получаете высокую скорость работы с этими наборами, поскольку время доступа к ОЗУ
-
# неизмеримо меньше времени доступа к жесткому диску.
-
E_NON_ROOT_USER=70 # Сценарий должен запускаться с правами root.
-
ROOTUSER_NAME=root
-
MOUNTPT=/mnt/ramdisk
-
SIZE=2000 # 2K блоков (измените, если это необходимо)
-
BLOCKSIZE=1024 # размер блока — 1K (1024 байт)
-
DEVICE=/dev/ram0 # Первое устройство ram
-
username=`id -nu`
-
if [ «$username« != «$ROOTUSER_NAME« ]
-
then
-
echo «Сценарий должен запускаться с правами root.»
-
exit $E_NON_ROOT_USER
-
fi
-
if [ ! -d «$MOUNTPT« ] # Проверка наличия точки монтирования,
-
then #+ благодаря этой проверке, при повторных запусках сценария
-
mkdir $MOUNTPT #+ ошибки возникать не будет.
-
fi
-
dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE # Очистить электронный диск.
-
mke2fs $DEVICE # Создать файловую систему ext2.
-
mount $DEVICE $MOUNTPT # Смонтировать.
-
chmod 777 $MOUNTPT # Сделать электронный диск доступным для обычных пользователей.
-
# Но при этом, только root сможет его отмонтировать.
-
echo «Электронный диск \»$MOUNTPT\» готов к работе.»
-
# Теперь электронный диск доступен для любого пользователя в системе.
-
# Внимание! Электронный диск — это энергозависимое устройство! Все данные, хранящиеся на нем,
-
#+ будут утеряны при остановке или перезагрузке системы.
-
# Если эти данные представляют для вас интерес, то сохраняйте их копии в обычном каталоге.
-
# После перезагрузки, чтобы вновь создать электронный диск, запустите этот сценарий.
-
# Простое монтирование /mnt/ramdisk, без выполнения подготовительных действий, не будет работать.
-
exit 0