Мини бележки - Брой 14, Бележки на програмиста
Мини бележки - бр.14
Цели два месеца нямаше мини бележки. Знам, че ти липсват! В този епизод: настройте VNC в Ubuntu, конвертирайте онлайн книги в PDF, изследвайте конзолни снифери, клонирайте схеми в PostgreSQL и много други. Предишни броеве: тринадесети, дванадесети, единадесети, десети.
1. Конзолни снифъри
Ако трябва да grep мрежов трафик на определен ред, използвайте ngrep:
За по-сложни неща е по-добре да използвате tcpdump:
Вместо флага -A, можете да използвате -X, тогава пакетите ще бъдат показани в шестнадесетичен формат.
Ето как можете да отрежете безинтересни пакети:
Удобно е да използвате tcpdump във връзка с низове:
Лично аз, за да видя HTTP трафик, използвам този едноредов:
В допълнение към tcpdump има и tcpflow, който показва само данни, без IP и TCP хедъри, но за съжаление не поддържа UDP:
Ако имате нужда от снифър, който поддържа протокол, използвайте tshark. Това е тип конзола WireShark:
Тук -i указва интерфейс, -f филтър за това какво да се прихване и -R филтър за това какво да се изведе. Частта -d tcp.port==8081,http казва на tshark да декодира трафика на порт 8081 като HTTP. В края на командата се изброяват полетата, които трябва да бъдат показани.
Можете да получите по-подробен изход със заглавки на заявка/отговор и така нататък по този начин:
Като цяло tshark е брилянтен. Ако види в отговора, нека кажем:
... след това декомпресира gzip, декодира json и отпечатва резултата от декодирането на json на конзолата.
Друг интересен снифър е urlsnarf, но в най-новите версии на Ubuntu по някаква причина той започна да работи зле. Вижте също бележката Улавяне на мрежов трафик с библиотеката libpcap.
2. Настройка на VNC-сървъри в Ubuntu
Най-лесният начин е да активирате споделянето на работния плот и да се свържете към машината с всеки VNC клиент на :0. Но ако някой включи монитора, той ще може да шпионира вашите действия.
За да предотвратим това да се случи, на сървъра казваме:
/.xsession vncserver -геометрия 1278x780 -дълбочина 16
Всъщност, най-вероятно имате предварително инсталирана remmina, но, що се отнася до мен, това е някакъв проблем.
Може да срещнете забавна грешка. Натискането на бутона D ще минимизира всички прозорци. Това се третира, като отидете на Системни инструменти → Системни настройки → Клавиатура → Преки пътища → Навигация и настройка Скриване на всички нормални прозорци до някаква безполезна комбинация, да речем Ctr + Alt + Esc. Подобен боклук със стрелки нагоре и надолу. Това изглежда се отнася за всички комбинации, които използват бутона Super.
За да спрем VNC на сървъра, казваме:
За да стартирате vncviewer в режим на цял екран, използвайте флага -fullscreen. С помощта на клавиша F8 можете да работите с клипборда и да излезете от vncviewer.
3. Как да конвертирате онлайн книга в PDF
За да разрешите този проблем, има такава прекрасна програма wkhtmltopdf. Пакетът Ubuntu не работи с множество входни HTML файлове, така че изтегляме двоичния файл на Linux от тук.
Ето как се сглобява PDF от набор от html файлове:
Освен това wkhtmltopdf може да работи с URL адреси, но в същото време изтеглянията са някак гадни, така че е по-добре да запазите всичко на диска предварително. В този случай можете също да коригирате HTML кода, ако PDF файлът е крив.
Програмата има много флагове, вижте wkhtmltopdf -H .
4. Куп vim и rsync
Затова напоследък редактирам кода локално и го качвам на сървъра със следния скрипт:
rsync -e ssh --прогрес \ --изключете 'deps/*/.git' \ --изключете '*.swp' \ --изключете 'тагове' \ -zutr / home / eax / проект eax @ eax.dev.example.com:
В резултат не само проблемът с мрежата беше решен. Сега не е необходимо да синхронизирам шаблони за поведение .zshrc или vimerl, които промених. Всичко е локално, на едно място. Удобен.
5. Как да докажа на доставчика, че губи пакети
За да изпратите на доставчика маршрут по подразбиране с неговите предложения да се опита да закупи друг рутер, използвайте помощната програма mtr:
Можете веднага да видите къде и какъв процент от пакетите са загубени.
Можете да добавите следната връзка в края на публикациите:
Полезно, ако използвате OctoPress и не усвоявате Disqus.
7. Много подозрителен UDP трафик на 224.0.0.251:5353
Ако iptraf в Ubuntu показва куп странен UDP трафик на 224.0.0.251:5353, казваме:
... и проблемът ще изчезне.
8. Определете версията на проекта по броя на ангажиментите
За да разграничите версията 2.14.1 на вашия проект, създадена вчера от версията 2.14.1, създадена днес, можете да добавите броя на ангажиментите към версията:
Ако използвате Jenkins, не забравяйте да деактивирате маркирането в свойствата на проекта!
9. Как да създадете копие на схема в PostgreSQL
За разлика от MySQL, PostgreSQL има схеми. Да кажем, че има база данни, към която отиват много потребители, всеки от които работи със собствена схема. Таблиците са еднакви за всички потребители. За да получите друг потребител със собствена схема, трябва да се извратите малко. Един от начините за решаване на проблема е следният.
Създаване на резервно копие на съществуващата схема:
... и вземете нов потребител:
Замяна на името на схемата в дъмп:
Всъщност на тази стъпка можете да повредите данните. Надявам се, че използвате достатъчно дълги именапотребители и имена на схеми, за да предотвратите това да се случи. Или че не е критично за вас.
Ако не използвате флага -f, psql ще се оплаква от използването на \N вместо NULL в дъмпа.
Друг начин е описан тук.
10. Как да създадете PDF версия на Learn You a Haskell for Great Good
Както се оказа, всичко е съвсем просто:
Вярно, texlive-full е доста тежък пакет.