
Давайте посмотрим, как стереть сайт с лица сервера так, чтобы даже NSA не нашло следов. Здесь вы увидите гид по апокалиптической зачистке сервера перед переносом бэкапа, вдохновлённый паранойей и печальным опытом тех, кто этого не сделал.
Привет, друг! Ты решил перенести свой сайт на новый сервер? Или, может, просто хочешь устроить цифровую чистку в стиле «Унесённые ветром», но без романтики и с кучей команд sudo rm -rf?
Отлично! Потому что если ты просто скопируешь бэкап поверх старого хлама, то рано или поздно (скорее рано) ты окажешься в аду, где nginx падает с криком ERROR 500, база данных отказывается говорить с тобой, а сертификаты SSL внезапно вспоминают, что их не пригласили на вечеринку.

Как вычистить сервер до блеска перед переносом бэкапа сайта на серваке с Nginx.
Так что давай сделаем это правильно — с огнём, сарказмом и тотальным уничтожением всего, что когда-либо было связано с твоим сайтом.
🔪 Шаг 1: Остановить все службы (чтобы они не мешали нашему вандализму)
1 |
sudo systemctl stop nginx php8.1-fpm mysql |
Перевод: «Дорогие службы, вы временно уволены. Пожалуйста, не сопротивляйтесь.».
💣 Шаг 2: Удалить файлы сайта (и не оставить ни единого пикселя)
1 |
sudo rm -rf /var/www/вашсайт.ru |
Это не просто удаление. Это стирание истории. Как Сталин с фотографиями, но без возможности восстановить файлы даже с помощью extundelete.
🗑️ Шаг 3: Уничтожить конфиги Nginx (чтобы они не шептались за спиной)
1 2 |
sudo rm -f /etc/nginx/sites-{available,enabled}/вашсайт.ru sudo nginx -t && sudo systemctl restart nginx |
Если после этого Nginx не перезапустится — значит, где-то завалялся ещё один конфиг, и он насмехается над тобой.
🔥 Шаг 4: Сжечь базу данных (и её пользователей заодно)
1 2 3 |
sudo mysql -e "DROP DATABASE IF EXISTS вашсайт_db;" sudo mysql -e "DROP USER IF EXISTS 'вашсайт_user'@'localhost';" sudo mysql -e "FLUSH PRIVILEGES;" |
Если вывод для этой команды выдаёт ошибку, значит, надо ввести пароль для root. Используем другую команду:
1 |
sudo mysql -u root -p -e "DROP DATABASE IF EXISTS вашсайт_db; DROP USER IF EXISTS 'вашсайт_user'@'localhost';" |
После ввода команды система запросит пароль. Введите пароль root-пользователя MySQL.
Способ через авторизацию с sudo (если пароль не установлен):
1 |
sudo mysql -e "DROP DATABASE IF EXISTS вашсайт_db; DROP USER IF EXISTS 'вашсайт_user'@'localhost';" |
Это сработает, если в MySQL настроена аутентификация через auth_socket для root.
Если забыли пароль root MySQL:
Вам нужно сбросить пароль root:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Остановите MySQL sudo systemctl stop mysql # Запустите MySQL в безопасном режиме sudo mysqld_safe --skip-grant-tables & # Подключитесь к MySQL без пароля mysql -u root # В консоли MySQL выполните: FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль'; exit; # Перезапустите MySQL sudo systemctl restart mysql |
Альтернативный вариант (если не нужен доступ root)
Удалите БД через пользователя, у которого есть права (например, через phpMyAdmin или другого пользователя MySQL):
1 |
sudo mysql -u ваш_пользователь -p -e "DROP DATABASE IF EXISTS вашсайт_db; DROP USER IF EXISTS 'вашсайт_user'@'localhost';" |
Проверка успешного удаления:
1 |
sudo mysql -e "SHOW DATABASES;" | grep вашсайт_db |
Если вывод пустой — база удалена успешно.
Это не просто SQL-запросы. Это цифровая инквизиция. База данных больше не существует. Её пользователь изгнан. Даже FLUSH PRIVILEGES — это как посыпать землю солью, чтобы ничего не выросло.
🔒 Шаг 5: Удалить SSL-сертификаты (потому что Let’s Encrypt не должен помнить твои грехи)
1 2 |
sudo certbot delete --cert-name вашсайт.ru sudo rm -rf /etc/letsencrypt/{live,archive,renewal}/вашсайт.ru* |
Теперь твой сайт официально не существует даже для Certificate Transparency Log.
🧹 Шаг 6: Вымести кеши и логи (потому что они любят подкидывать сюрпризы)
1 2 |
sudo rm -rf /tmp/вашсайт_* sudo rm -f /var/log/nginx/вашсайт.ru_* |
Логи — это как старые SMS бывшей: лучше удалить, чтобы случайно не наткнуться и не вспоминать «оно».
🕵️ Шаг 7: Проверить, что сервер чист (как после цифрового «Мистера Пропера»)
1 2 3 4 5 6 7 8 |
# Проверим файлы sudo ls -la /var/www/ | grep вашсайт # Проверим БД sudo mysql -e "SHOW DATABASES LIKE 'вашсайт%';" # Проверим пользователей БД sudo mysql -e "SELECT User FROM mysql.user WHERE User LIKE 'вашсайт%';" |
Если тут что-то вылезло — значит, ты недостаточно старался. Повтори шаги 1-6, но с большим энтузиазмом.
🚀 Шаг 8: Перезапустить службы (и надеяться, что они не держат обиду)
1 |
sudo systemctl start nginx php8.1-fpm mysql |
Если всё запустилось — поздравляю! Ты только что совершил идеальное цифровое убийство.
🎯 Что это даёт?
✅ Чистый сервер — без призраков прошлого, старых конфигов и забытых пользователей БД.
✅ Ноль конфликтов — потому что новый бэкап не будет драться со старым хламом.
✅ Минимум ошибок — ведь если что-то сломается, виноват уже не ты, а новый код.
⚠️ Перед переносом бэкапа: проверь, что у тебя есть:
- Полная копия папки вашсайт.ru (все файлы WordPress, включая тот wp-config.php, который ты три раза пересоздавал).
- Дамп базы данных вашсайт_db.sql (и да, проверь, что он не пустой).
1 2 3 4 5 |
# На MacBook проверь файлы: ls -lh /путь/к/backup_вашсайт.ru/wp-config.php # И дамп БД: head -n 5 /путь/к/вашсайт_db.sql |
Если всё на месте — вперёд! Твой сервер теперь чист, как совесть ребёнка, который ещё не узнал про sudo rm -rf /. Удачи! И помни: лучше перебдеть, чем потом восстанавливать бэкап из памяти. 🚀
