Скрытность в Linux /заметаем следы/
  • Удалить Пустые Строки из Файла
  • Отправка GET/HEAD HTTP Запросов через Telnet
  • Изменить Скорость и Дуплекс Сетевой Карты
  • Выполнить Команду MySQL из Linux BASH Shell
  • Выполнить Резервное Копирование Базы Данных MySQL из Командной Строки
  • Восстановить Базу Данных MySQL из Командной Строки
  • Изменить Пароль Пользователя в MySQL

Удалить Пустые Строки из Файла

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

1. Используя команду grep :
$ grep -v «^$» file.txt
2. Используя команду sed :
$ sed ‘/^$/d’ file.txt
3. Используя команду awk :
$ awk ‘/./’ file.txt
4. Используя команду tr :
$ tr -s ‘\n’ < file.txt

Также, с помощью пайпа, Вы можете перенаправить вывод каждой из команд в новый файл, как показано ниже :
$ grep -v «^$» input.txt > output.txt

Отправка GET/HEAD HTTP Запросов через Telnet

Telnet — это утилита для подключения к серверам на заданный порт, которая, в основном, используется для поиска неисправностей.

Одной из самых распространенных задач решаемых с помощью telnet является подключение к какому-либо веб-серверу для проверки кода состояния HTTP из заголовка.

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

Ниже вы найдете примеры того, как отправлять GET и HEAD запросы на веб-сервер из командной строки с помощью telnet.

Проверка Кода Состояния HTTP с помощью Telnet

Используйте следующий синтаксис для подключения к [СЕРВЕРУ] на [ПОРТ] с помощью telnet и отправки запроса на получение HTTP заголовка [ВЕБ-СТРАНИЦЫ]:

$ telnet [СЕРВЕР] [ПОРТ]
Trying xxx.xxx.xxx.xxx…
Connected to [СЕРВЕР].
Escape character is ‘^]’.
HEAD [ВЕБ-СТРАНИЦА] HTTP/1.1
HOST: [СЕРВЕР]
<Нажмите ENTER>

Проверка HTTP заголовка главной страницы этого веб-сайта с помощью telnet:
$ telnet xakinfo.ru 80
Trying xxx.xxx.xxx.xxx…
Connected to xakinfo.ru.
Escape character is ‘^]’.
HEAD / HTTP/1.1
HOST: xakinfo.ru
<Нажмите ENTER>

Проверка HTTP заголовка данной веб-страницы с помощью telnet:
$ telnet xakinfo.ru 80
Trying xxx.xxx.xxx.xxx…
Connected to xakinfo.ru.
Escape character is ‘^]’.
HEAD /адрес страницы HTTP/1.1
HOST: xakinfo.ru
<Нажмите ENTER>

Получение Содержимого Веб-страницы с помощью Telnet

Синтаксис для подключения к [СЕРВЕРУ] на [ПОРТ] с помощью telnet и отправки запроса на получение содержимого [ВЕБ-СТРАНИЦЫ]:

$ telnet [СЕРВЕР] [ПОРТ]
Trying xxx.xxx.xxx.xxx…
Connected to [СЕРВЕР].
Escape character is ‘^]’.
GET [ВЕБ-СТРАНИЦА] HTTP/1.1
HOST: [СЕРВЕР]
<Нажмите ENTER>

Просмотр содержимого главной страницы этого веб-сайта с помощью telnet:
$ telnet xakinfo.ru 80
Trying xxx.xxx.xxx.xxx…
Connected to xakinfo.ru.
Escape character is ‘^]’.
GET / HTTP/1.1
HOST: xakinfo.ru
<Нажмите ENTER>

Просмотр содержимого данной веб-страницы с помощью telnet:
$ telnet xakinfo.ru 80
Trying xxx.xxx.xxx.xxx…
Connected to xakinfo.ru.
Escape character is ‘^]’.
GET /адрес страницы HTTP/1.1
HOST: xakinfo.ru
<Нажмите ENTER>

Изменить Скорость и Дуплекс Сетевой Карты

Для изменения скорости и дуплекса сетевой карты, можно воспользоваться утилитой ethtool.

1. Установка ETHTOOL

Для установки ethtool, выполните одну из следующих команд, в зависимости от Вашего дистрибутива Linux.

Установка ethtool в Fedora, CentOS, RHEL и т. д. :
# yum install ethtool

Установка ethtool в Ubuntu, Debian и т. д. :
# sudo apt-get install ethtool

2. Узнать скорость, дуплекс и прочую информации о сетевом интерфейсе eth0

Для того, чтобы узнать текущую скорость, дуплекс и прочую информацию об интерфейсе eth0, выполните следующую команду с правами пользователя root.
# ethtool eth0
Пример результата выполнения команды :

Settings for eth0:
	Supported ports: [ MII ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Half 1000baseT/Full 
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Half 1000baseT/Full 
	Advertised auto-negotiation: Yes
	Speed: 100Mb/s
	Duplex: Half
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: g
	Wake-on: d
	Current message level: 0x000000ff (255)
	Link detected: yes

3. Изменение настроек скорости и дуплекса

Данные изменения являются временными и перестанут действовать после перезагрузки. См. п.4, если Вам необходимы изменения на постоянной основе.

Примеры

Активировать функцию Авто-Определения :
# ethtool -s eth0 autoneg on
Отключить функцию Авто-Определения, установить режим Полу-Дуплекса и задать Скорость 10 Mb/s :
# ethtool -s eth0 speed 10 duplex half autoneg off
Отключить функцию Авто-Определения, установить режим Полного Дуплекса и задать Скорость 100 Mb/s :
# ethtool -s eth0 speed 100 duplex full autoneg off

4. Изменение настроек скорости и дуплекса на постоянной основе

Для Fedora/CentOS/RHEL

Для того, чтобы настройки сохранились после перезагрузки, необходимо внести изменения в файл /etc/sysconfig/network-scripts/ifcfg-eth0 для интерфейса eth0.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Добавьте следующую строку для отключения функции Авто-Определения, установки Полного Дуплекса и Скорость 100 Mb/s :

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

Перезапустите интерфейс для применения настроек :
# ifdown eth0 && ifup eth0

Выполнить Команду MySQL из Linux BASH Shell

Выполнить Команду MySQL из Bash Shell

Используйте следующую команду для быстрого выполнения запроса к базе данных MySQL из Linux Bash Shell :
# mysql -u [имя пользователя] -p[пароль] -e «[команды mysql]»
Пример :
# mysql -u root -pSeCrEt -e «show databases»

Выполнить Запрос к MySQL из Bash Скрипта

Используйте следующий синтаксис в Bash скриптах для выполнения команд MySQL :
mysql -u [имя пользователя] -p[пароль] << EOF
[команды mysql]
EOF

Пример :

#!/bin/bash
mysql -u root -pSeCrEt << EOF
use mysql;
show tables;
EOF

Выполнить Команду MySQL Удаленно

Используйте опцию -h, чтобы указать IP адрес MySQL сервера :
# mysql -h [ip] -u [имя пользователя] -p[пароль] -e «[команды mysql]»
Пример :
# mysql -h 192.168.1.10 -u root -pSeCrEt -e «show databases»

Указать Какую Базу Данных Использовать

Используйте опцию -D, чтобы указать имя базы данных MySQL :
# mysql -D [имя базы] -u [имя пользователя] -p[пароль] -e «[команды mysql]»
Пример :
# mysql -D clients -u root -pSeCrEt -e «show tables»

Выполнить Резервное Копирование Базы Данных MySQL из Командной Строки

Резервное копирование Базы Данных

Используйте следующую команду для резервного копирования базы данных :
$ mysqldump —opt -u [username] -p[password] [dbname] > [backupfile.sql]
Замечание : Между ключом -p и самим паролем пробел отсутствует.
Пример :
$ mysqldump —opt -u root -pSeCrEt customers_db > customers_db_backup.sql

Резервное копирование нескольких Баз Данных

Используйте следующую команду для резервного копирования нескольких баз данных :
$ mysqldump —opt -u [username] -p[password] —databases [dbname_1] [dbname_2] … > [backupfile.sql]
Пример :
$ mysqldump —opt -u root -pSeCrEt —databases customers_db employees_db > backup.sql

Резервное копирование всех Баз Данных

Используйте следующую команду для резервного копирования всех баз данных :
$ mysqldump —opt -u [username] -p[password] —all-databases > [backupfile.sql]
Пример :
$ mysqldump —opt -u root -pSeCrEt —all-databases > all_db_backup.sql

Резервное копирование Базы Данных с сжатием

Используйте следующую команду для резервного копирования базы данных с сжатием:
$ mysqldump —opt -u [username] -p[password] [dbname] | gzip -9 > [backupfile.sql]
Пример :
$ mysqldump —opt -u root -pSeCrEt customers_db | gzip -9 > customers_db_backup.sql.gz
Для извлечения *.gz архива, используйте команду ниже :
$ gunzip customers_db_backup.sql.gz

Восстановить Базу Данных MySQL из Командной Строки

Не следует использовать phpMyAdmin для восстановления большой базы данных MySQL.

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

Решением проблемы восстановления больших Баз Данных из sql дампов, является использование Linux/Unix командной строки.

Восстановление существующей Базы Данных

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

Синтаксис команды ‘mysqlimport’ :
$ mysqlimport -u [username] -p[password] [dbname] [backupfile.sql]
Замечание : Между ключом -p и самим паролем пробел отсутствует.
Example :
$ mysqlimport -u root -pSeCrEt customers_db customers_db_backup.sql

Восстановление новой Базы Данных

1. Создайте базу данных с соответствующим названием на целевом сервере.

Пример :

mysql> CREATE DATABASE customers_db;

2. Загрузите файл sql дампа, используя команду ‘mysql‘ :
$ mysql -u [username] -p[password] [db_to_restore] < [backupfile.sql]
Пример :
$ mysql -u root -pSeCrEt customers_db < customers_db_backup.sql
Если sql дамп был предварительно сжат, Вы можете Выполнить следующее :
$ gunzip < [backupfile.sql.gz] | mysql -u [username] -p[password] [dbname]
Пример :
$ gunzip < customers_db_backup.sql.gz | mysql -u root -pSeCrEt customers_db

Изменить Пароль Пользователя в MySQL

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

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

Шаг 1 : Логинимся в MySQL под рутом
$ mysql -u root -p
Шаг 2 : Подключаемся к базе ‘mysql’

mysql> use mysql;

Шаг 3 : Задаем новый пароль для пользователя John

mysql> update user set password=PASSWORD('NEW-PASSWORD-HERE') where User='John';

Шаг 4 : Обновляем привилегии

mysql> flush privileges;