Пропустить навигацию.

Блоги

sed и gsed: заменить через ssh во всех файлах подсроку на другую подстроку в примерах

В *nix есть утилита sed, это поточный редактор.

В плане замены строк sed работает так:

sed -e 'e/aaa/bbb/g' file.txt > file.txt

Все вхождения подстроки aaa будут заменены на bbb. Если убрать инструкцию «g», то будет заменено только единственное вхождение, а не глобально.

У sed есть более функциональный брат-последователь GNU sed, во FreeBSD его можно найти в портах как gsed, установим:

cd /usr/ports/textproc/gsed
make config && make install && make clean

Не забывайте после установки выполнить
rehash

Кеширование запросов mysql, конфиг my.cnf, права доступа

Описание проблемы

Столкнулся с такой проблемой, что не работает кэширование mysql запросов.

В файле настроек /etc/my.cnf:
query_cache_size = 128M

Перезапускаю mysql, рефрешу страницу сайта, смотрю
mysql -uroot -ppassword
mysql> SHOW GLOBAL STATUS LIKE 'Qcache%';

и вижу одни нули. Значит кэш запросов mysql не работает.

Выполняю в mysql:
set @@global.query_cache_size=64*1024*1024;

Рефрешу страницу сайта и вижу что цифры поползли и кэш работает. В частности один тяжёлый запрос выполняется не 0.5 секунды, а 0.001 секунды.

scp: cкачка-закачка файлов по ssh

Всё просто, есть команда scp.

Ситуация: вам нужно закачать архив arc.tar.gz с локального компьютера файл на свой сервер по ssh по не стандартному порту 3322.

Открываем консоль:

scp -P 3322 /path_to_file/arh.tar.gz user@host:/path_to_dir

Жмём энтер, вводим пароль и видим приятную картинку:

arc.tar.gz 100% 128KB 128.0KB/s 00:00

Аналогично в обратную сторону. Копируем файлы с удалённого сервера на локальный компьютер:

scp -P 3322 user@host:/path_to_dir/arh.tar.gz /path_to_local_dir/

--

Средства мониторинга в FreeBSD

Помимо стандартной команды tail-f «имя файла», которая показывает что дописывается прямо сейчас в конец файла, позволяющая удобно наблюдать за log файлами apache или nginx, а так же другими.

Ниже, можно сказать, системные средства мониторинга. Пусть будут тут:


  1. Информация о дисках

    1. mount - показывает смонтированные подразделы и флаги из монтирования
    2. df - показывает смонтированные подразделы, их размер и свободное место на них
    3. fdisk /dev/ad0 - показывает информацию о диске ad0 и разделах на нем

Проверка и исправление ошибок файловой системы в FreeBSD: fsck

Когда случаются проблемы с файловой системой на сервере, первое что нужно делать после скачки бэкапов:

  • Загрузиться в single mode (возможно потребуется попросить KVM)
  • mount -u -w
  • fsck -y
  • reboot

Радуемся.

Если радости нет, и в консоли вы видите: «mount: not found» и «fsck: not found», то пробуйте указать полные пути:

  • /sbin/mount -u -w
  • /sbin/fsck -y

Установка Memcached под FreeBSD

  1. cd /usr/ports/databases/memcached
    make install clean
  2. ee /etc/rc.conf
    Добавляем строку:
    memcached_enable="YES"
  3. /usr/local/etc/rc.d/memcached start
  4. Проверяем: netstat -an | grep 11211
  5. Ставим расширение для php: cd /usr/ports/databases/pecl-memcache
    make install clean
  6. /usr/local/bin/php -i | grep -i 'memcache'
  7. apachectl restart

Проверить то что работает memcached можно в phpinfo() или скриптом:

<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

ускоряем mysql, диагностика

mysqladmin processlist -uroot -ppassword

Показывает список активных процессов mysql. Ищем медленные, думаем в чём причина.

+-------+---------+-----------+---------+---------+------+----------------+------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |

Восстановление всех таблиц MYSQL по ssh — ssh mysql repair all tables

Полезная команда, которая поможет вам проверить и восстановить все таблицы в ваших базах данных mysql:

mysqlcheck -uroot -ppassword --auto-repair --check --optimize --all-databases

Подключаемся к серверу по ssh и вводим вышеуказанную команду, заменяя только root — на имя пользователя и password — на пароль пользователя.

Перезагрузка mysql

Под рутом работатет, быстро, сочни, вкусни!

/usr/local/etc/rc.d/mysql-server restart

Как перезапустить MySQL?

mysqladmin -uroot -ppassword shutdown

password — пароль рута, если его нет, то:

mysqladmin -uroot shutdown

А теперь запускаем:
/usr/local/bin/mysqld_safe

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

RSS-материал