Полезные команды SSH: TOP-70 утилит, используемых на хостинге

Полезные команды SSH: TOP-70 утилит, используемых на хостинге

Команда Timeweb

Полезная шпаргалка по использованию хостинга на все времена.

Полезные команды SSH: TOP-70 утилит, используемых на хостинге

При общении с клиентами в тикетах мы часто выполняем работы именно по SSH. Это касается диагностики, отладки, переноса сайтов и еще сотни других действий.

Сегодня мы собрали TOP-70 утилит, которые находятся в арсенале службы поддержки Timeweb.

Проверка, диагностика ошибок

Проверка, диагностика ошибок

Цикл для проверки ответов сайта

while true; do curl -I http://domain.com 2>/dev/null | grep HTTP; done


Проверить код ответа сервера

curl ---head domain.ru | grep HTTP


Получить http-заголовки с сайта

curl -I имя_сайта


Проверить скорость работы сайта

curl -so /dev/null -w '%{time_total}\n' -H 'Cache-Control: no-cache' domain.com


Обратиться к сайту

wget -/dev/null сайт


Проверить скорость отдачи контента

time wget -O /dev/null domain.com


Проверить скорость выполнения скрипта

time wget index.php


Вывести IP домена

host имя_домена


Вывести NS домена

dig +short NS domain.com


Вывести А-запись

dig +short A domain.ru


Вывести актуальную А-запись минуя кэширование на dns-серверах

(обход кэширования достигается с помощью ключа +trace)

dig +trace domain.ru A

Получить А-запись домена с конкретного DNS-сервера:

dig @ns1.timeweb.ru domain.com


Получить актуальные NS для домена

dig ns +trace domain.ru


Получить txt-запись с конкретного сервера

dig txt domain.ru @8.8.8.8


Получить MX для домена с конкретного сервера

dig mx domain.ru @ns1.timeweb.ru


Посмотреть ошибки PHP

for i in `seq 1 20`; do curl -I домен 2>/dev/null; sleep 1; done | grep 'X-Powered-By: PHP\/5.3' -c


Диагностировать сертификат домена

openssl s_client -connect domain:443


Проверить pagespeed

wget -4SO /dev/null https://domain.ru 2>&1 | fgrep X-Page-Speed


Посмотреть модули php

php -m


Посмотреть лимиты

ulimit -a/etc/security/limits.conf


Посмотреть циклические редиректы

wget -O /dev/null https://домен/файл.txt 2>&1|tail -n1


Проверить доступность порта

nc -l -p порт


Обратиться wget через нужный IP-адрес

wget --bind-address=188.225.72.234 http://yandex.ru


Обратиться к домену напрямую с помощью CURL

(используется для проверки доступности сайта при использовании CDN, например, Cloudflare)

#1curl -IH host:domain.ru http://ip-адрес#2curl -v -H "Host: domain.ru" 92.53.119.143

Обратиться к Apache вместо Nginx

curl --H 'Host: domain.ru' http://127.0.0.1:86#86 - порт нужной версии PHP


Обратиться к файлу на сайте от имени Apache

curl -XGET -I -H 'Host: site.ru' 'http://localhost/path/to/file.svg'


Сделать трассировку с сервера ВХ

mtr -c 300 -r ip


Трассировка для windows

pathping -n 92.53.114.107


Cделать трассировку по tcp на 80 порт

traceroute -Tn timeweb.com -p 80


Тест производительности CPU и дисковой системы

sysbench --test=cpu --cpu-max-prime=20000 run -- - CPUdd if=tempfile of=/dev/null bs=1M count=1024 - Чтениеsync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync - Запись


Проверить определение месторасположения IP-адреса по geoip

geoiplookup адрес


Отправить тестовое письмо через sendmail

echo "Test" | sendmail test@mail.ru


Назначить CLI-версию PHP по умолчанию

export PATH=/opt/php<версия>/bin/:$PATH


Посмотреть занятое место

du -sch ./*


Проверить ход выполнения скрипта

strace php index.php


Выводы для проверки связи

dhclient --r eth0ip acurl -so /dev/null -w '%{time_total}\n' domain.rucat /etc/sysconfig/network


Проверка сжатия

curl https://URL -H "Accept-Encoding: gzip"


Работа с файлами и директориями

Работа с файлами и директориями

Поиск строки в файлах

grep -rlinsH 'строка' ./


Рекурсивный поиск значения по всем файлам, начиная с текущей директории

grep значение ./ -R


Показать файлы в определенном каталоге с указанной датой изменения

ls -l /tmp/1002/ | grep 'Dec 21'


Изменить права рекурсивно

find . -type d -exec chmod 0700 {} ';'


Сделать php.ini для работы скриптов

/opt/php54/bin/php -с /home/u/user/site/public_html/cgi-bin/php.ini /home/u/user/site/public_html/subdirectory/script.php


Сравнить два файла

diff file1 file2


Разделить файл на нужные части утилитой split

split -b 3500m file.tar


Сделать мягкую ссылку

ln -s полный_путь_на_что_будет_ссылка имя_ссылки#создает ссылку на нужную папку в текущем каталоге


Удалить BOM (вставки вида 1s/)

find . -type f -exec sed '1s/^ //' -i.bak {} \; -exec rm {}.bak \;


Заменить что-то в файлах рекурсивно

find . -type f -name '*' -exec sed -i -r 's/что-заменять/на-что-заменять/g' {} \; find . -type f -name '*' -exec sed -i -r 's%что-заменять%на-что-заменять%g' {} \; #Пример:find . -type f -name '*' -exec sed -i -r 's/znakomstva-vkontakte.ru/znakomstva-vkontakte.tw1.ru/g'


Создать пустой файл нужного объема

dd if=/dev/zero of=~/test.php bs=1M count=1#bs - сколько байт#count - сколько раз


MODX

find . -type f -name '*' -exec sed -i -r 's%beritaxi.com%cf89767.tmweb.ru%g' {} \; find . -type f -name '*' -exec sed -i -r 's%home/login/login.tmweb.ru%home/c/login/public_html%g' {} \;


Удаленное копирование в директорию

nohup wget -r -c -l 0 --restrict-file-names=nocontrol -o wget.log ftp://login:password@ip/path/ &


Перенос из консоли по sftp

sftp логин@адресget -r ./каталог_назначения


Скачать по FTP wget'ом

nohup wget -mc --ftp-user='' --ftp-password='' --output-file=wget.log --limit-rate=500k ftp://ip/путь/ --restrict-file-names=nocontrol &


Скачать несколько каталогов по FTP

wget -m -o ./wget.log --restrict-file-names=nocontrol ftp://username:passwd@host/{path1, path2} &nohup wget -m --ftp-user='' --ftp-password='' --output-file=progress_wget --limit-rate=500k --include-directories=path1,path2,path3 ftp://ip/path --restrict-file-names=nocontrol &


Скачать с удаленного сервера по SCP

scp -rpC -P 3232 логин@ip:/path /local #опции:-l 500 - ограничить скорость-С - сжатие на лету-P 222 - указать порт-p - скопировать права доступа и временные метки-v - verbose-q - тихий режим, не обрабатывает ошибки-r - рекурсивное скачивание


С текущего каталога на удалённый сервер

rsync -avzh --progress --log-file=progress_rsync --bwlimit=500 -e ssh ./ логин@ip:путь


Rsync по ssh с нужными ключами с удаленного сервера в локальную директорию

rsync --progress -avz --log-file=progress_rsync --bwlimit=500 логин@ip:/path/ /local_path/ #опции:--bwlimit=500 - значение указывается в KBPS-e "ssh -p 2022" - указать порт--log-file=progress_rsync - указать файл лога--progress - отобразить прогресс скачивания, но только для текущего файла--rsh=ssh - указать протокол


Копирование rsync локально

rsync -ah --progress /source/ /dest/


Работа с MySQL

MySQL

Проверить БД на битые таблицы

mysqlcheck -u root ---check --databases cu59267_base


Восстановить БД, если побились таблицы

mysqlcheck -u root ---auto-repair --databases cu59267_base


Восстановить БД при наличии ошибок

mysqlcheck --u'база_данных' -p'пароль_базы_данных' 'база_данных'


Оптимизация БД

(для уменьшения занимаемого места и ускорения операций ввода/вывода)

mysqlcheck -u root ---optimize --databases cu59267_base

При принудительном завершении процессов

cat имя_дампа.sql | pv -L 2M | mysql -u'база_данных' база_данных -p'пароль_базы_данных'


Сделать дамп с удаленного сервера

mysqldump -h'адрес_сервера' -u'user' db -p'password' > dumpname.sql


Работа с архивами

Работа с архивами

Архивировать каталог

tar -cf - каталог | pv -L 2M -cN tar -s $(du -sb каталог | grep -o '[0-9]*') > каталог.tar


Распаковать tar

cat archive.tar | pv -L 2M -s $(du -sb | grep -o '[0-9]*') | tar -x


Распаковать zip через pv

pv -L 1M Файл.zip | unzip-stream target_dir


Импортировать базу через pv

cat dump.sql | pv -L 1M | mysql -u'db' db -p'password'


Сделать дамп с удаленного сервера

mysqldump -h'адрес_сервера' -u'user' db -p'password' > dumpname.sql


Сделать архив с исключением директорий

tar -cf - /path/ --exclude='/path/folder/*' | pv -L 2M > archive.tar


Проверить сжатие gzip

curl https://URL -H "Accept-Encoding: gzip"


Сron

Cron

Просмотреть задания cron у клиента

crontab -l


Редактировать файл cron

crontab -e


Хотите больше новостей по хостингу, IT и Web?

Подписывайтесь на наши сообщества:

VK: https://vk.com/timewebru

Telegram: https://t.me/timewebru

Facebook: https://www.facebook.com/TimeWeb/

Twitter: https://twitter.com/Timeweb

OK: https://ok.ru/group/52380557901890

Report Page