-1

У меня есть сервер с жестким диском, который я хотел бы протестировать с использованием smartctl (smartmontools) и badblocks. Сначала я бы использовал smartctl, а затем и badblocks.

Мой вопрос состоит из трех частей:

  1. Как я могу выполнить команды через SSH, чтобы процесс не остановился, когда я закрою Терминал?
  2. Как я могу вывести результаты badblocks и информацию о smartctl в файл?
  3. Как я могу запустить smartctl, и тогда badblocks запустится автоматически (когда smartctl закончится) без необходимости SSH снова?

Спасибо.

2 ответа2

1

Хотя я обнаружил серьезную нехватку исследовательских усилий, вот ответ.

  1. nohup оборачивает процесс так, что он не получает сигнал зависания (HUP). Таким образом, он продолжит работу после закрытия сессии.

    Для более сложных функций вы можете использовать screen или tmux , которые во многом похожи на сеанс удаленного рабочего стола в Windows. Программы продолжают работать, и выходные данные собираются. Он будет представлен вам при повторном подключении к сеансу screen/tmux .

  2. Перенаправление вывода является ключевым словом здесь, с соответствующим оператором > как в echo bla > file.txt .

  3. Вы не Это потому, что на самом деле тестирование выполняет не smartctl , а сам жесткий диск. Когда он закончен, уведомления нет, вам нужно периодически опрашивать статус /результаты.

0

Способ сделать это состоит в том, чтобы войти через SSH, и затем запустить screen .

На screen выполните команды, подобные этой:

 smartctl <options>; badblocks <options>

Теперь нажмите Ctrl+A D, чтобы "отсоединить" screen сеанса. Таким образом, он будет работать, когда вы закроете SSH.

Вы можете заново подключить сеанс screen при повторном входе в систему позже, запустив screen -r .

Если вы все еще хотите сохранить выходные данные команды в файл, запустите их так:

(smartctl <options>; badblocks <options>) >/path/to/log/file.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .