set MONGODB="/usr/local/mongodb/bin"
Это не переменное присвоение. (Это один в оболочке C (csh, tcsh), но не в оболочках стиля Границы (sh, пепел, удар, ksh, zsh, …).) Это - вызов к
set
встроенный, который устанавливает позиционные параметры, т.е.$1
,$2
, и т.д. Попытайтесь выполнить эту команду в терминале, затемecho $1
.Для присвоения значения переменной оболочки просто запишите
MONGODB="/usr/local/mongodb/bin"
Это создает переменную оболочки (также названный (именованным) параметром), с которым можно получить доступ
$MONGODB
. Переменная остается внутренней к оболочке, если Вы не экспортировали ее сexport MONGODB
. Если экспортируется, переменная также видима ко всем процессам, запущенным той оболочкой через среду. Можно уплотнить присвоение и экспорт в одну строку:export MONGODB="/usr/local/mongodb/bin"
Поскольку, что Вы делаете, кажется, нет потребности в
MONGODB
вне сценария, иPATH
уже экспортирован (после того как переменная экспортируется при присвоении нового значения она отражается в среде). Таким образом, можно записать:MONGODB="/usr/local/mongodb/bin" PATH=${PATH}:${MONGODB}
umount ...
) vgchange -an
)Если Вы хотите быть дополнительны осторожный, сделать echo 1 > /sys/block/(whatever)/device/delete
сначала. Это не зарегистрирует устройство от ядра, таким образом, Вы будете знать, что ничто не использует его при отключении его. Когда я делаю это с диском в eSATA корпусе, я могу услышать, что верхние части диска паркуют себя, таким образом, ядро, по-видимому, говорит диску подготовиться к выключению питания.
При использовании контроллера AHCI он должен справиться с отключаемыми устройствами. При использовании некоторого другого вида контроллера SATA драйвер мог бы быть перепутан путем замены в горячем режиме.
По моему опыту, замена в горячем режиме SATA (с AHCI) работает вполне прилично в Linux. Я отключил оптический диск, включил жесткий диск, просканировал его для ошибок, сделал файловую систему и скопировал данные в него, размонтированный и отключил его, включил differerent DVD-привод и записал диск, все с машиной и выполнением.
Те два раздела для разных вещей.
Первое для отключения. Второе для включения.
Для отключения ОС будет синхронизировать данные во время операции размонтирования. Таким образом, если диск размонтирован (предположение, что у Вас на самом деле есть полная поддержка оборудования), можно выключиться, диск затем отключают его без риска потери данных или повреждения.
Для включения должно быть автоматически распознано устройство. В противном случае можно выполнить ту команду для инициирования сканирования шины. После того как устройство распознано, можно смонтировать его.
И позвольте мне протест это путем высказывания, что я только когда-либо делал этот вид вещи с Картами памяти.
hdparm -Y
будет заботиться об этом. Это в основном, что система делает каждый раз, когда Вы приостанавливаете или завершаете работу.
– psusi
19.07.2012, 16:16
что относительно eject /dev/sdX
? На моей установке это управляет umounts, синхронизирует и выключает диск.
ioctl()
операция, используемая eject
инструмент. Жесткие диски Esata не поддерживают его, но оптические устройства, дискеты и вероятно флеш-накопители, да.
– peterh - Reinstate Monica
31.07.2015, 07:11
У меня есть пара скриптов, основанных на ответе Wyzard . Первый, scsi-drop
, предназначен для безопасного отключения одного диска:
#!/bin/sh
if test -h "$1"
then
disk=$(chase "$1")
else
disk="$1"
fi
if test -b "$disk"
then
echo 1 >/sys/block/$(basename "$disk")/device/delete
else
echo "$0: not a block device: $1" >&2
exit 1
fi
Его главное преимущество заключается в том, что вы можете передать ему символическую ссылку, например, найденную в / dev / disk / by-id /
, и он разрешит это на реальное устройство. Требуется установить chase
; вы можете получить тот же результат, используя readlink -e
.
Второй сценарий, scsi-rescan
, используется после горячего подключения нового устройства:
#!/bin/bash
exec tee /sys/class/scsi_host/host*/scan <<<'- - -' >/dev/null
Это заставляет все адаптеры повторно сканировать устройства. Это был единственный способ получить для чтения новую емкость и таблицу разделов.
На самом деле диски SATA автоматически паркуют головки при отключении питания. Вытягивание диска во время его вращения не должно вызывать проблем. Тем не менее, вращающиеся диски склонны к звону, если их ударить. Вы можете услышать это, когда у вас есть нестабильное питание или солнечные вспышки.
Большинство повреждений обычно вызывается неочищенным кешем, незафиксированными записями в буферы и т. д. Вот почему НЕОБХОДИМО размонтировать диск перед его извлечением. Команда SCSI — это просто хорошая мера, и она работает с той же целью.
Я написал для этого скрипт, используя umount
и hdparm suspend
. Не стесняйтесь редактировать скрипт и использовать на свой страх и риск. Скрипт интерактивный или может быть запущен с опциями.
1
кому:delete
сделанный им исчезнуть и я мог услышать, что диск вращался вниз. Простоhdparm -Y
был недостаточно потому что/dev/
записи все еще существовали бы.Спасибо! – Lekensteyn 09.08.2012, 12:25echo 1 > /sys/block/(whatever)/device/delete
управляйте, потому что диск будет парковать головы, полностью остановите диск и отключите, включают шину. Если непаркуемая голова касается вращающейся пластины, диск может быть постоянно уничтожен. – drumfire 12.02.2014, 23:21echo 1 > /sys/block/(whatever)/device/delete
не будет работать подsudo
, "Разрешение, отклоненное" ошибка, будет брошено. Необходимо будет стать реальным корнем, так простое использованиеsu
вместо этого. – Neurotransmitter 29.03.2015, 13:59sudo tee
эмулировать перенаправление как корень:echo 1 | sudo tee /sys/block/(whatever)/device/delete
– Oli 15.04.2015, 23:54