WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Подскажите автоматический Бэкап большой DB wp_postmeta (cPanel)

Размер wp_postmeta 190 MB (общий размер 300MB )

UpdraftPlus
WP Database Backup

не справляются и уходят в ошибку, пробовал увеличить memory_limit и время, не помогает. Максимум плагины смогли выгрузить только пару таблиц на 200MB

есть такая приблуда для cpanel - но она по записи делает бэкап фалов , может кто шарит, подскажет как переделать под DB


Частично решение продвигается для cPanel

1 ПУНКТ "Создаем КРОН"

Добавляем крон, заменяем параметры
1 имя_пользователя
2 пароль_тут_в_этих_кавычках !!!Важно межу -p' никаких пробелов
3 имя_базы_данных
3 ваш_айди_пользователя

/usr/bin/mysqldump -u имя_пользователя -p'пароль_тут_в_этих_кавычках' имя_базы_данных > /home/ваш_айди_пользователя/backups/databace__$(date +\%Y-\%m-\%d-\%H\%M\%S).sql

либо gzip

/usr/bin/mysqldump -u имя_пользователя -p'пароль_тут_в_этих_кавычках' имя_базы_данных | gzip > /home/ваш_айди_пользователя/backups/databace__$(date +\%Y-\%m-\%d-\%H\%M\%S).sql.gz  

2 ПУНКТ "Подключаемся к яндекс диску"
2.1 получаем токен ключ
2.2 Узаем нужный код , я для теста подключил этот из инструкции

$token = 'xxx';

// Путь и имя файла на нашем сервере.
$file = __DIR__ . '/image.jpg';

// Папка на Яндекс Диске (уже должна быть создана).
$path = '/uploads/';

// Запрашиваем URL для загрузки.
$ch = curl_init('https://cloud-api.yandex.net/v1/disk/resources/upload?path=' . urlencode($path . basename($file)));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ' . $token));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
if (empty($res['error'])) {
	// Если ошибки нет, то отправляем файл на полученный URL.
	$fp = fopen($file, 'r');

	$ch = curl_init($res['href']);
	curl_setopt($ch, CURLOPT_PUT, true);
	curl_setopt($ch, CURLOPT_UPLOAD, true);
	curl_setopt($ch, CURLOPT_INFILESIZE, filesize($file));
	curl_setopt($ch, CURLOPT_INFILE, $fp);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	curl_exec($ch);
	$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	curl_close($ch);

	if ($http_code == 201) {
		echo 'Файл успешно загружен.';
	}
} 

3 ПУНКТ Определяем файл который нужно отправить на яндекс диск

// код добавить перед кодом в пункте 2 и подставить нужный файл 
// у меня 2 бэкапа в gz и sql формате - код ниже определяет и отправляет только gz 
ini_set('max_execution_time', 360); 

//  получаем файлы 
$dir    = '/home/ваш_айди_пользователя/backups';

// сортировка по убыванию 
$files2 = scandir($dir, 1);

// получаем последний по имени файли опираясь на дуту в имени 
$last_byname = $files2[0];

// получаем и определяем расширение 
$ext = substr(strrchr($last_byname, '.'), 1);
if ($ext == "sql"){
	$last_byname = $files2[1];
} 
// Отправка 
echo $backup_file_gz = '/home/ваш_айди_пользователя/backups/' . $last_byname;

// Путь и имя файла на нашем сервере. 

4 ПУНКТ "Запускаем скрипт"
идем в планировщик заданий и добавляем ещё одно задание

php /home/ваш_айди_пользователя/backups/backup.php  
0
kolshix
25 мая 2020 615

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация