← All posts tagged Linux

~# time resize2fs /dev/vg0/backup
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/sape is mounted on /mnt/backup; on-line resizing required
old desc_blocks = 384, new_desc_blocks = 448
Performing an on-line resize of /dev/vg0/backup to 1879048192 (4k) blocks.
The filesystem on /dev/vg0/backup is now 1879048192 blocks long.


real 7m5.752s
user 0m0.188s
sys 0m4.300s

7 минут ext4 ресайзится с 6 Тб до 7. xfs делает это за несколько секунд. Одно слово — дно.

Есть маленькое (SOHO) сетевое устройство. Хочу организовать его мониторинг. Устройство умеет SNMP. Есть что-нибудь простенькое, что будет собирать информацию по SNMP, писать её куда-нибудь и строить графики?
Желательно поменьше PHP и MySQL — городить их ради одного устройства представляется мне оверинженирингом.

Оказывается, что шифры ssh сильно разливаются по скорости, и если нужно передавать большие объёмы данных через ssh, имеет смысл сменить шифр на более быстрый. В интернетах советуют acrfour ( scp -c arcfour ... или rsync -e 'ssh -c arcfour' ) или его варианты acrfour128 и arcfour256. Я погонял тесты, у меня получилось также: arcfour быстрее.
blog.famzah.net

А как в nginx писать лог-файлы по разным HTTP статусам?
Я нашёл, что с 1.7 можно сделать так:
map $status $error4xx { ~^4\d\d$ 1; default 0; }
map $status $error5xx { ~^5\d\d$ 1; default 0; }
access_log /var/log/nginx/4xx.log combined if=$error4xx;
access_log /var/log/nginx/5xx.log combined if=$error5xx;

Или можно через location:
error_page 400 /errors/4xx/400.html;
error_page 403 /errors/4xx/403.html;
error_page 408 /errors/4xx/408.html;
error_page 401 405 406 407 409 410 411 412 413 414 415 416 417 /errors/4xx/4xx.html;

error_page 500 /errors/5xx/500.html;
error_page 501 /errors/5xx/501.html;
error_page 502 /errors/5xx/502.html;
error_page 503 /errors/5xx/503.html;
error_page 504 /errors/5xx/504.html;

location ^~ /errors/4xx/ {
internal;
alias /etc/nginx/errors/;
access_log /var/log/nginx/4xx.log;
}

location ^~ /errors/5xx/ {
internal;
alias /etc/nginx/errors/;
access_log /var/log/nginx/5xx.log;
}

Но это костыль. Есть ли более красивый вариант?

I2P на CubieBoard (ArchLinux ARM):
[user@cubie ~]$ systemctl status i2prouter.service
i2prouter.service — Invisible Internet Project
Loaded: loaded (/etc/systemd/system/i2prouter.service; disabled)
Active: active (running) since Mon 2013-10-14 16:09:47 MSK; 50min ago
Process: 15299 ExecStop=/bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 15324 ExecStart=/usr/bin/java-service-wrapper ${WRAPPER_CONF} wrapper.name=i2prouter wrapper.syslog.ident=i2prouter wrapper.daemonize=TRUE (code=exited, status=0/SUCCESS)
Main PID: 15328 (java)
CGroup: /system.slice/i2prouter.service
├─15326 /usr/bin/java-service-wrapper /opt/i2p/wrapper.config wrapper.name=i2prouter wrapper.syslog.ident=i2prouter wrapper.daemonize=TRUE
└─15328 /opt/java-embedded/jre/bin/java -DloggerFilenameOverride=logs/log-router-@.txt -Dorg.mortbay.http.Version.paranoid=true -Dorg.mortbay.xml.XmlParser.NotValidating=true -Di2p.dir.base=/opt/i2p -Xmx128m -Djava.library....

Oct 14 16:09:46 cubie systemd[1]: Starting Invisible Internet Project...
Oct 14 16:09:47 cubie systemd[1]: i2prouter.service: Supervising process 15328 which is not our child. We'll most likely not notice when it exits.
Oct 14 16:09:47 cubie systemd[1]: Started Invisible Internet Project.
[user@cubie ~]$ uname -a
Linux cubie 3.0.57-5-ARCH #1 PREEMPT Wed May 29 18:13:48 UTC 2013 armv7l GNU/Linux
[user@cubie ~]$ cat /proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 1006.38
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2

Hardware : sun4i
Revision : 0000
Serial : 0000000000000000
[dima@cubie ~]$

Говорят, что и на Raspberry Pi можно, но у меня малинка зависала от I2P. Правда я тогда ещё не нашёл пакет ejre в AUR.

Нашёл программу, которая реализует функциональность из #1048370 — оптимизация размера JPEG-файлов без потерь качества (lossless по-нашему). Пакет называется jpegoptim, делает всё то же самое. С ключом -t показывает суммарный выигрыш в размере, с --all-progressive делает все файлы прогрессивными (грузятся быстрее, места занимают меньше, но требуют чуть больше памяти). Один минус — на моих синтетических тестах jpegtran сжимал лучше.

Ещё оказывается есть то же самое для png — optipng. Но я пока её не пробовал.

1) Подключил USB-наушники, теперь в ALSA две звуковые карты. А звук всё равно идёт на основную звуковую карту. Чтобы переключить звук на наушники, нужно добавить в ~/.asoundrc
pcm.!default front:Headset
Имя канала вместо front:Headset можно узнать из вывода aplay -L
При этом ещё понадобилось добавить кусок про dmix с alsa-project.org чтобы работало программное смешивание потоков:
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}

ctl.dmixer {
type hw
card 0
}

2) Чтобы в Half-Life из Steam был звук, надо сделать
export SDL_AUDIODRIVER=alsa

Конечно, все эти проблемы только от того, что у меня нет Pulseaudio.

В Rasbian увидел интересный пакет — hardlink. Ищет одинаковые файлы и заменяет их хардлинками. Гениально же. Экономим место. Я раньше использовал только fdupes (с ключами -rd) для поиска и удаления дубликатов, но это подходит только для пользовательских файлов. А например в /usr полно одинаковых файлов, однако они нужны на своих местах. Тут hardlink может помочь. Вот пример с моей рабочей машины (X11, KDE, Iceweasel, LibreOffice, все рюшечки):

sudo hardlink -vt /usr
<…>
Mode: real
Files: 81119
Linked: 5044 files
Compared: 873390 files
Saved: 78,52 MiB
Duration: 307,29 seconds

На прошлой неделе со второго раза приехали-таки Raspberry Pi. В клёвой пластиковой упаковке, но китайской сборки. (Кажется, версии Made in the UK высылаются только британцам). Скачал с raspberrypi.org образ Rasbian, записал на SD-карту, вставил в малинку, включил. Воткнул RCA-разъём (это который тюльпан) в телевизор, а там изображение кажет. Работает. Так удивился, что нашёл для этого дела USB-клавиатуру. Вставил USB-свисток, подцепил интернеты. Поковырял малинку немного. В общем и целом, это компьютер для дзен-буддистов. Оче медленный. Всё поотрезал, поставил на него transmission-daemon, но всё равно, когда начинает качать torrent, LA подскакивает до 4.

А, ну и да.
$ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

antenore.altervista.org
Интересный метод синхронизации ~/.bashrc (или других файлов) на множестве машин. Не знал про такую функциональность ssh. Работает, правда, в одну сторону и применим не во всех ситуациях.

Для Ъ:
$ cat .ssh/config
Host *
PermitLocalCommand yes
LocalCommand scp -q %d/.bashrc %h:

Искал какой-нибудь простой вики-движок, чтобы вести для себя заметки. Пока остановился на didiwiki — один бинарник со встроенным http-сервером, вики-статьи хранит plain text'ом. Но не различает пользователей, не хранит историю изменений, нет прочих плюшечек. В TODO автор пишет, что возможно плюшечки добавит. В остальном программа «просто работает»™, люблю такое.

Поднял мамбл-сервер. Официальный murmur (сервер мамбл) требует Qt, который на сервере без графики вообще не комильфо. Поэтому остановился на umurmur: code.google.com Минимум зависимостей, минимум настроек, всё «просто работает»™. Вчера тестировали — всё работает. Кто будет собирать из исходников — сборку с openssl поломали, нужна polarssl.