Подсчитать количество файлов в каталоге Linux

В определённом каталоге

Быстрый подсчёт всех файлов и каталогов в указанном:

ls -f КАТАЛОГ | wc -l

Примечание: учитываются «.», «..» и все файлы и каталоги, начинающиеся с точки.

С учётом вложенных каталогов

Подсчёт только файлов в указанном и вложенных каталогах рекурсивно:

find КАТАЛОГ -type f | wc -l

Подсчёт только каталогов в указанном и вложенных рекурсивно:

find КАТАЛОГ -type d | wc -l

Засечь время выполнения команды в Linux

Иногда может быть полезным определить время выполнения команды. Сделать это можно с помощью команды time, подставив её в начале вызова. Примеры:

time zip -r /var/backups/etc.zip /etc/
time mysqldump -u backup -p`cat /home/dev/.extrahide.pas` extrahide > extrahide.sql

Лог запросов в MySQL

В разработке для отладки и тестирования может пригодиться логировать запросы в MySQL.

Воспользоваться этой возможностью легко, достаточно в конфигурационном файле MySQL (my.cnf) добавить в секцию mysqld следующее:

[mysqld]
...
general_log_file = /var/log/mysql/mysql.log
general_log = 1

И перезапустить сервер СУБД:

service mysql restart

Примечание: не применяйте данную опцию на продакшне, если не хотите в кратчайшие сроки забить всё свободное место логами запросов. Ну или настройте ротацию логов.

Получить статистику трафика и проверить загруженность сети в Linux

Первый инструмент — jnettop.

Показывает статистику трафика в реальном времени.

Установка:

apt install jnettop

Запуск:

jnettop

Второй инструмент — cbm.

Показывает загруженность сети.

Установка:

apt install cbm

Запуск:

cbm

На что обращаем внимание: не упирается ли трафик в возможности интерфейса, например, если интерфейс 100 Мбит, а средний трафик около 90 Мбит, то это плохо.

 

Как записать видео с экрана Linux в mp4

apt install recordmydesktop gtk-recordmydesktop ffmpeg

Запустить из меню программ RecordMyDesktop, заснять.

Затем полученный файл формата ogv сконвертировать в mp4 следующим образом:

ffmpeg -i ИМЯ_ФАЙЛА_ИСТОЧНИКА.ogv -c:v libx264 -preset veryslow -crf 22 -c:a libmp3lame -qscale:a 2 -ac 2 -ar 44100 ИМЯ_ФАЙЛА_РЕЗУЛЬТАТА.mp4

Как узнать кто и с каким ключом авторизовывался по ssh

Лог авторизации по ssh расположен по адресу /var/log/auth.log (либо его вариации типа /var/log/auth.log.1, /var/log/auth.log-20171020 при ротации логов). Если посмотреть его, то обнаружатся записи на подобии:

Oct 20 11:18:13 server sshd[27690]: Accepted publickey for denis from 127.0.0.1 port 1234 ssh2: RSA 12:34:56:78:90:ab:cd:ef:gh:ij:kl:mn:op:qr:st:uv
Oct 20 11:18:13 server sshd[27690]: pam_unix(sshd:session): session opened for user denis by (uid=0)
Oct 20 11:18:13 server systemd-logind[123]: New session 151 of user denis.
Oct 20 11:18:13 server systemd: pam_unix(systemd-user:session): session opened for user denis by (uid=0)

Трудность заключается в том, что мы видим, что под определённым IP (в примере выше 127.0.0.1) авторизовался клиент с помощью публичного ключа (publickey) под некоторым пользователем (denis), но какой именно клиент, а конкретнее — какой именно публичный ключ был использован для авторизации — не ясно.

Запись ssh2: RSA 12:34:56:78:90:… сходу нам ни о чём не говорит, ведь добавленные в ~/.ssh/authorized_keys публичные ключи имеют вид:

ssh-rsa AAAAAAAbnFij3rfsdoinsfdo3243SHDBSJJJS/*r3HJDD... email@server.loc

Что же делать, чтобы узнать кто конкретно из клиентов авторизовывался под анализируемыми пользователем и IP:

Читать дальше…

Решено: connection refused в связке nginx + Apache2 на локальном сервере

Возникла такая ситуация, что после перезагрузки Debian 8, все запросы на nginx выдавали Connection refused. При попытке обратиться непосредственно к Apache2, в соединении был отказ. После принудительного перезапуска Apache2 (service apache2 restart) всё начинало работать.

Читать дальше…

Решение: не устанавливается nginx в Debian 8

При попытке установить nginx на Debian 8 возникла ошибка:

dpkg: ошибка при обработке пакета nginx-full (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет nginx:
 nginx зависит от nginx-full (>= 1.6.2-5+deb8u5) | nginx-light (>= 1.6.2-5+deb8u5) | nginx-extras (>= 1.6.2-5+deb8u5), однако:
 Пакет nginx-full пока не настроен.
 Пакет nginx-light не установлен.
 Пакет nginx-extras не установлен.
 nginx зависит от nginx-full (<< 1.6.2-5+deb8u5.1~) | nginx-light (<< 1.6.2-5+deb8u5.1~) | nginx-extras (<< 1.6.2-5+deb8u5.1~), однако:
 Пакет nginx-full пока не настроен.
 Пакет nginx-light не установлен.
 Пакет nginx-extras не установлен.

Оказалось, что nginx отказывался устанавливаться из-за того, что порт 80 ранее был занят Apache 2.

Изменим прослушиваемый порт либо в nginx, либо в Apache (в данном случае):

nano /etc/apache2/ports.conf

И перезапустим Apache:

service apache2 restart

Теперь можно продолжить установку nginx.

Источник: https://unix.stackexchange.com/questions/153980/problems-to-install-nginx-full-on-debian-8