Мне нужно очистить экземпляр memcached из скрипта bash, я нашел следующую команду, которая выполняет эту работу:

echo 'flush_all' | ncat localhost 11211

Но моя проблема в том, что скрипт не продолжает следующую команду, он останавливается с ncat :

Если я вручную отправляю команду на моей консоли, мне нужно сделать CTRL+C чтобы завершить процесс.

Я думаю, что это нормальное поведение команды echo или ncat , но я не знаю, чтобы обойти это ... Вы знаете, как это обойти?

1 ответ1

1

Вы пытались использовать некоторые параметры синхронизации ncat? Вот соответствующая выдержка из man ncat(1) .

Варианты времени

  These options accept a time parameter. This is specified in seconds by
  default, though you can append ms, s, m, or h to the value to specify
  milliseconds, seconds, minutes, or hours.

  -d time, --delay time (Specify line delay) .
      Set the delay interval for lines sent. This effectively limits the
      number of lines that Ncat will send in the specified period. This
      may be useful for low-bandwidth sites, or have other uses such as
      coping with annoying iptables --limit options.

  -i time, --idle-timeout time (Specify idle timeout) .
      Set a fixed timeout for idle connections. If the idle timeout is
      reached, the connection is terminated.

  -w time, --wait time (Specify connect timeout) .
      Set a fixed timeout for connection attempts.

Так что в вашей ситуации вы должны запустить echo 'flush_all' | ncat -i 10s localhost 11211 .

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