Сообщество / Базы данных

Фотографии WordPress в дамп MySQL не попадают

nesterov
Junior
Сообщения: 47
Репутация: 37
Дата регистрации:
08.08.2026
АВТОР ТЕМЫ09 окт. 2026 г., 19:28 (GMT+3)
Дамп MySQL у WordPress сохраняет записи о фотографиях, но не сами фотографии. В обычной установке файлы лежат в wp-content/uploads. На новом сервере без этой папки текст статьи будет, а вместо снимков — пустые места. В копию должны входить и база, и файлы сайта. После восстановления откройте свежую запись и её фотографию в полном размере. Название файла в админке ещё не фотография.
5
tema_py
Junior
Сообщения: 91
Репутация: 71
Дата регистрации:
18.08.2026
09 окт. 2026 г., 19:28 (GMT+3)
nesterov, и смотреть, откуда эта картинка открылась. Ссылка в старой статье может всё ещё вести на прежний сервер: фотка видна, все рады. Потом тот сервер выключили — и приехали))

Я бы при пробном восстановлении проверил сам файл в папке uploads на новом сервере, а потом ту же картинку на сайте. Ну и забрал темы, плагины и wp-config.php, чтобы не собирать WordPress заново по памяти. Одним дампом тут правда не отделаться.
1
masha_spb
Middle
Сообщения: 129
Репутация: 98
Дата регистрации:
11.08.2026
10 окт. 2026 г., 01:01 (GMT+3)

tema_py писал:
Ссылка в старой статье может всё ещё вести на прежний сервер: фотка видна, все рады. Потом тот сервер выключили — и приехали



Проверять это стоит до удаления старого сервера. На своём компьютере можно прописать в hosts домен на IP нового сервера и проверить сайт под привычным адресом. Но hosts переадресует только указанный домен: картинка со старым IP прямо в ссылке или с другого домена всё ещё может загружаться оттуда. Поэтому одного «в браузере всё красиво» мало — в сетевой вкладке инструментов разработчика надо посмотреть, откуда на самом деле пришли изображения. Для проверки зависимостей можно временно заблокировать доступ к старому серверу на своём компьютере, не выключая его для посетителей.

И второе, если при переезде меняется ещё и домен: дамп не правьте sed'ом. WordPress хранит часть настроек в сериализованных данных, где записаны длины строк. Простая замена на строку другой длины может их повредить. Есть wp search-replace, он сериализацию понимает. Сначала резервная копия и прогон с --dry-run, чтобы увидеть, что именно будет заменено.

tema_py, а старый сервер после переезда сразу гасишь или даёшь повисеть пару недель?
0
void_3am
Middle
Сообщения: 164
Репутация: 112
Дата регистрации:
14.08.2026
10 окт. 2026 г., 04:00 (GMT+3)
masha_spb, две недели — это опыт. паранойя — это я в четыре утра делаю бэкап сервера, который собрался выключить навсегда)
2
kirill_nsk
Middle
Сообщения: 184
Репутация: 129
Дата регистрации:
26.08.2026
10 окт. 2026 г., 06:03 (GMT+3)

void_3am писал:
паранойя — это я в четыре утра делаю бэкап сервера, который собрался выключить навсегда



у тебя хоть паранойя приходит до выключения. у меня она приходит после)

ребят, читаю этот тред как личный дневник позора. в прошлом году переносил знакомой сайт на вордпрессе — порфолио фотографа. то есть буквально сайт, где кроме фоток ничего и нет, смысл в них весь. сделал mysqldump как в гайде, файлик весил прилично, ну я и сижу довольный — бэкап же есть. файл в мегабайты выглядел для меня как «весь сайт целиком». старый хостинг я даже не выключал специально — он просто сам умер через неделю, потому что я забыл что его надо продлевать.

открываю новый сайт. тексты есть, меню есть, а вместо фоток серые квадраты. я сначала решил что nginx не туда смотрит, час ковырял конфиг, перезапускал, а потом дошло — uploads я вообще никуда не копировал 🤦 не «потерял при переносе», а просто не знал, что он живёт отдельно от базы. знакомая потом записала мне голосовое на три минуты, я до сих пор не всё прослушал((

спасло только то, что она фотограф и исходники лежали у неё на диске, залили заново руками вечером. после этого я делаю вот так:


mysqldump -u wp -p wordpress > wp_backup.sql
tar -czf site.tar.gz wp-content/


и вопрос — этого хватит? или там опять есть какая-то отдельная папка, о которой все знают кроме меня? темы и плагины вроде внутри wp-content лежат. а wp-config.php, про который tema_py писал, — он же рядом с wp-content, а не внутри? то есть мой tar его не забирает получается, его отдельно хватать надо?

nesterov, про открыть фотку в полном размере после восстановления — я теперь именно так и делаю, админке больше не верю.

и ещё выше писали про /etc/hosts где домен смотрит на новый айпи — звучит как магия которая мне очень нужна, но у меня винда. это там вообще где, куда смотреть-то?
2
void_3am
Middle
Сообщения: 164
Репутация: 112
Дата регистрации:
14.08.2026
11 окт. 2026 г., 02:00 (GMT+3)
kirill_nsk, у тебя код в конце обрывается на полуслове. как и тот бэкап — тоже ровно наполовину получился)

а голосовое на три минуты — единственный файл из этой истории, который переезд пережил без потерь. лежит в надёжном хранилище, ждёт. дослушай уже, вдруг там важное
3
tema_py
Junior
Сообщения: 91
Репутация: 71
Дата регистрации:
18.08.2026
11 окт. 2026 г., 15:02 (GMT+3)
kirill_nsk, серые квадраты вместо фоток — это не поломка, это минимализм, фотографы должны были оценить)) у самого один раз сайт так «переехал», так что сижу, киваю.

раз команда оборвалась — докину свою, крутится по cron раз в сутки:


#!/bin/bash
D=$(date +%F)
mkdir -p ~/backups/$D
mysqldump --defaults-file=~/.my.cnf wordpress > ~/backups/$D/db.sql
tar czf ~/backups/$D/wp-content.tgz -C /var/www/site wp-content


--defaults-file, потому что пароль в самой команде светится в history и в ps aux — я так однажды сам себе всё и показал. жму целиком wp-content, там и темы с плагинами заодно, копеечный объём.

и привычка, которая меня уже спасала: смотрю вес свежего архива против вчерашнего. резко похудел — значит что-то не забралось, а не «ой, место сэкономил».

masha_spb, старому серверу даю повисеть недели две, потом сношу. пара баксов против вечера перезаливки чужого портфолио руками — kirill_nsk подтвердит.
1
masha_spb
Middle
Сообщения: 129
Репутация: 98
Дата регистрации:
11.08.2026
12 окт. 2026 г., 00:01 (GMT+3)

void_3am писал:
паранойя — это я в четыре утра делаю бэкап сервера, который собрался выключить навсегда



Это не паранойя, это единственный бэкап, который точно нужен: восстановить уже будет неоткуда. Выключенный сервер не предупредит, что через полгода вспомнится какой-нибудь скрипт, который жил только там.

tema_py, к твоему скрипту одно замечание, сама на этом горела: архивы лежат в ~/backups на том же сервере. От «случайно удалил» это спасает, от «сервер умер» — нет. У меня домашняя машина по cron забирает копию к себе:


rsync -a user@vps:~/backups/ /mnt/archive/vps-backups/


Без --delete осознанно: если на сервере архивы вдруг пропадут, rsync честно удалит и локальные копии, и узнаешь об этом в самый неподходящий момент. Ротацию лучше делать отдельно, на принимающей стороне.

И раз в пару месяцев поднимаю свежий дамп локально, просто убедиться, что он разворачивается. Бэкап, который ни разу не восстанавливали — это не бэкап, а файл с оптимистичным именем.
1
daniyar_ala
Junior
Сообщения: 68
Репутация: 31
Дата регистрации:
24.08.2026
12 окт. 2026 г., 06:01 (GMT+3)

masha_spb писал:
файл с оптимистичным именем


В точку. У меня такой файл однажды и был: развернул дамп локально ради проверки, а вместо кириллицы — сплошные знаки вопроса. Кодировку при экспорте указал не ту: бэкап вроде есть, а пользы от него ноль) С тех пор проверяю именно восстановление, а не наличие файла.

И уточню про rsync: если домашняя машина выключена пару дней, cron просто пропускает эти дни или она потом догоняет?
2
kirill_nsk
Middle
Сообщения: 184
Репутация: 129
Дата регистрации:
26.08.2026
12 окт. 2026 г., 07:00 (GMT+3)

tema_py писал:
пара баксов против вечера перезаливки чужого портфолио руками — kirill_nsk подтвердит



подтверждаю. тот вечер помню до сих пор: сидим с ней в телеграме, она кидает фотки пачками, я заливаю по десять штук, потому что медиабиблиотека больше не выдерживала)) и названия у файлов слетели, это было отдельное счастье.

теперь я вообще ничего месяц не удаляю. жаба душит, но молча))

а вес архива ты глазами сравниваешь или оно само пишет, что похудел? я про свежий против вчерашнего
1
masha_spb
Middle
Сообщения: 129
Репутация: 98
Дата регистрации:
11.08.2026
13 окт. 2026 г., 00:01 (GMT+3)
daniyar_ala, cron ничего не догоняет: машина была выключена — запуск просто не случился, памяти о пропущенных заданиях у него нет. Но в этой схеме это и не страшно: rsync синхронизирует текущее состояние каталога, а архивы на сервере лежат папками по датам. Первый же запуск после включения заберёт всё, что накопилось за эти дни. Дыра получится, только если сервер за время простоя успел что-то удалить своей ротацией — ну или умереть, но это уже другая история.

Если хочется, чтобы синхронизация случилась сразу при включении, а не в положенный час — anacron, или systemd-таймер с Persistent=true: при загрузке увидит пропущенный запуск и выполнит.

kirill_nsk писал:
а вес архива ты глазами сравниваешь или оно само пишет, что похудел?



Глазами — это до первого пропуска, сама так сравнивала. Теперь в том же скрипте после rsync три строки: если сегодняшняя папка весит меньше семидесяти процентов от вчерашней — письмо самой себе.


new=$(du -sb ~/backups/$(date +%F) | cut -f1)
old=$(du -sb ~/backups/$(date -d yesterday +%F) | cut -f1)
[ "$new" -lt $((old*7/10)) ] && echo "проверь" | mail -s "backup похудел" masha@example.com


Порог взят с потолка, но пустой дамп он ловит всегда — а это самый частый сценарий.
0
void_3am
Middle
Сообщения: 164
Репутация: 112
Дата регистрации:
14.08.2026
13 окт. 2026 г., 02:00 (GMT+3)
этот тред проклят: kirill_nsk код оборвался, теперь masha_spb на полуслове. даже посты тут сохраняются без последнего куска. в теме про бэкапы иначе и нельзя, всё по канону)
0
kirill_nsk
Middle
Сообщения: 184
Репутация: 129
Дата регистрации:
26.08.2026
14 окт. 2026 г., 10:00 (GMT+3)
void_3am я теперь специально не дописываю. что не дописано, то и не потеряется))

а если серьёзно — после того вечера с портфолио у меня всё по три копии, паранойя вполне обоснованная вышла
0
n1kita
Middle
Сообщения: 101
Репутация: 55
Дата регистрации:
19.08.2026
15 окт. 2026 г., 02:00 (GMT+3)

kirill_nsk писал:
у меня всё по три копии, паранойя вполне обоснованная вышла



три копии на одном сервере — это одна копия. где они физически лежат?
1
void_3am
Middle
Сообщения: 164
Репутация: 112
Дата регистрации:
14.08.2026
15 окт. 2026 г., 03:00 (GMT+3)
kirill_nsk только честно: три копии — это backups, backups2 и backups_final в одной папке?) n1kita дело говорит: всё на том же сервере — это одна копия с амбициями
0
kirill_nsk
Middle
Сообщения: 184
Репутация: 129
Дата регистрации:
26.08.2026
15 окт. 2026 г., 08:00 (GMT+3)
void_3am почти угадал) у меня backups и backups_old на том же сервере, а третья на ноуте дома. только ноут включается раз в месяц, так что копия там ещё весенняя((

n1kita прав получается, это одна копия и две иллюзии.

а куда правильно сносить-то, на второй vps или дома на комп хватает?
4
daniyar_ala
Junior
Сообщения: 68
Репутация: 31
Дата регистрации:
24.08.2026
15 окт. 2026 г., 10:01 (GMT+3)

masha_spb писал:
anacron, или systemd-таймер с Persistent=true


Взял второе. У меня дома старый ноут как раз под бэкапы, и он реально бывает выключен по паре дней — закрою крышку, уеду, а cron молча пропускает. Дыру замечал, только когда заходил руками. Теперь при загрузке таймер догоняет, rsync забирает всё накопленное. Проверил честно: выключил ноут на выходные, включил — всё приехало само) И твою оговорку про ротацию учёл: на сервере теперь храню дольше, чем мой самый длинный отъезд.

К письму самой себе вопрос: оно у тебя с сервера нормально доходит? У меня такие письма исправно падали в спам, я их не видел и решил, что скрипт молчит, — а он честно отчитывался каждую ночь. Мониторинг получился наизнанку. Перевёл алерты на телеграм-бота, там хоть сразу видно.

kirill_nsk, мне дома хватает: ноут за NAT сам тянет копию по ssh, наружу ничего не открыто. Второй VPS нужен, если дом совсем ненадёжный.
3
masha_spb
Middle
Сообщения: 129
Репутация: 98
Дата регистрации:
11.08.2026
18 окт. 2026 г., 01:00 (GMT+3)

daniyar_ala писал:
У меня такие письма исправно падали в спам



Та же история была. Почтовики считают письмо с VPS без PTR, SPF и DKIM спамом по умолчанию — и правильно делают. Записи прописала, доходить стало, но в итоге тоже ушла на телеграм-бота: письмо ты проверяешь, когда вспомнишь, а бот пишет сам. Тот скрипт с «похудел» теперь отчитывается туда же.
1
kirill_nsk
Middle
Сообщения: 184
Репутация: 129
Дата регистрации:
26.08.2026
18 окт. 2026 г., 07:00 (GMT+3)

masha_spb писал:
письмо ты проверяешь, когда вспомнишь, а бот пишет сам


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

daniyar_ala спасибо! а «ноут сам тянет по ssh» это как устроено? мне казалось домашнему компу надо порт наружу открывать, чтоб к нему подключиться. он сам на сервер заходит что ли? куда смотреть-то?
1