Глупый пингвин робко прячет, умный - смело достает...


ramok аватар

Список процессов в виде дерева

Список процессов в виде дерева.

$ ps axjf
$ pstree -p
$ htop

И нажать F5

4
Ваша оценка: Ничего Рейтинг: 4 (1 vote)
romy4 аватар

Если висит куча соединений TIME_WAIT

# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

можно воспользоваться cutter [port]: он грохает открытые сокеты.

$ cutter 127.0.0.1 1234
0
Ваша оценка: Ничего
romy4 аватар

Восстановление некоторых удалённых файлов

Допустим, есть базы у мускуля, а одну из них вы случайно удалили (e.g. /home/mysql/data/ibdata1)

1) Пока работает mysqld этот файл ещё доступен
делаем

$ sudo lsof | grep /home/mysql/data/ibdata1

получаем вывод

mysqld  1655  mysql  3uW  REG  8,1  18874368  17039459 /home/mysql/data/ibdata1

Нам нужна вторая колонка: 1655 и четвертая колонка: 3uW

теперь просто:

$ sudo cp /proc/1655/fd/3 /home/mysql/data/ibdata1

Если мы знаем pid приложения, то можно посмотреть список удалённых, но ещё открытых файлов:

$ sudo lsof -p 1655|grep deleted

аналогично

$ ls -lia /proc/1655/fd/

2) Если вдруг мы знаем inode файла, то восстановить его можно так: переходим в директорию, где был удалён и

$ find . -inum 17039459 -exec cp {} /home/mysql/data/ibdata1.recovered \;
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
romy4 аватар

gdb + eclipse

Когда отлаживаешь в Eclipse сишный/плюсовый код, то ставить отладочные опции компиляции надо только -g.

Рекомендуемые в мануале для Gdb флаги -g3 -gdbg3 -gstabs+ ставить не нужно, иначе будет неправильно выводиться инфа по переменным.

0
Ваша оценка: Ничего

Почему резервная копия домашней папки такая большая?

Мой совет, с одной стороны, "для чайников", с другой - если вы задумались о резервной копии домашнего каталога, то вы уже не "чайник" :-)

У меня на рабочем компьютере (Kubuntu 12.04.3 LTS) настроено ежедневное резервное копирование на удалённое хранилище. Место на файловом сервере не резиновое, поэтому решил исключить из резервной копии все "тяжёлые файлы", чтобы сохранялось только действительно важное, всё "тяжёлое" есть на внешнем HDD. Первый бэкап вышел на 20 Гб больше, чем я посчитал...

После детального анализа, оказалось, что корзина расположена в каталоге ~/.local/share/Trash, котрая "весит" немало, хотя в ней самые ненужные данные. Не забывайте исключить её из "самых важных" файлов!

3.5
Ваша оценка: Ничего Рейтинг: 3.5 (2 голоса)

Послать mail из консоли в html формате

Для создания репортов которые отсылаются в e-mail решил использовать html. Но вот только не получалось почемуто их сперва отослать. Чтобы сэкономить Вам время привожу своё bash решение

0
Ваша оценка: Ничего
FrBrGeorge аватар

О вредном башизме "&>"

Башизм "&>" не только не входит в стандарт, но ещё и не вызывает ошибки в dash/ash, при этом сценарий работает по-другому.

0
Ваша оценка: Ничего
romy4 аватар

Дебагинг в Eclipse используя root

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

Первое, что делаем, разрешаем юзеру запускать gdb под рутом
в папке /etc/sudoers.d/ создаём какой-нибудь файл our_program (без точек и под рутом — это важно). В него пихаем строчку

username ALL=(root) NOPASSWD:/usr/bin/gdb

сохраняем. Даём права

$ chmod 0440 our_program

. Ребутим машину.

Второе, в Eclipse в настройках дебага Run > Debug Configurations > C/C++ Application > YourProject вкладка Debug: меняем в Debugger > Main > GDB debugger с gdb на sudo gdb. Применяем -> дебажим.

0
Ваша оценка: Ничего
romy4 аватар

Ошибка запуска sudo как обойти?

Например, имеется ошибка

sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Обойти можно используя
1. используя gksu или gksudo, но тоже может не сработать

Если не помогает, то

$ pkexec <prgram>

или исправить ошибку в судофайле

$ pkexec visudo -f /etc/sudoers.d/filename
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Omni автодополнение для C++ в vim в Debian

$ sudo apt-get install exuberant-ctags  vim-addon-manager vim-scripts
$ vim-addon-manager install omnicppcomplete
$ printf "%s\n" --c++-kinds=+p --fields=+iaS --extra=+q > ~/.ctags
$ cd ~/work/project
$ ctags -R .
$ vim ...

ramok аватар

Одновременная работа в нескольких терминалах в tmux

В tmux реализованы возможности одновременной работы в нескольких терминалах, которая удобра при работе с несколькими серверами одновременно.

Если открыть несколько панелей, и с помощью ctrl-b : установить переменную

setw synchronize-panes

можно включить/выключить синхронизацию панелей.

Можно повесить хоткей на =

bind = setw synchronize-panes

via

0
Ваша оценка: Ничего
ramok аватар

Zoom панели в tmux

В новой версии tmux появилась новая возможность временно раскрыть панель на всё окно, и потом вернуть компановку окон обратно.

По умолчанию новый хотекй повешен на ctrl-b z

via

В старых версиях tmux, выходили из положения таким велосипедом:

bind + new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
 
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom
ramok аватар

Переход с apache 2.2 на 2.4, ошибка "Either all Options must start with + or -, or no Option may"

При переходе с apache 2.2 на 2.4 возникла ошибка

Either all Options must start with + or -, or no Option may

Нужно добавить + ко всем опциям в виртуальных хостов, там где они опущены.

$ sudo sed -i ':z;s/\(Options.*\) \([^+_-]\)/\1 +\2/;tz' /etc/apache2/sites-available/*
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
romy4 аватар

Проброс сокета на примере mysql

пробросим сперва свободный порт локально

$ /usr/bin/ssh -i our_id_rsa -o ServerAliveInterval=1 -o ServerAliveCountMax=5 -o Compression=no -N -2 -T -L 3306:localhost:3306 root@remote_host &

теперь сокет направим в порт

$ socat -d -lf /var/log/socat.log UNIX-LISTEN:/var/run/mysqld/mysqld.sock,reuseaddr,fork,unlink-early,mode=777,su=nobody,user=mysql,group=mysql TCP4:localhost:3306 &

----------
В debian socat, можно поставить из репозитория: apt-get install socat

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Захват плейбека при записи звука в pulseaudio

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

Классическим "решением" для большинства пользователей было бы использование колонок, чтобы проигрывать музыку через них и захватывать микрофоном... Костыльно, правда?

Pulseaudio тем не менее предлагает правильное решение проблемы свода дорожек и не требует наличия колонок.

Делается это в общих чертах следующим образом:
* Создаётся null-сток.
* Создаётся loopback-поток с источником в виде микрофона и назначением в виде null-стока.
* Создаётся combine-сток, который дублирует полученный поток на обычный сток (то, чем вы и так слушаете звук) и на null-сток.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
FrBrGeorge аватар

Связка mutt и abook: полезные мелочи

Для того, чтобы удобнее заполнять адресную книжку abook из mutt, необходимо вдобавок к стандартным рекомендациям включить pipe_decode=yes в настройках mutt, а сообщение обрабатывать дополнительно с помощью formail -c

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

mount dmg files

Надо было замаунтить .dmg. Просто так ничего нельзя, надо преобразовать в нормальный архив.

$ dmg2img mydisk.dmg
$ sudo modprobe hfsplus
$ sudo mkdir /mnt/mydisk
$ sudo mount -t hfsplus -o loop mydisk.img /mnt/mydisk
$ cd /mnt/mydisk
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Как просмотреть видеофайлы из видеорегистраторов Q-tum.

Китайские видеорегистраторы q-tum экспортируют видео в свой странный формат vid. Каждый vid файл сопровождается файлом idx. Mencoder, ffmpeg, vlc не смогли открыть vid файл. Утилиты для конвертации с сайта q-tum.ru кривые, не конвертируют и запускаются только под виндой. hexdump -C homevideo.vid показал, что файл представляет собой последовательность jpeg файлов. Тогда я решил натравить на файл photorec homevideo.vid - но извлек только первые два кадра.
Долгое гугление вывело на два перловых скрипта - jpg-recover.pl и jpg-recover-faster.pl.
Я запустил первый jpg-recover.pl homevideo.vid и он извлек все кадры.
Оставалось только сложить их вместе с помощью mencoder :-)
Оба скрипта приатачены к совету.

0
Ваша оценка: Ничего

Удаление скрытых каталогов .svn и .git в каталоге с исходным кодом

У меня есть несколько программ, которые я устанавливаю из исходного кода. Это эмуляторы PlayStation 2 - pcsx2 и Nintendo GameCube и Wii - Dolphin. Первый проект использует систему управления версиями SVN, а второй - GIT. Иногда я скачиваю последний SVN/GIT и архивирую его, чтобы потом использовать старую версию при появлении регрессий в эмулируемых играх в новой версии эмулятора. Скрытые каталоги .svn и .git для меня лишние, они используются для обновления старой версии исходного кода. Они могут занимать больше места, чем нужный мне исходный код. Поэтому перед архивированием я их удаляю.

В этом мне помогла найденная в интернете команда. Для SVN:

$ find . -name .svn -print0 | xargs -0 rm -rf

Для GIT:

$ find . -name .git -print0 | xargs -0 rm -rf

или:

$ find . -name .git* -print0 | xargs -0 rm -rf
0
Ваша оценка: Ничего
ramok аватар

ntpdate-debian

Если не хочется на ноуте держать постоянно запущеный ntpd, то можно пользоваться ntpdate, запуская его время от времени или при загрузке.

Но ntpdate требует в качестве параметра ip ntp сервера.
В debian есть скрипт ntpdate-debian, который использует прописанные в /etc/defaults/ntpdate ntp сервера.

0
Ваша оценка: Ничего