Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 260


/dev/zero

Подобно псевдоустройству /dev/null, /dev/zero так же является псевдоустройством, с той лишь разницей, что содержит нули. Информация, выводимая в этот файл, так же бесследно исчезает. Чтение нулей из этого файла может вызвать некоторые затруднения, однако это можно сделать, к примеру, с помощью команды od или шестнадцатиричного редактора. В основном, /dev/zero используется для создания заготовки файла с заданой длиной.

Пример 28-2. Создание файла подкачки (swapfile), с помощью /dev/zero

#!/bin/bash

# Создание файла подкачки. # Этот сценарий должен запускаться с правами root.

ROOT_UID=0 # Для root -- $UID 0. E_WRONG_USER=65 # Не root?

FILE=/swap BLOCKSIZE=1024 MINBLOCKS=40 SUCCESS=0

if [ "$UID" -ne "$ROOT_UID" ] then echo; echo "Этот сценарий должен запускаться с правами root."; echo exit $E_WRONG_USER fi

blocks=${1:-$MINBLOCKS} # По-умолчанию -- 40 блоков, #+ если размер не задан из командной строки. # Ниже приводится эквивалентный набор команд. # -------------------------------------------------- # if [ -n "$1" ] # then # blocks=$1 # else # blocks=$MINBLOCKS # fi # --------------------------------------------------

if [ "$blocks" -lt $MINBLOCKS ] then blocks=$MINBLOCKS # Должно быть как минимум 40 блоков. fi

echo "Создание файла подкачки размером $blocks блоков (KB)." dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks # "Забить" нулями.

mkswap $FILE $blocks # Назначить как файл подкачки. swapon $FILE # Активировать.

echo "Файл подкачки создан и активирован."

exit $SUCCESS

Еще одна область применения /dev/zero -- "очистка" специального файла заданного размера, например файлов, монтируемых как loopback-устройства (см. Пример 13-6) или для безопасного удаления файла (см. Пример 12-42).

Пример 28-3. Создание электронного диска

#!/bin/bash # ramdisk.sh

# "электронный диск" -- это область в ОЗУ компьютера #+ с которой система взаимодействует как с файловой системой. # Основное преимущество -- очень высокая скорость чтения/записи. # Недостатки -- энергозависимость, уменьшение объема ОЗУ, доступного системе, # относительно небольшой размер. # # Чем хорош электронный диск? # При хранении наборов данных, таких как таблиц баз данных или словарей, на электронном диске #+ вы получаете высокую скорость работы с этими наборами, поскольку время доступа к ОЗУ # неизмеримо меньше времени доступа к жесткому диску.




- Начало -  - Назад -  - Вперед -