Вы можете сделать это с помощью tasket:
taskset 0x03 your_command
запустит your_command на процессоре # 0 и # 1.
Как сказал @terdon, вы можете использовать следующую команду для выполнения чего-либо на удаленном сервере через SSH и сохранения (перенаправления) вывода в локальный экземпляр:
UserA@HostA:~$ ssh UserB@HostB ls ~ > /home/UserA/ls-of-home-UserB.txtТакже вы можете использовать следующие команда выполнить что-то в локальном экземпляре и передать вывод на удаленный сервер и сохранить его командой tee:
UserA@HostA:~$ ls ~ | ssh UserB@HostB tee /home/UserB/ls-of-home-UserA.txtЯ @terdon @Sebastian Stark, вы, вероятно, спрашиваете, как создать туннель с пересылкой портов SSH. Соединение SSH позволяет привязать порт на удаленном сервере к порту на локальном, используя опцию -R. И наоборот, вы можете привязать локальный порт к удаленному порту с помощью -L.
В вашем случае должен быть применен первый сценарий с использованием опции -R:
UserA@HostA:~$ ssh UserB@HostB -R 2222:localhost:22Эта команда установит соединение от HostA до HostB, как обычно, и свяжет порт 2222 на HostB с портом 22 на интерфейсе loopback на HostA. Это означает, что когда вы запрашиваете что-то на порту 2222 на HostB, запрос будет обрабатываться службой, которая прослушивает порт 22 на HostA, обычно это SSH-сервер. На этом этапе вы сможете использовать некоторые из следующих команд для подключения обратно с HostB до HostA:
UserB@HostB:~$ ssh UserA@HostB -p 2222 UserB@HostB:~$ ssh UserA@localhost -p 2222Или вы можете использовать приведенные выше команды, например: [!d21 ] UserB@HostB:~$ ls ~ | ssh UserA@localhost -p 2222 tee /home/UserA/ls-of-home-UserB.txt
remote
Одно интересное использование заключается в том, что вы можете привязать удаленный порт на HostB к порту на другом экземпляре в локальная сеть HostA:
UserA@HostA:~$ ssh UserB@HostB -fTN -R 3389:192.168.100.115:3389Где 192.168.100.115 - это IP-адрес на любом компьютере под управлением Windows в локальной сети HostA, назовем его HostC. Опции -fTN будут вызывать ssh-соединение в фоновом режиме, и у вас будет только туннель от HostB:3389 до HostA до HostC:3389.
Я используя эту комбинацию с autossh, чтобы поддерживать соединение в живом состоянии. Например, у меня есть следующая строка в моем crontab:
@reboot sleep 15 && autossh remote-server-with-public-ip -fTN
Где remote-server-with-public-ip - это что-то , определенное в моем ~/.ssh/config файле на HostA: [ ! d29]
Host remote-server-with-public-ip
HostName hostB
IdentityFile ~/.ssh/hostB/id_rsa
User userB
Port 22
RemoteForward 2223 127.0.0.1:22
RemoteForward 8080 127.0.0.1:80
RemoteForward 6900 127.0.0.1:5900
RemoteForward 3389 192.168.100.115:3389
Порты 2223, 6900, 3389 в HostB не являются общедоступными, и я могу получить к ним доступ только через другое соединение SSH - например, из HostD, которое находится где-то на Интернет. Но для доступа к 8080 я использую Apache с обратным прокси-сервером на HostB :-), а файл конфигурации виртуального хоста выглядит следующим образом:
<VirtualHost _default_:443>
ServerName forward.example.com
# Other configuration directives
SSLEngine on
# SSL certificate files
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Модули Apache proxy и [f49 ] необходимы. Дальнейшее чтение:
Требуются модули Apache proxy и proxy_http. Создание сценария .sh для проверьте, существует ли соединение SSH, а если нет, то используйте «Исходящий SSH» для приема входящего SSHКак сказал @terdon, вы можете использовать следующую команду для выполнения чего-либо на удаленном сервере через SSH и сохранения (перенаправления) вывода в локальный экземпляр:
UserA@HostA:~$ ssh UserB@HostB ls ~ > /home/UserA/ls-of-home-UserB.txtТакже вы можете использовать следующие команда выполнить что-то в локальном экземпляре и передать вывод на удаленный сервер и сохранить его командой tee:
UserA@HostA:~$ ls ~ | ssh UserB@HostB tee /home/UserB/ls-of-home-UserA.txtЯ @terdon @Sebastian Stark, вы, вероятно, спрашиваете, как создать туннель с пересылкой портов SSH. Соединение SSH позволяет привязать порт на удаленном сервере к порту на локальном, используя опцию -R. И наоборот, вы можете привязать локальный порт к удаленному порту с помощью -L.
В вашем случае должен быть применен первый сценарий с использованием опции -R:
UserA@HostA:~$ ssh UserB@HostB -R 2222:localhost:22Эта команда установит соединение от HostA до HostB, как обычно, и свяжет порт 2222 на HostB с портом 22 на интерфейсе loopback на HostA. Это означает, что когда вы запрашиваете что-то на порту 2222 на HostB, запрос будет обрабатываться службой, которая прослушивает порт 22 на HostA, обычно это SSH-сервер. На этом этапе вы сможете использовать некоторые из следующих команд для подключения обратно с HostB до HostA:
UserB@HostB:~$ ssh UserA@HostB -p 2222 UserB@HostB:~$ ssh UserA@localhost -p 2222Или вы можете использовать приведенные выше команды, например:
UserB@HostB:~$ ls ~ | ssh UserA@localhost -p 2222 tee /home/UserA/ls-of-home-UserB.txtremote
Одно интересное использование заключается в том, что вы можете привязать удаленный порт на HostB к порту на другом экземпляре в локальная сеть HostA:
UserA@HostA:~$ ssh UserB@HostB -fTN -R 3389:192.168.100.115:3389Где 192.168.100.115 - это IP-адрес на любом компьютере под управлением Windows в локальной сети HostA, назовем его HostC. Опции -fTN будут вызывать ssh-соединение в фоновом режиме, и у вас будет только туннель от HostB:3389 до HostA до HostC:3389.
Я используя эту комбинацию с autossh, чтобы поддерживать соединение в живом состоянии. Например, у меня есть следующая строка в моем crontab:
@reboot sleep 15 && autossh remote-server-with-public-ip -fTN
Где remote-server-with-public-ip - это что-то , определенное в моем ~/.ssh/config файле на HostA: [ ! d29] Host remote-server-with-public-ip
HostName hostB
IdentityFile ~/.ssh/hostB/id_rsa
User userB
Port 22
RemoteForward 2223 127.0.0.1:22
RemoteForward 8080 127.0.0.1:80
RemoteForward 6900 127.0.0.1:5900
RemoteForward 3389 192.168.100.115:3389
Порты 2223, 6900, 3389 в HostB не являются общедоступными, и я могу получить к ним доступ только через другое соединение SSH - например, из HostD, которое находится где-то на Интернет. Но для доступа к 8080 я использую Apache с обратным прокси-сервером на HostB :-), а файл конфигурации виртуального хоста выглядит следующим образом:
<VirtualHost _default_:443>
ServerName forward.example.com
# Other configuration directives
SSLEngine on
# SSL certificate files
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Модули Apache proxy и proxy_http необходимы. Дальнейшее чтение:
Требуются модули Apache proxy и proxy_http. Создание сценария .sh для проверьте, существует ли соединение SSH, а если нет, то используйте «Исходящий SSH» для приема входящего SSHКак сказал @terdon, вы можете использовать следующую команду для выполнения чего-либо на удаленном сервере через SSH и сохранения (перенаправления) вывода в локальный экземпляр:
UserA@HostA:~$ ssh UserB@HostB ls ~ > /home/UserA/ls-of-home-UserB.txtТакже вы можете использовать следующие команда выполнить что-то в локальном экземпляре и передать вывод на удаленный сервер и сохранить его командой tee:
UserA@HostA:~$ ls ~ | ssh UserB@HostB tee /home/UserB/ls-of-home-UserA.txtЯ @terdon @Sebastian Stark, вы, вероятно, спрашиваете, как создать туннель с пересылкой портов SSH. Соединение SSH позволяет привязать порт на удаленном сервере к порту на локальном, используя опцию -R. И наоборот, вы можете привязать локальный порт к удаленному порту с помощью -L.
В вашем случае должен быть применен первый сценарий с использованием опции -R:
UserA@HostA:~$ ssh UserB@HostB -R 2222:localhost:22Эта команда установит соединение от HostA до HostB, как обычно, и свяжет порт 2222 на HostB с портом 22 на интерфейсе loopback на HostA. Это означает, что когда вы запрашиваете что-то на порту 2222 на HostB, запрос будет обрабатываться службой, которая прослушивает порт 22 на HostA, обычно это SSH-сервер. На этом этапе вы сможете использовать некоторые из следующих команд для подключения обратно с HostB до HostA:
UserB@HostB:~$ ssh UserA@HostB -p 2222 UserB@HostB:~$ ssh UserA@localhost -p 2222Или вы можете использовать приведенные выше команды, например:
UserB@HostB:~$ ls ~ | ssh UserA@localhost -p 2222 tee /home/UserA/ls-of-home-UserB.txtremote
Одно интересное использование заключается в том, что вы можете привязать удаленный порт на HostB к порту на другом экземпляре в локальная сеть HostA:
UserA@HostA:~$ ssh UserB@HostB -fTN -R 3389:192.168.100.115:3389Где 192.168.100.115 - это IP-адрес на любом компьютере под управлением Windows в локальной сети HostA, назовем его HostC. Опции -fTN будут вызывать ssh-соединение в фоновом режиме, и у вас будет только туннель от HostB:3389 до HostA до HostC:3389.
Я используя эту комбинацию с autossh, чтобы поддерживать соединение в живом состоянии. Например, у меня есть следующая строка в моем crontab:
@reboot sleep 15 && autossh remote-server-with-public-ip -fTN
Где remote-server-with-public-ip - это что-то , определенное в моем ~/.ssh/config файле на HostA: [ ! d29] Host remote-server-with-public-ip
HostName hostB
IdentityFile ~/.ssh/hostB/id_rsa
User userB
Port 22
RemoteForward 2223 127.0.0.1:22
RemoteForward 8080 127.0.0.1:80
RemoteForward 6900 127.0.0.1:5900
RemoteForward 3389 192.168.100.115:3389
Порты 2223, 6900, 3389 в HostB не являются общедоступными, и я могу получить к ним доступ только через другое соединение SSH - например, из HostD, которое находится где-то на Интернет. Но для доступа к 8080 я использую Apache с обратным прокси-сервером на HostB :-), а файл конфигурации виртуального хоста выглядит следующим образом:
<VirtualHost _default_:443>
ServerName forward.example.com
# Other configuration directives
SSLEngine on
# SSL certificate files
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Модули Apache proxy и proxy_http необходимы. Дальнейшее чтение:
Требуются модули Apache proxy и proxy_http. Создание сценария .sh для проверьте, существует ли соединение SSH, а если нет, то используйте «Исходящий SSH» для приема входящего SSHКак сказал @terdon, вы можете использовать следующую команду для выполнения чего-либо на удаленном сервере через SSH и сохранения (перенаправления) вывода в локальный экземпляр:
UserA@HostA:~$ ssh UserB@HostB ls ~ > /home/UserA/ls-of-home-UserB.txtТакже вы можете использовать следующие команда выполнить что-то в локальном экземпляре и передать вывод на удаленный сервер и сохранить его командой tee:
UserA@HostA:~$ ls ~ | ssh UserB@HostB tee /home/UserB/ls-of-home-UserA.txtЯ @terdon @Sebastian Stark, вы, вероятно, спрашиваете, как создать туннель с пересылкой портов SSH. Соединение SSH позволяет привязать порт на удаленном сервере к порту на локальном, используя опцию -R. И наоборот, вы можете привязать локальный порт к удаленному порту с помощью -L.
В вашем случае должен быть применен первый сценарий с использованием опции -R:
UserA@HostA:~$ ssh UserB@HostB -R 2222:localhost:22Эта команда установит соединение от HostA до HostB, как обычно, и свяжет порт 2222 на HostB с портом 22 на интерфейсе loopback на HostA. Это означает, что когда вы запрашиваете что-то на порту 2222 на HostB, запрос будет обрабатываться службой, которая прослушивает порт 22 на HostA, обычно это SSH-сервер. На этом этапе вы сможете использовать некоторые из следующих команд для подключения обратно с HostB до HostA:
UserB@HostB:~$ ssh UserA@HostB -p 2222 UserB@HostB:~$ ssh UserA@localhost -p 2222Или вы можете использовать приведенные выше команды, например:
UserB@HostB:~$ ls ~ | ssh UserA@localhost -p 2222 tee /home/UserA/ls-of-home-UserB.txtremote
Одно интересное использование заключается в том, что вы можете привязать удаленный порт на HostB к порту на другом экземпляре в локальная сеть HostA:
UserA@HostA:~$ ssh UserB@HostB -fTN -R 3389:192.168.100.115:3389Где 192.168.100.115 - это IP-адрес на любом компьютере под управлением Windows в локальной сети HostA, назовем его HostC. Опции -fTN будут вызывать ssh-соединение в фоновом режиме, и у вас будет только туннель от HostB:3389 до HostA до HostC:3389.
Я используя эту комбинацию с autossh, чтобы поддерживать соединение в живом состоянии. Например, у меня есть следующая строка в моем crontab:
@reboot sleep 15 && autossh remote-server-with-public-ip -fTN
Где remote-server-with-public-ip - это что-то , определенное в моем ~/.ssh/config файле на HostA: [ ! d29] Host remote-server-with-public-ip
HostName hostB
IdentityFile ~/.ssh/hostB/id_rsa
User userB
Port 22
RemoteForward 2223 127.0.0.1:22
RemoteForward 8080 127.0.0.1:80
RemoteForward 6900 127.0.0.1:5900
RemoteForward 3389 192.168.100.115:3389
Порты 2223, 6900, 3389 в HostB не являются общедоступными, и я могу получить к ним доступ только через другое соединение SSH - например, из HostD, которое находится где-то на Интернет. Но для доступа к 8080 я использую Apache с обратным прокси-сервером на HostB :-), а файл конфигурации виртуального хоста выглядит следующим образом:
<VirtualHost _default_:443>
ServerName forward.example.com
# Other configuration directives
SSLEngine on
# SSL certificate files
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Модули Apache proxy и proxy_http необходимы. Дальнейшее чтение:
Требуются модули Apache proxy и proxy_http. Создание сценария .sh для проверьте, существует ли соединение SSH, а если нет, то используйте «Исходящий SSH» для приема входящего SSH