Как сбросить пароль администратора WordPress через командную строку MySQL

Прежде чем войти в службу базы данных MySQL / MariaDB , сначала создайте хеш нового пароля, которая будет назначена учетной записи, с помощью следующей команды.

Замените строку «newpass», используемую в этом примере, с вашим собственным надежным паролем. Скопируйте хеш пароля MD5 в файл, чтобы позже вставить хеш в поле пароля пользователя MySQL.

# echo -n «newpass» | md5sum

После того, как вы создали новый хеш-пароль MD5, войдите в базу данных MySQL с правами root и выполните команду ниже, чтобы идентифицировать и выбрать базу данных WordPress. В этом случае база данных WordPress называется «wordpress».

# mysql -u root -p MariaDB [(none)]> show databases; MariaDB [(none)]> use wordpress;

Затем выполните следующую команду, чтобы определить таблицу, отвечающую за хранение учетных записей пользователей WordPress. Обычно таблица, в которой хранится вся информация пользователя, является wp_users . Запрос таблицы wp_users получает ID всех пользователей, логин и пароль и идентифицирует поле ID логина учетной записи, которая нуждается в изменении пароля. ID имени пользователя будет использоваться для дальнейшего обновления пароля.

MariaDB [(none)]> show tables; MariaDB [(none)]> SELECT ID, user_login, user_pass FROM wp_users;

После того, как вы правильно определили ID пользователя, которому требуется пароль, измените его, чтобы обновить его пароль. Замените ID пользователя и хеш MD5 пароля соответственно. В этом случае идентификатор пользователя равен 1, а новый хеш пароля: e6053eb8d35e02ae40beeeacef203c1a.

MariaDB [(none)]> UPDATE wp_users SET user_pass= «e6053eb8d35e02ae40beeeacef203c1a» WHERE ID = 1;

Команда mv

Описание команды mv

mv — переместить (или переименовать) файлы или директории.Команда mv происходит от слова move.

Команда mv используется для перемещения одного или нескольких файлов (или директорий) в другую директорию, а также для переименования файлов и директорий.

Синтаксис

mv опции исходные_файлы куда

исходные_файлы — это то, что мы будем перемещать или переименовывать. То есть это либо один файл, либо несколько файлов, либо директория, либо несколько директорий.

куда — это название директории, в которую мы перемещаем исходные файлы или директории. Или же это новое название файла или директории, если выполняется переименование. То есть это либо директория, либо новое название файла или директории.

Команда mv может:

  • Переместить один или несколько файлов в другую директорию.
  • Переместить одну или несколько директорий в другую директорию.
  • Переименовать файл.
  • Переименовать директорию.

Опции

-b или —backup или —backup=МЕТОДСоздать резервную копию существующих файлов, которые будут перезаписаны или удалены.
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция —backup=МЕТОД В качестве значения МЕТОД можно указать:

  • none или off — не делать резервных копий, даже если включена опция —backup
  • numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~).
  • existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple.
  • simple или never — делать обычные резервные копии (пример: myfile.txt~).

-f или —forceПри перезаписи существующих файлов не спрашивать разрешения пользователя.-i или —interactiveПри перезаписи существующих файлов спрашивать разрешение пользователя на подтверждение операции.-n или —no-clobberНе перезаписывать существующие файлы.—strip-trailing-slashesУдалить завершающий символ слеш / (если он там есть) из имени файла-источника.-S СУФФИКС или —suffix=СУФФИКСИзменить символ суффикса, который добавляется к именам резервных копий (при использовании опции —backup). По умолчанию СУФФИКС равен значку тильды ~-t ДИРЕКТОРИЯ или —target-directory=ДИРЕКТОРИЯПереместить все исходные файлы в директорию, которая указана в аргументе опции.-u или —updateПеремещать только если исходный файл новее, чем файл назначения или если файл-назначения отсутствует.-v или —verboseВыводить информацию о каждом файле, который обрабатывает команда mv.-Z или —contextУстановить контекст (метки) SELinux для файлов назначения в значение по умолчанию.—helpПоказать справку по команде mv.—versionПоказать версию утилиты mv.

Примеры использования команды mv

Рассмотрим несколько примеров использования команды mv в Linux.

Рекомендуется всегда использовать опцию -v, чтобы получать информацию о том, что именно команда mv делает с файлами.

Также крайне рекомендуется использовать опцию -i, чтобы выдавался запрос на перезапись существующих файлов. В примерах ниже мы эти опции опускаем.

Переместить файл

Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:

mv myfile1.txt mydir/

Переименовать файл

Переименуем файл myfile1.txt в myfile2.txt:

mv myfile1.txt myfile2.txt

Переименовать директорию

Переименуем директорию mydir1 в mydir2. Выполняется точно также, как и переименование файлов.

mv mydir1 mydir2

Создавать резервные копии существующих файлов

Предположим, что нам нужно переименовать файл myfile1.txt в myfile2.txt, но файл myfile2.txt уже существует. Можно воспользоваться опцией -b, чтобы создать резервную копию существующего файла:

mv -b myfile1.txt myfile2.txt

В результате сначала существующий файл myfile2.txt будет переименован в myfile2.txt~, то есть будет создана его резервная копия, и только потом файл myfile1.txt будет переименован в myfile2.txt.

Вместо значка тильда ~ можно добавлять к именам резервных копий произвольный суффикс. Например, добавим суффикс .bak. Для этого воспользуемся опцией -S

mv -b -S ".bak" myfile1.txt myfile2.txt

Переместить несколько файлов

Рассмотрим примеры использования команды mv для перемещения нескольких файлов в другую директорию.

Переместим сразу три файла в директорию mydir/

mv myfile1 myfile2 myfile3 mydir/

Переместим все файлы из текущей директории в директорию mydir/

mv * mydir/

Переместим все файлы с расширением .jpg в директорию mydir/

mv *.jpg mydir

Переместить только те файлы, которых нет в директории назначения

Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в директории назначения уже есть файлы с такими же именами, то их не перемещать. Для этого используем опцию -n

mv -n mydir1/* mydir2/

Переместить только те файлы, которые новее

Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в другой директории уже есть файлы с такими же именами, то заменять существующие файлы только если исходный файл новее (по дате). Для этого используем опцию -u

mv -u mydir1/* mydir2/

Если в имени файла есть пробелы

Если в имени файла есть пробелы, то имя файла нужно заключить в кавычки или перед каждым пробелом добавлять символ \

Предположим, что нам нужно переименовать файл в имени которого содержится пробел — My file1.txt. Для этого можно заключить имя файла в кавычки (для файла назначения аналогично).

mv "My file1.txt" "My file2.txt"

Или использовать символ косой черты перед пробелом.

mv My\ file1.txt My\ file2.txt

Как сделать резервную копию и восстановить базу данных MySQL с помощью Mysqldump

Файлы резервных копий, созданные утилитой mysqldump, представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных. Команда mysqldump также может генерировать файлы в формате CSV и XML. Вы также можете использовать утилиту mysqldump для переноса вашей базы данных MySQL на другой сервер MySQL.

Синтаксис команды Mysqldump

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

Выражения утилиты mysqldump имеют следующую форму:

mysqldump [options] > file.sql
  • options — параметры mysqldump
  • file.sql — дамп (резервная копия) файла

Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.


Резервное копирование одной базы данных MySQL

Наиболее распространенный вариант использования инструмента mysqldump — резервное копирование одной базы данных.

Например, чтобы создать резервную копию базы данных с именем database_name, используя пользователя root, и сохранить ее в файл с именем database_name.sql, вы должны выполнить следующую команду:

mysqldump -u root -p database_name > database_name.sql

Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.

Если вы вошли в систему как тот же пользователь, которого вы используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете пропустить опции -u и -p:

mysqldump database_name > database_name.sql

Резервное копирование нескольких баз данных MySQL

ля резервного копирования нескольких баз данных MySQL одной командой вам нужно использовать параметр --database, за которым следует список баз данных, которые вы хотите сделать резервную копию. Каждое имя базы данных должно быть разделено пробелом.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Команда выше создаст файл дампа, содержащий обе базы данных.


Резервное копирование всех баз данных MySQL

Используйте опцию --all-database для резервного копирования всех баз данных MySQL:

mysqldump -u root -p --all-databases > all_databases.sql

Как и в предыдущем примере, команда выше создаст один файл дампа, содержащий все базы данных.


Резервное копирование всех баз данных MySQL в отдельные файлы

Утилита mysqldump не предоставляет возможность резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Команда выше создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.


Создание сжатой резервной копии базы данных MySQL

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

mysqldump database_name | gzip > database_name.sql.gz

Создать резервную копию с отметкой времени

Если вы хотите сохранить более одной резервной копии в одном месте, вы можете добавить текущую дату в имя файла резервной копии:

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Команда выше создаст файл в следующем формате database_name-20200223.sql


Восстановление дампа MySQL

Вы можете восстановить дамп MySQL с помощью инструмента mysql. Общий синтаксис команды выглядит следующим образом:

mysqld  database_name < file.sql

В большинстве случаев вам необходимо создать базу данных куда вы будете производить импорт. Если база данных уже существует, сначала вам нужно удалить ее.

В следующем примере первая команда создаст базу данных с именем database_name, а затем импортирует в нее дамп database_name.sql:

mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql

Восстановление одной базы данных MySQL из полного дампа MySQL

Если вы создали резервную копию всех своих баз данных с помощью параметра -all-database и хотите восстановить одну базу данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database, как показано ниже:

mysql --one-database database_name < all_databases.sql

Экспорт и импорт базы данных MySQL одной командой

Вместо того, чтобы создавать файл дампа из одной базы данных и затем импортировать резервную копию в другую базу данных MySQL, вы можете использовать следующую однострочную команду:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Команда выше передаст вывод клиенту mysql на удаленном хосте и импортирует его в базу данных с именем remote_database_name. Перед выполнением команды убедитесь, что база данных уже существует на удаленном сервере.


Автоматизация резервного копирования с помощью Cron

Автоматизация процесса резервного копирования баз данных так же проста, как создание задания cron, которое будет запускать команду mysqldump в указанное время. Подробно про cron можно прочитать в нашей статье.

Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:

  1. Создайте файл с именем .my.cnf в вашем домашнем каталоге пользователя: sudo nano ~/.my.cnf Скопируйте и вставьте следующий текст в файл .my.cnf. [client] user = dbuser password = dbpasswd Не забудьте заменить dbuser и dbpasswd на пользователя базы данных и пароль пользователя.
  2. Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ, используя команду cmod (подробнее про которую можно прочесть тут): chmod 600 ~/.my.cnf
  3. Создайте каталог для хранения резервных копий при помощи комадны mkdir (про нее тоже есть статья): mkdir ~/db_backups
  4. Откройте ваш пользовательский файл crontab: crontab -e Добавьте следующее задание cron, которое будет создавать резервную копию имени базы данных mydb каждый день в 3 часа ночи: 0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql Не забудьте заменить username вашим реальным именем пользователя. Вы также можете создать еще один cron job, чтобы удалить любые резервные копии старше 30 дней: find /path/to/backups -type f -name «*.sql» -mtime +30 -delete Конечно, вам нужно настроить команду в соответствии с вашим местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим Руководством по поиску файлов в Linux с помощью командной строки.

Синтаксис команды Mysqldump

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

Выражения утилиты mysqldump имеют следующую форму:

mysqldump [options] > file.sql
  • options — параметры mysqldump
  • file.sql — дамп (резервная копия) файла

Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.


Резервное копирование одной базы данных MySQL

Наиболее распространенный вариант использования инструмента mysqldump — резервное копирование одной базы данных.

Например, чтобы создать резервную копию базы данных с именем database_name, используя пользователя root, и сохранить ее в файл с именем database_name.sql, вы должны выполнить следующую команду:

mysqldump -u root -p database_name > database_name.sql

Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.

Если вы вошли в систему как тот же пользователь, которого вы используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете пропустить опции -u и -p:

mysqldump database_name > database_name.sql

Резервное копирование нескольких баз данных MySQL

ля резервного копирования нескольких баз данных MySQL одной командой вам нужно использовать параметр --database, за которым следует список баз данных, которые вы хотите сделать резервную копию. Каждое имя базы данных должно быть разделено пробелом.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Команда выше создаст файл дампа, содержащий обе базы данных.


Резервное копирование всех баз данных MySQL

Используйте опцию --all-database для резервного копирования всех баз данных MySQL:

mysqldump -u root -p --all-databases > all_databases.sql

Как и в предыдущем примере, команда выше создаст один файл дампа, содержащий все базы данных.


Резервное копирование всех баз данных MySQL в отдельные файлы

Утилита mysqldump не предоставляет возможность резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Команда выше создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.


Создание сжатой резервной копии базы данных MySQL

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

mysqldump database_name | gzip > database_name.sql.gz

Создать резервную копию с отметкой времени

Если вы хотите сохранить более одной резервной копии в одном месте, вы можете добавить текущую дату в имя файла резервной копии:

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Команда выше создаст файл в следующем формате database_name-20200223.sql


Восстановление дампа MySQL

Вы можете восстановить дамп MySQL с помощью инструмента mysql. Общий синтаксис команды выглядит следующим образом:

mysqld  database_name < file.sql

В большинстве случаев вам необходимо создать базу данных куда вы будете производить импорт. Если база данных уже существует, сначала вам нужно удалить ее.

В следующем примере первая команда создаст базу данных с именем database_name, а затем импортирует в нее дамп database_name.sql:

mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql

Восстановление одной базы данных MySQL из полного дампа MySQL

Если вы создали резервную копию всех своих баз данных с помощью параметра -all-database и хотите восстановить одну базу данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database, как показано ниже:

mysql --one-database database_name < all_databases.sql

Экспорт и импорт базы данных MySQL одной командой

Вместо того, чтобы создавать файл дампа из одной базы данных и затем импортировать резервную копию в другую базу данных MySQL, вы можете использовать следующую однострочную команду:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Команда выше передаст вывод клиенту mysql на удаленном хосте и импортирует его в базу данных с именем remote_database_name. Перед выполнением команды убедитесь, что база данных уже существует на удаленном сервере.


Автоматизация резервного копирования с помощью Cron

Автоматизация процесса резервного копирования баз данных так же проста, как создание задания cron, которое будет запускать команду mysqldump в указанное время. Подробно про cron можно прочитать в нашей статье.

Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:

  1. Создайте файл с именем .my.cnf в вашем домашнем каталоге пользователя: sudo nano ~/.my.cnf Скопируйте и вставьте следующий текст в файл .my.cnf. [client] user = dbuser password = dbpasswd Не забудьте заменить dbuser и dbpasswd на пользователя базы данных и пароль пользователя.
  2. Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ, используя команду cmod (подробнее про которую можно прочесть тут): chmod 600 ~/.my.cnf
  3. Создайте каталог для хранения резервных копий при помощи комадны mkdir (про нее тоже есть статья): mkdir ~/db_backups
  4. Откройте ваш пользовательский файл crontab: crontab -e Добавьте следующее задание cron, которое будет создавать резервную копию имени базы данных mydb каждый день в 3 часа ночи: 0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql Не забудьте заменить username вашим реальным именем пользователя. Вы также можете создать еще один cron job, чтобы удалить любые резервные копии старше 30 дней: find /path/to/backups -type f -name «*.sql» -mtime +30 -delete Конечно, вам нужно настроить команду в соответствии с вашим местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим Руководством по поиску файлов в Linux с помощью командной строки.

Полезные команды в linux

Чтобы удалить все в каталоге, используйте:

rm /path/to/directory/*

Вы можете использовать -r опцию, например:

rm -r /path/to/directory/*

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

Как посмотреть версию MySQL на сервере

Способ 1

  1. Подключаетесь по SSH через консоль;
  2. Вводите команду:
mysql --version

В результате вы получите вывод примерно следующего текста:

mysql  Ver 14.14 Distrib 5.1.66, for pc-linux-gnu (x86_64) using readline 5.1

Способ 2

Версия MySQL отображается сразу после входа в MySQL через консоль. Например:

  1. Подключаетесь к MySQL: mysql –u root –p
  2. Вводите свой пароль.

Если авторизация прошла успешно, то в консоли отобразится приблизительно такое уведомление:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.1.66 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Если же необходима более подробная информация о состоянии MySQL, то для её вывода необходимо войти в MySQL и выполнить следующую команду:

SHOW VARIABLES;

Удаление всех товаров в WooCommerce c помощью SQL-запроса

DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product');
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product');
DELETE FROM wp_posts WHERE post_type = 'product';

Как Узнать Свободное Место на Диске в Linux

Шаг 1 — Анализ свободного места на диске в Linux

Первой командой, которой мы воспользуемся станет df. Это команда означает файловая система диска. Она отобразит свободное место на диске в Linux. После выполнения команды, вы увидите несколько стандартных колонок: Файловая система, Размер, Использовано, Доступно, %Использования, Смонтирован на. Выглядеть это должно так:

  • Файловая система (filesystem)- предоставляет имя файловой системы.
  • Размер (size) — дает общий размер всех файлов в конкретной файловой системе.
  • Использовано (used) — показывает количество уже использованного места в конкретной файловой системе.
  • Доступно (avail) — показывает, как много свободного места осталось в конкретной файловой системе.
  • %Использования (use%) — показывает процент использованного дискового пространства.
  • Смонтирован на (mounted on) — последняя колонка показывает точку монтирования файловой системы.

С использованием определенных опций для этой команды, будут показаны другие колонки. Мы рекомендуем использовать эту команду с такими дополнительные опциями:

  • df -h — данная опция отобразит информацию в удобном, более понятном для человека формате. При использовании этой команды, дисковое пространство будет показано в Гб (но только не в том случае, если оно меньше одного Гб).
  • df -m — может быть использована для отображения информации в Мб.
  • df -k — также как и предыдущая, может быть использована для отображения использования файловой системы в Кб.
  • df -T — эта опция отобразит тип файловой системы (появится новая колонка).
  • df -ht /home — использовав эту опцию, вы сможете увидеть информацию о конкретной файловой системе (в более удобном для человека формате).
  • df —help — поможет отобразить полезные команды, которые вы можете использовать и информацию о них.

Еще одна полезная команда это du. Она означает использование диска. Эта команда, покажет вам информацию об использовании дискового пространства файлами и папками на компьютере Linux. Эта команда очень полезна, так как позволяет рекурсивно собирать информацию об использовании файлами и папками дискового пространства. Вы можете использовать эту команду для того, чтобы получить информацию об определенной папке и увидеть информацию о том, что внутри нее. Вот еще немного полезных опций для использования с этой командой:

  • du /home/user/Desktop/ — эта опция позволяет посмотреть на Desktop (Рабочий стол) пользователя и увидеть информацию об использовании дискового пространства файлами и папками, расположенными на вашем рабочем столе (все подпапки также включены).
  • du -h /home/user/Desktop/ — также как и df, позволяет увидеть информацию в более удобном для человека формате.
  • du -sh /home/user/Desktop/ — опция -s даст нам полный объем определенной папки (в этом случае покажет полный объем папки Desktop).
  • du -m /home/user/Desktop/ — также как и с df, предоставит вам информацию в Мегабайтах (вы можете использовать -k, чтобы увидеть информацию в Килобайтах.
  • du -h —time /home/user/Desktop/ — это даст вам информацию, основанную на последнем изменении файлов и папок.
  • df —help — покажет вам другие полезные команды, которые вы можете использовать и информацию о них.

Шаг 2 — Комбинирование команд и очистка дискового пространства

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

  1. Для начала, не забывайте проверить какой раздел диска самый загруженный. Вы можете сделать это при помощи уже изученной команды df.
  2. Возможно, самая популярная комбинация это: du -h /home/user/Desktop/ | sort -rn. Во-первых, мы собираем информацию о списке ваших файлов и папок на Desktop (Рабочем столе) в более читаемом для человека формате и передаем эту информацию другой команде sort, которая, используя правильные опции, сортирует ваши файлы и папки по их размеру, от самых больших к самым маленьким. Это даст нам понимание того, где вы должны сфокусировать свое внимание для освобождения дискового пространства.
  3. Другой очень полезной комбинацией станет: du -h /home/user/Desktop | grep ‘^\s*[0-9\.]\+G’. Она полезна в том случае, если у вас большое количество маленьких файлов и вы хотите их отфильтровать от больших. Вы также можете использовать +M вместо +G, в таком случае будут выбраны файлы тяжелее одного Мб.
  4. Вы можете исключить определенные типы файлов при помощи опции —exclude=»*.bin». Она используется с командой du, в случае если вы хотите получить список файлов, который не будет содержать определенные типы файлов. К примеру: du -h /home/user/Desktop/ —exclude=»*.txt» | sort -rn — исключит из результата все файлы с расширением .txt.

Создание и распаковка архивов в Linux

В случае с Linux VPS на базе OpenVZ и KVM для работы с архивами достаточно базовых компонентов системы, а именно Tar, Gzip и Bzip2, которые при создании сжатого архива работают как единое целое, т.к. сам по себе архиватор Tar не предусматривает возможность сжатия данных. Для этой цели как раз и используется Gzip или Bzip2. Архивы, созданные с применением Gzip, обычно имеют расширение .tar.gz, а при использовании Bzip2.tar.bz2.

Создание tar-архива без сжатия

Для создания такого архива используется команда:

tar -cf filename.tar file1 file2 fileN

Параметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов могут быть указаны и директории.

Создание архива с использованием сжатия

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

Пример сжатия Gzip:

tar -cvzf filename.tar.gz dir_name

В данном случае мы попытались запаковать папку dir_name в архив filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса создания архива с указанием упакованных файлов или папок.

Пример сжатия Bzip2:

tar -cvjf filename.tar.bz2 dir_name

Данная команда аналогична предыдущей и имеет отличие в параметре –j, т.к. именно он отвечает за использование метода сжатия Bzip2.

Распаковка архива

Для того, чтобы распаковать архив, используется команда:

tar -xvf filename.tar.bz2

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

tar -xvf filename.tar.bz2 -C /path/to/folder

В этом случае архив распакуется в указанной директории.

Просмотр содержимого архива без распаковки

Для этих целей используется следующая команда:

tar -tf filename.tar.gz

В результате выполнения команды выведется список файлов и папок, хранящихся в архиве. Если в перечень параметров добавить -v, то получится расширенный вывод информации о содержимом с указанием размера файлов, прав доступа, именами владельцев и их групп, и т.п.

Просмотреть полный список возможностей архиватора tar можно при помощи команд:

tar --help      #вызов справки по командам и параметрам
man tar	        #вызов расширенной документации

Создание и распаковка ZIP-архивов

Создание zip-архива выполняется командой:

zip archive.zip filename

Вместо archive.zip указываем имя создаваемого архива. Вместо filename указываем имя файла, который нужно архивировать. Для архивации целой папки необходимо использовать параметр –r, который инициирует рекурсивное архивирование. Без этого параметра будет заархивирована только папка без вложенных в неё файлов. Пример команды:

zip –r archive.zip dirname

Распаковка архива производится командой unzip:

unzip archivename.zip

Если необходимо распаковать в конкретную папку, то для этого используется параметр –d. Например:

unzip –d dirname archivename.zip

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

Просмотреть полный список возможностей архиватора zip и unzip можно при помощи команд:

zip --help или unzip --help	#вызов справки по командам и параметрам
man zip или man unzip		#вызов расширенной документации

Распаковка RAR-архивов

Для извлечения содержимого архива используется команда unrar:

unrar filename.rar

Посмотреть список файлов в архиве без его распаковки можно командой:

unrar –t filename.rar

Примечание: Стоит отметить, что Unrar может отсутствовать по умолчанию в некоторых Linux-дистрибутивах. Установить данное ПО можно следующими командами:

CentOS/Fedora:

yum install unrar

Debian/Ubuntu:

apt-get install unrar-free

Просмотреть полный список возможностей архиватора unrar можно при помощи команд:

rar --help 	#вызов справки по командам и параметрам
man unrar	#вызов расширенной документации

Пример создания резервной копии данных на VPS

Допустим, на VPS необходимо сделать резервную копию файлов сайта, которые располагаются в директории /var/www/html/mysite. Чтобы создать сжатый архив данных, расположенных в указанной директории, необходимо выполнить следующую команду:

tar -cvzf mysite.tar.gz /var/www/html/mysite

В результате содержимое директории /var/www/html/mysite будет запаковано в архив mysite.tar.gz.

Как сделать резервную копию и восстановить базу данных MySQL с помощью Mysqldump

В этом руководстве мы рассказываем, как выполнить резервное копирование и восстановление баз данных MySQL или MariaDB из командной строки с помощью утилиты mysqldump.

Файлы резервных копий, созданные утилитой mysqldump, представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных. Команда mysqldump также может генерировать файлы в формате CSV и XML. Вы также можете использовать утилиту mysqldump для переноса вашей базы данных MySQL на другой сервер MySQL.

Синтаксис команды Mysqldump

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

Выражения утилиты mysqldump имеют следующую форму:

mysqldump [options] > file.sql
  • options — параметры mysqldump
  • file.sql — дамп (резервная копия) файла

Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.


Резервное копирование одной базы данных MySQL

Наиболее распространенный вариант использования инструмента mysqldump — резервное копирование одной базы данных.

Например, чтобы создать резервную копию базы данных с именем database_name, используя пользователя root, и сохранить ее в файл с именем database_name.sql, вы должны выполнить следующую команду:

mysqldump -u root -p database_name > database_name.sql

Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.

Если вы вошли в систему как тот же пользователь, которого вы используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете пропустить опции -u и -p:

mysqldump database_name > database_name.sql

Резервное копирование нескольких баз данных MySQL

ля резервного копирования нескольких баз данных MySQL одной командой вам нужно использовать параметр --database, за которым следует список баз данных, которые вы хотите сделать резервную копию. Каждое имя базы данных должно быть разделено пробелом.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Команда выше создаст файл дампа, содержащий обе базы данных.


Резервное копирование всех баз данных MySQL

Используйте опцию --all-database для резервного копирования всех баз данных MySQL:

mysqldump -u root -p --all-databases > all_databases.sql

Как и в предыдущем примере, команда выше создаст один файл дампа, содержащий все базы данных.


Резервное копирование всех баз данных MySQL в отдельные файлы

Утилита mysqldump не предоставляет возможность резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Команда выше создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.


Создание сжатой резервной копии базы данных MySQL

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

mysqldump database_name | gzip > database_name.sql.gz

Создать резервную копию с отметкой времени

Если вы хотите сохранить более одной резервной копии в одном месте, вы можете добавить текущую дату в имя файла резервной копии:

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Команда выше создаст файл в следующем формате database_name-20200223.sql


Восстановление дампа MySQL

Вы можете восстановить дамп MySQL с помощью инструмента mysql. Общий синтаксис команды выглядит следующим образом:

mysqld  database_name < file.sql

В большинстве случаев вам необходимо создать базу данных куда вы будете производить импорт. Если база данных уже существует, сначала вам нужно удалить ее.

В следующем примере первая команда создаст базу данных с именем database_name, а затем импортирует в нее дамп database_name.sql:

mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql

Восстановление одной базы данных MySQL из полного дампа MySQL

Если вы создали резервную копию всех своих баз данных с помощью параметра -all-database и хотите восстановить одну базу данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database, как показано ниже:

mysql --one-database database_name < all_databases.sql

Экспорт и импорт базы данных MySQL одной командой

Вместо того, чтобы создавать файл дампа из одной базы данных и затем импортировать резервную копию в другую базу данных MySQL, вы можете использовать следующую однострочную команду:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Команда выше передаст вывод клиенту mysql на удаленном хосте и импортирует его в базу данных с именем remote_database_name. Перед выполнением команды убедитесь, что база данных уже существует на удаленном сервере.


Автоматизация резервного копирования с помощью Cron

Автоматизация процесса резервного копирования баз данных так же проста, как создание задания cron, которое будет запускать команду mysqldump в указанное время. Подробно про cron можно прочитать в нашей статье.

Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:

  1. Создайте файл с именем .my.cnf в вашем домашнем каталоге пользователя: sudo nano ~/.my.cnf Скопируйте и вставьте следующий текст в файл .my.cnf. [client] user = dbuser password = dbpasswd Не забудьте заменить dbuser и dbpasswd на пользователя базы данных и пароль пользователя.
  2. Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ, используя команду cmod (подробнее про которую можно прочесть тут): chmod 600 ~/.my.cnf
  3. Создайте каталог для хранения резервных копий при помощи комадны mkdir (про нее тоже есть статья): mkdir ~/db_backups
  4. Откройте ваш пользовательский файл crontab: crontab -e Добавьте следующее задание cron, которое будет создавать резервную копию имени базы данных mydb каждый день в 3 часа ночи: 0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql Не забудьте заменить username вашим реальным именем пользователя. Вы также можете создать еще один cron job, чтобы удалить любые резервные копии старше 30 дней: find /path/to/backups -type f -name «*.sql» -mtime +30 -delete Конечно, вам нужно настроить команду в соответствии с вашим местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим Руководством по поиску файлов в Linux с помощью командной строки.