Есть сервер Linux, к которому я обращаюсь через sshfs
. К сожалению, чистое ssh-соединение невозможно из-за проблем с безопасностью.
Если я получаю доступ к этому серверу через sshfs, любые команды, которые я выполняю, вроде как запускаются через локальный сервер или что-то в этом роде. Не знаю, как это описать.
Например, если на удаленном сервере есть tar-файл, содержащий 10000 файлов, если я распакую этот файл, это займет ДЛИННОЕ время, потому что он (под капотом) по существу извлекает каждый файл на мой локальный сервер, а затем копирует это на удаленный сервер. Если бы я был физически на самом удаленном сервере, распаковка была бы молниеносной, потому что вся работа выполнялась прямо там, локально. Я думаю, это неотъемлемая часть того, как sshfs
работает.
Я пытаюсь понять, как выполнять команды таким образом, чтобы они выполнялись непосредственно на удаленном сервере или заставляли удаленный сервер выполнять команды.
Одна вещь, о которой я могу думать, - это создать задание cron на удаленном сервере, чтобы оно запускало (локально) любые команды, которые я ему даю. Но это довольно неудобно. Другой альтернативой является запуск программы типа PHP Shell (поскольку удаленный сервер является веб-сервером). Любые команды, заданные через PHP Shell, будут выполняться локально.
Существуют ли команды bash, которые можно использовать для принудительного запуска команд ввода непосредственно на удаленном сервере? Я пробовал возиться с nohup
но я не уверен, что это полезно или нет ...
Единственный способ сделать это - иметь интерактивный доступ к некоторому описанию на удаленном сервере, поэтому ответ отрицательный.
Некоторое время назад я работал с серверами у некоторых интернет-провайдеров, где я мог получить доступ через ftp / sshfs и т. Д., Но без интерактивного доступа к серверу. У них есть обходной путь - это позволить вам настроить задание cron / at через веб-интерфейс или копию файла crontab, который вы можете редактировать, который будет вызывать сценарии / команды. Спросите администратора, возможно ли это, если интерактивная оболочка абсолютно не может быть предоставлена.