Полезные консольные команды Linux

Опубликовано 2021.02.13 в разделе Разное.

Очистить файл достаточно просто можно следующим образом. Хорошо подходит для очистки логов.
  1. cat /dev/null > access.log
Посмотреть сколько места занимает каждая папка в директории. Например все ваши сайты хранятся в /var/www/ Тогда команда будет выглядеть так:
  1. du -sh /var/www/*
Сколько всего доступно места на сервере:
  1. df -h
Смотреть за изменениями файла в режиме реального времени:
  1. tail -f access.log

Логирование системы(что делать, если сервер упал вчера)

Опубликовано 2016.05.16 в разделе Разное.

Для Ubuntu
  1. sudo apt-get install atop
После этого atop будет складывать в var/log/atop снимки системы каждые 10 секунд. И если ваш сервер упадет ночью, то вы сможете утром спокойно выполнить
  1. atop -r /var/log/atop/atop_log_filename
и клавишами t и Shift+t покрутить историю. Если падение продолжалось более 10 секунд - то вы обязательно увидите что выжрало все ресурсы сервера и хотя бы станет понятнее в какую сторону копать дальше. Например я увидел, что у меня занят весь swap и дисковые операции занимают 100% ресурсов.

Забанить бота bingbot

Опубликовано 2016.03.24 в разделе Разное.

Забанить эту сволоту можно в к конфиге Nginx. В директории server добавьте следующий код.
  1. if ($http_user_agent ~ bingbot) {
  2. return 503;
  3. }
После этого вашему серверу полегчает. Да, не забываем сделать :
  1. service nginx reload
Потом вы можете легко проверить, работает ли данное правило.
  1. $opts = array(
  2. 'http' => array('user_agent' => 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)')
  3. );
  4. $context = stream_context_create($opts);
  5. $res = file_get_contents("your site url", false, $context);

Создать дамп БД Mysql

Опубликовано 2015.03.09 в разделе MySQL.

Для создания дампа базы данных MySQL нужно использовать в SSH консоли следующие команды:
  1. mysqldump -u root --password=password database_name | gzip -c > /database_backup/database_name-`date "+%Y-%m-%d"`.gz
Если база расположена не на localhost - то можно добавить имя хоста:
  1. mysqldump -u root --password=password -hservername database_name | gzip -c > /database_backup/database_name-`date "+%Y-%m-%d"`.gz

Linux команды

Опубликовано 2015.02.25 в разделе Разное.

Я приведу команды, которые чаще всего использую в повседневной жизни. Рекурсивное удаление папки:
  1. rm -R название-папки
Распаковать tar.gz архив
  1. tar xvzf archive.tar.gz
Заархивировать папку
  1. tar -cvzf folder.tar.gz /path/to/folder
Покажет список файлов с расширением php, которые были созданы за последние 7 дней за неделю
  1. find . -type f -name '*.php' -mtime -7
Вывод из файла последних 20 строк с нужным вхождением
  1. grep -w "search string" drupal.log | tail --lines=20

Размещение на сервере

Опубликовано 2015.02.20 в разделе Разное.

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

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

Загрузить дамп в MySQL через консоль

Опубликовано 2015.02.07 в разделе MySQL.

В начале переходите в папку с дампом базы:
  1. cd /path/to/dump_folder
Затем в консоли нужно подключиться к mysql:
  1. mysql --host=localhost --user=myname --password=mypass mydb;
Потом просто:
  1. source my_dump.sql;
Чтобы покинуть mysql, но остаться в консоли - введите: Если база заархивирована в .sql.gz архив, то не подключаясь к mysql сразу вводите в консоли:
  1. gunzip < database.sql.gz | mysql -u myname -pmypass mydb;