Можно ли использовать cURL для захвата файлов через SSH? - PullRequest
1 голос
/ 16 января 2012

Я заглянул в модуль SSH2 для PHP, но он потребовал бы перекомпиляции PHP на сервере, который сильно раздут.Это гораздо больше риска, чем мы хотели бы взять на себя прямо сейчас.

Могу ли я использовать cURL для захвата нескольких файлов через SSH?Я немного погуглил и нашел несколько источников, но ничего не ясно на 100%, возможно ли это.

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Я не уверен насчет cURL, но если вы не хотите перекомпилировать, но на сервере уже установлены ssh-клиенты, вы можете сделать системный вызов scp. Конечно, лучше всего будет работать, если у вас есть SSH-ключи между локальным и удаленным хостами.

shell_exec("/usr/bin/scp -i private_key_identity user@host:/path/to/remote/file /local/path");
1 голос
/ 17 января 2012

CURL не будет работать, к сожалению. Вы можете, как предложил @Michael, использовать scp, или, если вам нужно копировать файлы на регулярной основе, я бы предложил rsync, поскольку это только передаст различия между содержимым файла.

exec('/usr/bin/rsync -az user@remotehost:/path/to/directory/* /path/to/local/directory/');

Флаг -a будет использовать режим архива, более подробную информацию смотрите в документации . Флаг -z сожмет передачу.

rsync также будет передаваться через SSH, поэтому убедитесь, что у вас правильно установлены приватные / открытые ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...