Я просмотрел модуль SSH2 для PHP, но для этого потребуется перекомпиляция PHP на сервере, который очень раздувается. Это гораздо больше риска, чем хотелось бы сейчас.
Можно ли использовать cURL для захвата нескольких файлов через SSH? Я сделал несколько Googling и нашел несколько источников, но ничего на 100% не понял, возможно ли это.
Я не уверен в cURL, но если вы не хотите перекомпилировать, но на сервере уже установлены ssh-клиенты, вы можете сделать системный вызов scp
. Разумеется, это будет работать лучше всего, если у вас есть ключи SSH между локальным и удаленным хостами.
shell_exec("/usr/bin/scp -i private_key_identity user@host:/path/to/remote/file /local/path");
CURL не будет работать, к сожалению. Вы можете, как предложил @Michael, использовать scp, или если вам нужно скопировать файлы на регулярной основе, я бы предложил rsync
поскольку он будет передавать только различия между содержимым файла.
exec('/usr/bin/rsync -az user@remotehost:/path/to/directory/* /path/to/local/directory/');
Флаг -a
будет использовать режим архивирования, более подробную информацию см. В документации . Флаг -z
сжимает передачу.
rsync
также будет передаваться через SSH
, поэтому убедитесь, что у вас приватный / открытый ключ настроен правильно.