Назад | Перейти на главную страницу

Файл канала SSH и выполнение

Я пытаюсь выполнить двоичный файл на моем ssh-сервере, как только я вхожу в систему. Однако я могу захотеть отправить обновление моего двоичного файла с помощью одного входа в систему ssh и выполнить его также. Мой текущий процесс для этого

cat exec | ssh user@host 'cat - > exec; chmod +x exec; ./exec'

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

ssh user@host './exec'

и файл выполняется нормально. Я знаю, что идет процесс выполнения двоичного файла и chmod правильно устанавливает исполняемый бит файла, который просто не будет выполняться в одной команде. У кого-нибудь есть предложения.

Используйте tar вместо cat, и tar также сохраняет режим, если exec имеет бит x.

tar cf - ./exec | ssh user @ server 'tar xf -; ./exec '

Я предполагаю, что ваш двоичный файл натыкается на escape-последовательность ssh. Нет гарантии, что ssh будет прозрачным для двоичного кода, но вы можете увидеть, добавляете ли-e none'вашей команде ssh будет работать.