Ubuntu 16.04 minimal - очень медленное подключение к интернету

Благодаря подключению к PROMPT_COMMAND bash, эта функция запускается каждый раз, когда вы получаете новый запрос, так что это подходящее время для проверки, находитесь ли вы в каталоге, для которого вам нужна пользовательская история. Функция имеет четыре основных ветви:

  1. Если текущий каталог ($PWD) не изменился, то ничего не делать (возврат).

Если PWD изменился, то мы создаем локальную функцию, единственная цель которой - собрать код "пользовательского каталога" в одном месте. Вы захотите заменить мои тестовые директории на свои собственные (разделенные |).

  1. Если мы не перешли в пользовательский каталог или из него, то просто обновите переменную "предыдущий каталог" и выйдите из функции.

Если мы изменили директорию, обновите переменную "previous directory", затем сохраните историю в памяти в HISTFILE, затем очистите историю в памяти.

  1. Если мы сменили на пользовательский каталог, то установите HISTFILE как .bash_history файл в текущем каталоге.

  2. В противном случае, мы изменили из пользовательского каталога, поэтому сбросьте HISTFILE на стоковый.

Наконец, поскольку мы изменили файлы истории, прочитайте предыдущую историю.

Чтобы начать работу, скрипт устанавливает значение PROMPT_COMMAND и сохраняет две переменные внутреннего использования (стоковый HISTFILE и "предыдущий каталог").

prompt_command() {
  # if PWD has not changed, just return
  [[ $PWD == $_cust_hist_opwd ]] && return

  function iscustom {
    # returns 'true' if the passed argument is a custom-history directory
    case "$1" in
      ( */tmp/faber/somedir | */tmp/faber/someotherdir ) return 0;;
      ( * ) return 1;;
    esac
  }

  # PWD changed, but it's not to or from a custom-history directory,
  # so update opwd and return
  if ! iscustom "$PWD" && ! iscustom "$_cust_hist_opwd"
  then
    _cust_hist_opwd=$PWD
    return
  fi

  # we've changed directories to and/or from a custom-history directory

  # save the new PWD
  _cust_hist_opwd=$PWD

  # save and then clear the old history
  history -a
  history -c

  # if we've changed into or out of a custom directory, set or reset HISTFILE appropriately
  if iscustom "$PWD"
  then
    HISTFILE=$PWD/.bash_history
  else
    HISTFILE=$_cust_hist_stock_histfile
  fi

  # pull back in the previous history
  history -r
}

PROMPT_COMMAND='prompt_command'
_cust_hist_stock_histfile=$HISTFILE
_cust_hist_opwd=$PWD
11
21.08.2018, 04:10
1 ответ

Я нашел причину проблемы. Медленное соединение было из-за конфигурации IPv6. Когда я отключил IPv6, все заработало нормально.

$ sudo nano /etc/sysctl.conf

Добавлены следующие конфигурации в конец файла:

# IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Затем перезапущен sysctl.conf:

$ sudo sysctl -p
28
27.01.2020, 19:57

Теги

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