Система для создания автоматических бекапов файлов с дальнейшей выгрузкой их на Яндекс Диск
Через Composer
$ composer require angryjack/backup-engine
use Angryjack\BackupEngine\Backup;
// подключаем автозагрузчик
require __DIR__ . '/vendor/autoload.php';
// рабочая дирректория с файлами которые требуется сохранять
$workPath = '/home/user/files';
// папка бекапов на яндекс диске
$backupPath = '/backups';
// токен яндекс диска
$oauth = '';
$backup = new Backup($workPath, $backupPath, $oauth);
// устанавливаем(изменяем) рабочую директорию
$backup->setWorkPath('/home/user/files');
// устанавливаем(изменяем) директорию для резервного копирования
$backup->setBackupPath('/backups');
// метод files первым параметром принимает регулярное выражение
// указывается какие файлы необходимо копировать
$pattern = '/^_.*sql.gz\z/';
// Удалять файлы после заругзки на яндекс диск (По умолчанию false)
$deleteAfterBackup = false;
$backup->files($pattern, $deleteAfterBackup);
// метод folders первым параметром принимает регулярное выражение
// указывается какие папки необходимо копировать
$pattern = '/^[^\.]/';
// в отличие от метода files, метод folders создает архив zip архив копируемой папки
// Удалять созданный архив после заругзки на яндекс диск (По умолчанию true)
$deleteAfterBackup = true;
$backup->folders($pattern, $deleteAfterBackup);
Использовать последнюю версию php. Замеры показали, что создание архивов используя php7.2 выполняется ~6 раз быстрее по сравнению с php5.6
- Создать новое приложение
- При регистрации или редактировании приложения, нажмите ссылку Подставить URL для разработки в поле Платформы → Веб-сервисы → Callback URI.
- Перейдите по ссылке следующего вида:
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
- На открывшейся странице нажмите кнопку Подтвердить, чтобы разрешить доступ к аккаунту. Разрешать доступ не потребуется, если для данного приложения уже был выдан токен, и срок его жизни еще не истек.
Подробная инструкция по созданию токена доступка по ссылке: OAuth в Яндексе