Я не могу переместить папку /var в другой раздел

Утилита expdpзавершает работу с нулевым статусом выхода, если

The export or import job completed successfully. No errors are displayed to the output device or recorded in the log file, if there is one. [Ref: Data Pump Exit Codes].

В противном случае он будет иметь ненулевой -статус выхода. Это стандарт для утилит в Unix. Ноль означает «Успех», а также является «истинным» значением в логических тестах.

Таким образом, в вашем сценарии вы должны иметь возможность сказать

if expdp...other options...; then
   echo 'Success'
else
   echo 'Failure'
fi

Это означает, что вы получили тесты в своем коде задом наперед.

Если вы действительно хотите отобразить код выхода:

expdp...other options...
code=$?

echo "Exit code is $code"

if [ "$code" -eq 0 ]; then
   echo 'Success'
else
   echo 'Failure'
fi

Поскольку echoзаменит $?, вам нужно будет сохранить его значение в новую переменную сразу после использования expdp.

0
10.10.2019, 08:29
1 ответ

Вопреки вашему мнению,для System V уровня выполнения 1 (а-ляinit 1)могут быть запущены некоторые службы, которые могут занять ваш каталог /var.

Поскольку вы не уточняете, какой тип системы/дистрибутива вы используете, и не приводите ps auxfwwвывод; Я собираюсь дать общий, уверенный -огонь, но также и грязный и сомнительный совет...


Чтобы загрузить систему GNU/Linux без какой-либо программы, кроме вашей оболочки , загрузите машину с параметром init=/bin/sh, добавленным в конец команды ядра . линия.

Без какой-либо запущенной другой программы это идеальная среда для начала операции /varперемещения.

Но есть несколько вещей, на которые нужно обратить внимание...

  • Остерегайтесь, что это хитрая вещь, прибегайте к этому только в том случае, если это невозможно сделать другими способами.
  • Оболочка будет корневой оболочкой и, вероятно, не будет иметь ни истории команд, ни редактирования строк.
  • Будет доступна только одна консоль; не нажимая Ctrl+Alt+F2 , если вы застряли.
  • Управление заданиями не работает; не нужно нажимать Ctrl+C , чтобы остановить программу, выходящую из-под контроля.
  • $HOMEместоположение каталога будет установлено на/(вместо обычного/root); поэтому избегайте делать то, что пишет в ваш домашний каталог.
  • Не exitиз основной оболочки. (Это остановит вашу систему из-за паники ядра)

И не забывайте об этих правилах техники безопасности...

  • После загрузки в этой среде, прежде чем что-либо делать, запустите mount -o rw,remount /, чтобы убедиться, что эта корневая файловая система доступна для записи.
  • Как только вы закончите со своими делами...

    1. Обязательно размонтируйте -все дополнительные файловые системы, которые вы смонтировали.
    2. Убедитесь, что вы -монтируете корневую файловую систему только для чтения -:mount -o ro,remount /
    3. Убедитесь, что вы сбросили весь кеш диска:sync
    4. Затем принудительно -перезагрузите систему:reboot -f(нажатие Ctrl+Alt+Del также работает)

Менее -изворотливая альтернатива – загрузка вашей системы с загрузочного диска GNU/Linux и, конечно же, выполнение операций перемещения с него.

1
28.01.2020, 02:39

Теги

Похожие вопросы