Оба они обойдут проблему. Существует анализ соответствующей производительности каждой техники здесь.
find . -name WHATEVER -exec rm -rf {} \;
или
ls WHATEVER | xargs rm -rf
Проблема происходит от расширения удара "*" с everysingle объектом в каталоге. Оба этих решения работают через каждый файл в свою очередь вместо этого.
я не сделал этого, но я попробовал бы 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
снова, я никогда не делал ничего как это.
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
Разрабатывая ответ Хавьера, это работает для меня:
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)
Да, вы можете использовать socat.
Сначала создайте туннель TCP с SSH. Затем используйте socat следующим образом:
socat unix-listen: /var/run/mysqld/mysqld.sock,fork,unlink-early tcp: 127.0.0.1: 3306
Затем дайте разрешения для нового созданного сокета (chmod 777 может быть)