Загрузить папку через FTP с помощью PHP - PullRequest
1 голос
/ 16 января 2012

Наш веб-сайт в настоящее время каждую ночь выполняет резервное копирование на отдельный сервер, который у нас есть, и это хорошо, но когда мы собираемся загрузить файлы на следующий день, загрузка файлов занимает много времени (обычно около 36 000+ изображений). Загрузка этого файла на следующий день занимает довольно много времени и влияет на скорость всех остальных пользователей, использующих нашу сеть, поэтому в идеале мы постараемся сделать это посреди ночи - за исключением того, что здесь нет никого, кто мог бы это сделать.

Сервер, на котором находится резервная копия, работает под управлением Cpanel, что упрощает запуск файла PHP в качестве задания Cron.

Я предполагаю следующее, не стесняйтесь сказать мне, что я не прав.

1) На сервере, на котором находится резервная копия, работает Cpanel. Похоже, что не должно быть слишком сложно настроить PHP-скрипт для запуска в качестве задания Cron среди ночи.

2) Мы могли бы развернуть скрипт PHP, использующий функции FTP, для подключения к другому серверу и запустить резервное копирование этих файлов с помощью этого задания cron.

3) Мы запускаем Xampp на платформе Windows. У него есть Filezilla, поэтому я предполагаю, что он сможет принимать входящие FTP-соединения.

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

Так вот что я догадываюсь. Я застреваю на первом препятствии, хотя. Я попытался создать сценарий, который запускается на нашем локальном компьютере и отправляет указанную папку на сервер резервного копирования, когда он выполняется, но все, что я могу найти, это сценарии, относящиеся к отдельным файлам. Хотя у меня есть некоторый опыт работы с PHP, я не затрагивал функции FTP, которые доставляют мне некоторые проблемы. Я попытался другие примеры здесь переполнения стека безуспешно: (

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

1 Ответ

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

При передаче нескольких небольших файлов по FTP требуется немало накладных расходов.Я видел, что рабочие места занимают в 5 раз больше времени по локальной сети.Намного проще упаковать файлы в нечто вроде zip и отправить их в один большой файл.

Вы можете использовать exec() для запуска zip изкомандная строка (или любой другой инструмент сжатия, который вы предпочитаете).После этого вы можете довольно быстро отправить его по ftp (вы сказали, что нашли способы передачи 1 файла).В целях резервного копирования архивирование файлов, вероятно, облегчит работу, но если вам понадобится их разархивировать, вы можете настроить на другом компьютере задание для распаковки файла.

...