Автозаполнение в оболочке с использованием последних N байтов стандартного вывода

Да, это возможно при использовании поддельных дисков с файловой поддержкой для ваших избыточных дисков. Конечно, это не поддерживается, и у вас должна быть резервная копия, поэтому сначала смоделируйте это с небольшими файлами на старом пуле, чтобы убедиться, что все работает, как ожидалось.


Подробности см. в https://www.mail-archive.com/zfs-discuss@opensolaris.org/msg22993.html и https://www.mail-archive.com/zfs-discuss@opensolaris.org/msg23023.html. Вы также можете поискать в Интернете "create raidz2 degraded", если у вас есть другие системы, такие как FreeNAS и т.д.

Важные шаги (взяты из архивной ветки списка рассылки Томаса Эгрена и Даниэля Рока):

  1. Создайте разреженный файл размером с реальный диск (предположим, что в данном примере он равен 1000 ГБ):

    mkfile -n 1000g /tmp/fakedisk1
    
  2. Создайте zpool с реальными дисками и разреженным файлом:

    zpool create -f newpool raidz2 disk1 disk2 disk3 disk4 disk5 /tmp/fakedisk1
    
  3. Немедленно переведите разреженный файл в автономный режим, чтобы никто не пытался писать на него:

    zpool offline newpool /tmp/fakedisk1
    
  4. Теперь ваш пул будет деградировать, но функционировать. Скопируйте ваши файлы в новый пул (используйте ssh или netcat между send и recv, если используете сеть, а не напрямую подключенные пулы):

    zfs snapshot -r oldpool@now
    zfs send -R oldpool@now | zfs recv -Fdu newpool
    
  5. Уничтожьте старый и замените разреженные файлы на освободившиеся диски:

    zpool replace newpool /tmp/fakedisk1 disk6
    

И снова несколько слов предостережения в зависимости от уровня избыточности (если вы используете два фальшивых диска на Z2 или три фальшивых диска на Z3):

Помните: во время миграции данных вы работаете без ремней безопасности. Если диск выйдет из строя во время миграции, вы потеряете данные.

2
18.04.2017, 13:49
1 ответ

Если вы хотите использовать iTerm2 вместо любого терминала, который вы используете в настоящее время, он включает в себя эту функцию. Для запуска терминала требуется macOS, а также включение интеграции оболочки iTerm2 на хостах, где вы этого хотите. (Это в основном добавляет некоторые хуки для вашей оболочки для взаимодействия с iTerm2.)

https://www.iterm2.com/features.html#autocomplete имеет снимок экрана, на котором показаны выходные данные tail, представленные как лучший кандидат на завершение для Command-;

Проект iTerm2 имеет открытый исходный код, поэтому я полагаю, что внутренности этой функции могут быть вырваны и включены или повторно реализованы в других средах.

1
27.01.2020, 22:18

Теги

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