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


romy4 аватар

Отдача лога по http

Netcat-WebService для отображения лога:

$ echo -e "HTTP/1.1 200 Ok\n\r"; tail -f /var/log/syslog) | netcat -l -p 1234

socat:

$ socat -u FILE:/var/log/syslog,ignoreeof TCP4-LISTEN:12345,fork,reuseaddr

source links:
[1] [2]

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

Свой CentOS LiveCD

Нашёл довольно таки интересный ресурс посвященный созданию своих сборок LiveCD на базе CentOS.
http://livecd.centos.name/

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

эмуляция движений мышки в скрипте

Лень — двигатель прогресса. Часто мне надо мышку двигать с одного монитора на другой, а тянуться к мышке лень. Нашлась одна утилита, которое это делает легко и не принуждённо. А главное, можно повесить хоткей.

$ xdotool mousemove_relative --sync -- x y

где x y это относительные координаты
--sync опция для ожидания подтверждения X Window
ну в общем, разобраться можно, всё достаточно просто.
если добавить опцию -r, то можно указать полярные координаты, что так же прикольно

на всякий случай список команд:

  getactivewindow
  getwindowfocus
  getwindowname
  getwindowpid
  getwindowgeometry
  getdisplaygeometry
  search
  selectwindow
  help
  version
  behave
  behave_screen_edge
  click
  getmouselocation
  key
  keydown
  keyup
  mousedown
  mousemove
  mousemove_relative
  mouseup
  set_window
  type
  windowactivate
  windowfocus
  windowkill
  windowmap
  windowminimize
  windowmove
0
Ваша оценка: Ничего

Как правильно обнулять логи

для корректного обнуления какого-либо лога, следует использовать команду:

$ :> $some_log

:> - это встроеный в sh аналог true
иначе выглядит как:

$ true > $some_log

если у Вас стоит защита от перезаписи в шелле, то :>| $some_log или :>! $some_log

PS: если же Вы, как и я, по незнанию просто потерли лог и потом создали файл с правильными правами, а туда не пишет, перезапустите Ваш syslog/rsyslog или Ваш аналог.

так же проверьте что нынче Ваш процесс не пишет в удаленный файл:

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

mc полезные фичи

1. В mc существуют панели так же как и в фаре. Например, можно открыть несколько редакторов и перемещаться по панели не закрывая их. Команда: Esc, ~

2. Можно включить в редакторе номера строк. Команда: Alt + n

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

Парсинг html

Для парсинга html,xml регекспы не очень хорошая штука, так как структура данных иерархическая.
И когда нужно выдернуть иерархию данных и сопоставить её, на регекспах это превращается в ад.
Для этого лучшен подходят html,xml пасеры. Извлекаются данные при помощи селекторов css,XPath.
самый простой из примемров:

$ curl -s http://linsovet.org.ua/ | hxselect -s"\n" "h2 > a"

Консольный парсер hxselect в ходит в пакет html-xml-utils.
Вообще лучше юзать Mechanize, Scrapy, node.js + jquery.

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

БНОПНЯ возвращается?

Если в тексте в кодировке UTF8 наблюдаются старые добрые крокозябры вида «ìåãàáàéò», это, скорее всего, текст в WINDOWS-1251, перекодированный как Latin1 → UTF8.

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

Запись CD/DVD дисков из консоли

http://emunix.org/blog/2012/12/01/command-line-cd-burning/

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

Разбудить компьютер по таймеру

Эта команда усыпит и разбудит ваш комп ровно в 6:00.

$ rtcwake -m mem -t $(date +%s -d 06:00)

Источник

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

Ставим i386 пакеты на amd64 debian

Оригинал

Таки да, multiarch рулид. Скайп поставить на debian amd64 удалось.

Собственно, всё просто:
1. Добавляем в sources.list что-то типа

deb [arch=amd64,i386] http://mirror.yandex.ru/debian testing main contrib non-free

2. Ставим нужные пакеты:

$ apt-get install -o Dpkg::Options::="--force-overwrite" libqtwebkit4:i386

опции нужны вот из-за этого бага http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676162
3. Ставим пакет скайпа, при необходимости нужные либы доставляем из i386

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

Поключение разделов HDD по UUID

При подключении нового винчесера по SATA/USB все привычные имена устройств разделов могут сбиться. Поэтому лучше всего их лучше прописывать в fstab по UUID

1. Узнаем UUID раздела. Например нам нужен /dev/sda1

$ blkid /dev/sda1
/dev/sda1: UUID="c56e7197-6f8c-4ea7-a16c-fc308d80741a" UUID_SUB="6774fecc-9c28-4006-b423-0139fd688a35" TYPE="btrfs" 
# или
$ ls -l /dev/disk/by-uuid/ | grep sda1
lrwxrwxrwx 1 root root 10 Ноя 13 14:49 c56e7197-6f8c-4ea7-a16c-fc308d80741a -> ../../sda1

2. прописываем в fstab

UUID=c56e7197-6f8c-4ea7-a16c-fc308d80741a /mnt/big auto defaults 0 0
0
Ваша оценка: Ничего
FrBrGeorge аватар

Создание пустого фала и полбаяна

Создать пустой файл можно, перенаправив вывод любой команды, например, пустой команды ":"

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

Night Sun theme for CMUS

Набросал тему для сабжа. Скрин:

$ wget http://ompldr.org/vZnloYg/ns.theme -O ~/.cmus/ns.theme
0
Ваша оценка: Ничего

ipv6 + youtube + google

Я использую бота для скачивания определенных ресурсов с ютуба напрямую, без браузера и прочего, у меня в наличии VPS+he.net тунель. И столкнулся с проблемой, тот же ютуб отдает в приоритете именно по в6, а не по в4, в связи с этим скорость становится крайне низкой. Возник вопрос, как бы запретить использовать ipv6 для моей вдс, при обращении к ютубу и гуглу, и решение оказалось как нельзя проще:

ip6tables -I OUTPUT --dst 2001:4860::/32 -j REJECT
ip6tables -I OUTPUT --dst 2a00:1450::/32 -j REJECT

и вуаля, используется только ipv4. Все остальное работает в прежнем режиме на ура. :)
Надеюсь, кому нибудь пригодится.

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

Изучение ImageMagick на примерах

К ImageMagick имеется не только полная документация, но и решебник типовых задач, а для тех, кому shell-скрипты читать проще английского, — библиотека сценариев на shell.

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

Установка funtoo на eeepc 1225C

* делаем загрузочную флешку с (почти) любым дистром. Лично я использовал гентушную - http://www.gentoo.org/doc/en/liveusb.xml

* грузимся с неё

* Размечаем жесткий диск gdisk'ом

# gdisk -l /dev/sda
...
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048           67583   32.0 MiB    EF02  BIOS boot partition
   2           67584         1091583   500.0 MiB   8300  Linux filesystem
   3         1091584        17868799   8.0 GiB     8200  Linux swap
   4        17868800       625142414   289.6 GiB   8E00  Linux LVM

* Создаём таблицу lvm

# pvcreate /dev/sda4
# vgcreate data /dev/sda4 
# lvcreate -L40G -n root data
# lvcreate -L200G -n home data

* Создаём файловые системы

# mkfs.ext3 /dev/sda2
# mkswap /dev/sda3
# mkfs.ext4 /dev/data/root
# mkfs.ext4 /dev/data/home

* Монтируем файловые системы

# mkdir /mnt/funtoo
# mount /dev/data/root /mnt/funtoo/
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
FrBrGeorge аватар

Печать на CUPS-принтер из-под Windows

Научить Windows печатать на принтер, раздаваемый CUPS, просто! Адрес сетевого принтера совпадает с URL настройки этого принтера в CUPS, а драйвер надо указать «Generic» → «MS Publisher Imagesetter»

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

Слушаем MP3 из HTML5 <audio> в Firefox

Решил я как-то послушать музыку одной ранее не слышанной группы при помощи одного сайта. Захожу туда, а там требуют поставить Flash.

Ну, с Flash каждый дурак может, а мы тут немного развлечёмся. Благо, у сайта есть HTML5-версия. По идее, она должна работать в Firefox, но из-за лицензионных ограничений он не может играть MP3. Тупик?

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

Перенаправление вывода stdout в файл происходит с большой задержкой

В такой конструкции tail -f file | grep blabla > out.txt

Записи в out.txt попадают не сразу после того как появились в file а с большой задержкой. Это связано с буферизацией stdout. Чтобы строки появлялись сразу в out.txt нужно отключить буферизацию stdout.

tail -f file | stdbuf -oL grep blabla > out.txt

http://www.pixelbeat.org/programming/stdio_buffering/stdbuf-man.html

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

Меняем имя файла с транслита на кириллицу посредством Bash

Изменить имя файла из транслита в кириллицу.
пример:
ИЗ "AarhAndrejAida.fb2" В "АархАндрейАида.fb2"
находимся в дерриктории изменяемого файла

 
[root@localhost test]# ls       
AarhAndrejAida.fb2

микро скрипт для нащей задачи:

echo Aarh_Andrej_Aida.fb2 | while read FILE; do mv "$FILE" $(echo $(basename "$FILE" .fb2) | tr a-zA-Z A-Za-z | iconv -f koi-7).fb2; done

итог:

[root@localhost test]# ls
АархАндрейАида.fb2

если в имени файла существуют разделители:
" _ " или " - " и т.д.
пример:

 
[root@localhost test]# ls
Aarh_Andrej_Aida.fb2

то добовляем:"| tr + символ"
получаем:

echo Aarh_Andrej_Aida.fb2 | while read FILE; do mv "$FILE" $(echo $(basename "$FILE" .fb2) | tr a-zA-Z A-Za-z | iconv -f koi-7 | tr + _).fb2; done

итог:

[root@localhost test]# ls
Аарх_Андрей_Аида.fb2

The end.

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