Передайте локальный порт или снабдите файл сокетом в удаленный файл сокета

Оба они обойдут проблему. Существует анализ соответствующей производительности каждой техники здесь.

find . -name WHATEVER -exec rm -rf {} \;

или

ls WHATEVER | xargs rm -rf

Проблема происходит от расширения удара "*" с everysingle объектом в каталоге. Оба этих решения работают через каждый файл в свою очередь вместо этого.

24
задан 11 February 2013 в 12:27
4 ответа

я не сделал этого, но я попробовал бы socat., возможно, что-то как:

ssh xxx@yyy.zzz -L 9999:localhost:9999 "socat TCP-LISTEN:localhost:9999 UNIX-CONNECT:/var/run/mysqld/mysql.sock"
socat UNIX-LISTEN:/path/to/local/socket TCP:localhost:9999

снова, я никогда не делал ничего как это.

11
ответ дан 28 November 2019 в 20:14
  • 1
    I' ll дают ему движение и сообщают, как это идет. I' ve, с помощью находящейся в tcp реализации. –   30 March 2010 в 23:18
  • 2
    Я can' t заставляют это работать в данный момент, но +1 так или иначе для идеи, мне нравится он. I' ll сообщают, фиксирую ли я его. –   30 March 2010 в 23:32
  • 3
    +1 похож на полезную утилиту. –  Warner 30 March 2010 в 23:43

Перенаправить локальный сокет по запросу

  • Настроить аутентификацию с открытым ключом SSH
  • Установить socat на обоих концах
  • создать локальный каталог для ваших сокетов, недоступный другим пользователям.
export SOCKET_DIR=~/.remote-sockets
mkdir -p $SOCKET_DIR
socat "UNIX-LISTEN:$SOCKET_DIR/mysqld.sock,reuseaddr,fork" \
EXEC:'ssh user@server socat STDIO UNIX-CONNECT\:/var/run/mysqld/mysqld.sock'

затем

mysql -S $SOCKET_DIR/mysqld.sock -u mysqluser -p

украдено из перенаправления сокетов домена unix с помощью ssh и socat

35
ответ дан 28 November 2019 в 20:14

Разрабатывая ответ Хавьера, это работает для меня:

ssh -f xxx@yyy.zzz -L 9999: localhost: 9999 "socat TCP-LISTEN: 9999, fork, bind = localhost UNIX-CONNECT: /var/run/mysqld/mysql.sock "

Вам нужна вилка , чтобы иметь возможность подключаться несколько раз без потери связи после закрытия первого подключения. Кроме того, socat позволяет указать адрес для привязки через параметр bind , а не как адрес перед портом.

После этого просто подключитесь к localhost: 9999 ] как обычно. Затем, чтобы разобрать туннель:

ssh -f xxx@yyy.zzz "killall socat"

(или что-то подобное, вы можете сделать более сложные вещи, которые включают сохранение PID socat)

1
ответ дан 28 November 2019 в 20:14

Да, вы можете использовать socat.

Сначала создайте туннель TCP с SSH. Затем используйте socat следующим образом:

socat unix-listen: /var/run/mysqld/mysqld.sock,fork,unlink-early tcp: 127.0.0.1: 3306

Затем дайте разрешения для нового созданного сокета (chmod 777 может быть)

1
ответ дан 28 November 2019 в 20:14

Теги

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