Как записать видео с экрана 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

Объективный тест лампового усилителя с Aliexpress

Из Китая можно заказать различные ламповые усилители, как собранные, так и в виде наборов для сборки (KIT). Один из таких Kit’ов как раз попал мне в руки.

Я не буду говорить о «макро и микродинамике», о «прозрачности сцены» и «душевности вокала», а проведу объективный технический анализ с помощью бездушных графиков АЧХ, нелинейных искажений и термометра.

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

Как узнать кто и с каким ключом авторизовывался по 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

 

Решение: пакет linux-image-generic-hwe пока не настроен.

После очередного обновления вылезло:

Настраивается пакет linux-image-4.10.0-35-generic (4.10.0-35.39~16.04.1) … 
Running depmod. 
update-initramfs: deferring update (hook will be called later) 
...
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1 
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.10.0-35-generic.postinst line 1052. 
dpkg: ошибка при обработке пакета linux-image-4.10.0-35-generic (--configure): 
 подпроцесс установлен сценарий post-installation возвратил код ошибки 2 
dpkg: зависимости пакетов не позволяют настроить пакет linux-image-extra-4.10.0-35-generic: 
 linux-image-extra-4.10.0-35-generic зависит от linux-image-4.10.0-35-generic, однако:
 Пакет linux-image-4.10.0-35-generic пока не настроен.

dpkg: ошибка при обработке пакета linux-image-extra-4.10.0-35-generic (--configure):
 проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет linux-image-generic-hwe-16.04:
 linux-image-generic-hwe-16.04 зависит от linux-image-4.10.0-35-generic, однако:
 Пакет linux-image-4.10.0-35-generic пока не настроен.
 linux-image-generic-hwe-16.04 зависит от linux-image-extra-4.10.0-35-generic, однако:
 Пакет linux-image-extra-4.10.0-35-generic пока не настроен.

...
dpkg: зависимости пакетов не позволяют настроить пакет linux-generic-hwe-16.04:
 linux-generic-hwe-16.04 зависит от linux-image-generic-hwe-16.04 (= 4.10.0.35.37), однако:
 Пакет linux-image-generic-hwe-16.04 пока не настроен.

dpkg: ошибка при обработке пакета linux-generic-hwe-16.04 (--configure):
 проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
 linux-image-4.10.0-35-generic
 linux-image-extra-4.10.0-35-generic
 linux-image-generic-hwe-16.04
 linux-generic-hwe-16.04
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ключевое здесь:

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

Решение: зависает/не определяется SoundBlaster после перезагрузки Linux

У меня на компьютере стоят Linux (Ubuntu 16.04) и Windows в дуалбут: на линупсе работа, а на винде всё остальное. Но вот недавно возникла трудность, заключающаяся в том, что внешняя звуковая карта Creative SoundBlaster после одной-двух перезагрузок компа перестаёт определяться до полного выключения. При более внимательном осмотре стало ясно, что она тупо зависает.

Решение оказалось неожиданным — по совету отключил в BIOS встроенный в материнку звуковой чип и зависаний больше не наблюдалось.

Профайлинг PHP приложений

Анализ времени вызовов методов и функций позволяет найти «бутылочное горлышко» в проекте для последующей оптимизации.

Установим XDebug и инструмент для просмотра профайлинг-логов, например KCacheGrind.

apt install php-xdebug kcachegrind

Затем активировуем профайлинг в php.ini (путь до файла зависит от конфигурации веб-сервера):

mcedit /etc/php/7.0/fpm/php.ini

Добавив в конец:

xdebug.profiler_enable = On
xdebug.profiler_output_name="cachegrind.out.%H.%R.%u"

Перезапустим PHP сервер:

service php7.0-fpm reload

Теперь после каждого открытия PHP приложений, в /tmp (по умолчанию) будут создаваться файлы с именем cachegrind.out.ХОСТ.REQUEST_URI.ВРЕМЕННАЯ_МЕТКА.

Эти файлы можно открыть через KCacheGrind.

Как автоматически создавать геттеры и сеттеры

Всевозможную рутину следует автоматизировать. В создании геттеров и сеттеров нет никакой интеллектуальной деятельности, с этим справится простейший алгоритм. В PhpStorm для таких целей существуют генераторы, среди которых есть и генератор геттеров и сеттеров:

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

iotop

Чтобы проверить, кто и как нагружает жёсткие и не очень диски, пригодится данное приложение. Оно похоже на top, но выводит список процессов, использующих систему ввода-вывода.

apt install iotop