LINUX.ORG.RU

Сообщения leg0las

 

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

Вкратце: чтобы не делать каждый раз, когда прилетает новое ведро кучу команд типа:

make bzImage modules modules_install install
eselect kernel set <#>
emerge -v @module-rebuild
grub-mkconfig -o /boot/grub/grub.cfg

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

#!/bin/bash

if [ "$(whoami)" != 'root' ];
then
echo "You don\`t have root access"
elif [ "$(pwd | grep '/usr/src/linux-')" = '' ];
then
echo "You don\`t in kernel sources directory, needed /usr/src/linux-<kernel_version>"
else
KERNEL_VERSION="$(pwd | sed "s/^\/usr\/src\///g")"
ESELECT_KERNEL_VERSION="$(eselect kernel list | grep $KERNEL_VERSION | awk '{print $1}' | sed "s/^\[//g" | sed "s/\]$//g")"
make bzImage modules modules_install install
eselect kernel set $ESELECT_KERNEL_VERSION
emerge -v @module-rebuild
grub-mkconfig -o /boot/grub/grub.cfg
fi

Юзайте на здоровье.

 ,

leg0las
()

gentoo-cleaner v 0.0.1

Пруф. Написано с коллективным разумом ЛОРа. Принимаются замечания по улучшению, в планах дописать поиск мусора в /var, и со временем добавить необходимые исключения в /etc.

Сразу скажу - скрипт _НЕ_УДАЛЯЕТ_ найденные неиспользуемые файлы, он рапортует о найденых в /var/log/garbage.log.

GitHub

UPD: Обновлено до 0.0.1.2-r2

 ,

leg0las
()

garbage collection для Gentoo или как найти накапливающийся в системе мусор.

Ни для кого не секрет, что в нашем любимом онтопике имеет место быть (естественно не в таких огромных количествах, как в альтернативных ОС) накапливание мусора - конфиги там в /etc, если пакетный менеджер не удаляет, пустые директории в /var, ну и тому подобный хлам. Так как findcruft умер, а других тулз не нагуглил, решил повелосипедить. Нужна помощь с добавлением исключений.

#!/bin/bash

mkdir '/tmp/garbage/'
echo "finding packages..."
EIX_LIMIT=0 eix -#I > /tmp/garbage/packages
echo "finding files in packages..."
cat /tmp/garbage/packages | while read line; do equery f $line | grep "^/" >> /tmp/garbage/package_files; echo "searching $line"; done
cat /tmp/garbage/package_files | grep -v "/usr/src" | sort > /tmp/garbage/package_files_sort
echo "finding files in system..."
find /bin/ -type f >> /tmp/garbage/system_files
find /boot/ -type f >> /tmp/garbage/system_files
find /etc/ -type f >> /tmp/garbage/system_files
find /lib32/ -type f >> /tmp/garbage/system_files
find /lib64/ -type f >> /tmp/garbage/system_files
find /opt/ -type f >> /tmp/garbage/system_files
find /sbin/ -type f >> /tmp/garbage/system_files
find /usr/ -type f >> /tmp/garbage/system_files
find /var/ -type f >> /tmp/garbage/system_files
echo "Sorting files..."
cat /tmp/garbage/system_files | grep -v "/usr/portage" | grep -v "/usr/src" | grep -v "/var/db/pkg" | grep -v "/lib/modules" | sort > /tmp/garbage/system_files_sort
echo "Writing log file and finishing..."
diff /tmp/garbage/system_files_sort /tmp/garbage/package_files_sort > /var/log/garbage.log
rm -rf '/tmp/garbage'

Замечания по скрипту:

  • Еще не дописал удаление дубликатов, если имеются
  • делая
    equery f $line | grep "^/"
    не отображаются директории, соответственно нужно дописать поиск пустых директорий
  • не все исключения добавлены
  • нужно разобраться, как быть с x86 архитектурой например
  • игнорятся файлы в /usr/src
  • дописать парсер diff`а, чтобы по человечески и красиво.

UPD Новая версия

UPD2 Обновленная версия. Устранена практически мешанина /lib и /lib64 на x86_64

UPD3 v 0.0.1

 ,

leg0las
()

Кто там хоронил оперу?

Опере на новом движке под Linux таки быть.

Пруф, автор поста (чтобы не говорили, что кто-то левый написал), гуглоперевод

Предвижу вопли «банальный зонд», но извините, ФФ рядом не валялся по части юзабилити - говорю по опыту, т.к. на работе перешел для эксперимента на него - таких элементарных вещей, как проверить соответствие стандартам и сохранение в mht я не нашел (из плагинов - адблок и табы, плюс может еще что-то по мелочи). Хромой - на то он и хромой. Это дерьмо отобразить веб-морду управляшек не в состоянии. В новой опере не проверял.

P.S. Пардон за некропост, но тут вроде не было.

P.P.S. cast AX

 ,

leg0las
()

Померяемся?

http://wstaw.org/m/2014/03/14/ktorrent.png

Down: 75,24 MB/s (МБайт/с).

 ,

leg0las
()

php5-redis - напочитать документацию

Киньте кто-нибудь вменяемую доку по оной либе, а то толком ничего вменяемого не нашел.

 ,

leg0las
()

Прилетела новая glib. Здравствуй варнинги consolekit и прощай автомонтирование флешек

Они там упоролись вконец? Не тестируют совсем штоле и пихают в стабильную ветку?

Ждем хотфиксов в общем.

cast megabaks

Решено пересборкой kdm и запуском etc-update

Еще одно решение

 

leg0las
()

Тупняк, mod_rewrite, htacces (apache) -> location (nginx)

Имеется:

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|public)
RewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]

Если первые 3 строчки мне понятны, то с реврайтом нужна помощь. Сконвертил тут, получил:

location ~ \.(css|js|jpg|gif)$ {
}

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php/$1 break;
    }
}

Итого: index.php прогружается, при попытке перейти по любой ссылке получаю 404.

Еще крутится на серваке мой код без реврайта - он работает нормально, т.е. php прикручен правильно.

 , , ,

leg0las
()

ssh -YC user@host startkde

Кто-нибудь извращался подобным? На рабочем столе работает даже 3D-ускорение, только тормозит все. Реквестирую рецепты избавления от тормозов (либо хотя-бы частично).

 ,

leg0las
()

INFO: task <task>:<id> blocked for more than 120 seconds. Часть 2.

Продолжение марлезонского балета.

В общем, решено было записать gentoo livecd и прогнать самописным тестом:

#!/bin/bash

while true; do
echo "$(date -R | awk '{print $2,$3,$5}')   Test CPU, HDD (dd + urandom, 128M, 256M, 512M, 1G)" >> /mnt/debian/var/log/testserver.log
`dd if=/dev/urandom of=/mnt/debian/tmp/testfile128M.img bs=1k count=131072 2>/dev/null; echo "$(date -R | awk '{print $2,$3,$5}')   Test dd 128M finished" >> /mnt/debian/var/log/testserver.log` &
`dd if=/dev/urandom of=/mnt/debian/tmp/testfile256M.img bs=1k count=262144 2>/dev/null; echo "$(date -R | awk '{print $2,$3,$5}')   Test dd 256M finished" >> /mnt/debian/var/log/testserver.log` &
`dd if=/dev/urandom of=/mnt/debian/tmp/testfile512M.img bs=1k count=524288 2>/dev/null; echo "$(date -R | awk '{print $2,$3,$5}')   Test dd 512M finished" >> /mnt/debian/var/log/testserver.log` &
`dd if=/dev/urandom of=/mnt/debian/tmp/testfile1G.img bs=1k count=1048576 2>/dev/null; echo "$(date -R | awk '{print $2,$3,$5}')   Test dd 1G finished" >> /mnt/debian/var/log/testserver.log`
rm -rf /mnt/debian/tmp/testfile*
echo "$(date -R | awk '{print $2,$3,$5}')   Test CPU, HDD (dd, urandom) finished" >> /mnt/debian/var/log/testserver.log
sleep 60
echo "$(date -R | awk '{print $2,$3,$5}')   Test memory (copy in tmpfs)" >> /mnt/debian/var/log/testserver.log
cp /mnt/debian/root/iso-* /mem/
echo "$(date -R | awk '{print $2,$3,$5}')   Test memory: copying files finished" >> /mnt/debian/var/log/testserver.log
sleep 120
echo "$(date -R | awk '{print $2,$3,$5}')   Test memory: finished. Copying files not deleted" >> /mnt/debian/var/log/testserver.log
echo "$(date -R | awk '{print $2,$3,$5}')   Test HDD (dd + /dev/zero, 10G)" >> /mnt/debian/var/log/testserver.log
dd if=/dev/zero of=/mnt/debian/tmp/testfile10G.img bs=1k count=10485760 2>/dev/null
echo "$(date -R | awk '{print $2,$3,$5}')   Test HDD (dd + /dev/zero, 10G), finished" >> /mnt/debian/var/log/testserver.log
rm -rf /mnt/debian/tmp/testfile*
rm -rf /mem/iso-*
sleep 120
done

До этого я трижды прогонял этот тест (на Debiane, который был установлен на этом рейде), и дважды сервак вис после «Test dd 512M finished».

Теперь, я получил возможность срисовать логи, итак, грузимся, монтируемся:

...
Jan 23 12:26:26 livecd kernel: EXT4-fs (cciss!c0d0p1): mounted filesystem with ordered data mode. Opts: (null)
Jan 23 12:27:14 livecd dhcpcd[24180]: enp3s1f1: broadcasting for a lease
Jan 23 12:27:15 livecd dhcpcd[24180]: enp3s1f0: broadcasting for a lease
...

Спустя 2,5 суток, упс!

...
Jan 25 20:24:47 livecd kernel: INFO: task jbd2/cciss!c0d0:24327 blocked for more than 120 seconds.
Jan 25 20:24:47 livecd kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jan 25 20:24:47 livecd kernel: jbd2/cciss!c0d0 D f6788000     0 24327      2 0x00000000
Jan 25 20:24:47 livecd kernel: f3c23b10 00000046 1b54d000 f6788000 f6c59770 0a646588 00024a73 c155ef80
Jan 25 20:24:47 livecd kernel: c155ef80 c14d2140 f6febcd8 c1045fb5 f6febce8 f6febce8 00000202 00000202
Jan 25 20:24:47 livecd kernel: c10591d9 3b4d88fb 00000007 0a6476d8 00024a73 f6febcc8 0266a950 c14d2140
Jan 25 20:24:47 livecd kernel: Call Trace:
Jan 25 20:24:47 livecd kernel: [<c1045fb5>] ? ktime_get_ts+0x41/0xc6
Jan 25 20:24:47 livecd kernel: [<c10591d9>] ? delayacct_end+0x8d/0x95
Jan 25 20:24:47 livecd kernel: [<c10a24e6>] ? __wait_on_buffer+0x1a/0x1a
Jan 25 20:24:47 livecd kernel: [<c1045fb5>] ? ktime_get_ts+0x41/0xc6
Jan 25 20:24:47 livecd kernel: [<c10a24e6>] ? __wait_on_buffer+0x1a/0x1a
Jan 25 20:24:47 livecd kernel: [<c1398533>] ? io_schedule+0x6e/0xa2
Jan 25 20:24:47 livecd kernel: [<c10a24eb>] ? sleep_on_buffer+0x5/0x8
Jan 25 20:24:47 livecd kernel: [<c1397150>] ? __wait_on_bit+0x2d/0x58
Jan 25 20:24:47 livecd kernel: [<c13971d6>] ? out_of_line_wait_on_bit+0x5b/0x63
Jan 25 20:24:47 livecd kernel: [<c10a24e6>] ? __wait_on_buffer+0x1a/0x1a
Jan 25 20:24:47 livecd kernel: [<c1036f3a>] ? autoremove_wake_function+0x29/0x29
Jan 25 20:24:47 livecd kernel: [<c10a24e4>] ? __wait_on_buffer+0x18/0x1a
Jan 25 20:24:47 livecd kernel: [<c113739a>] ? jbd2_journal_commit_transaction+0xaa5/0x1077
Jan 25 20:24:47 livecd kernel: [<c113971c>] ? kjournald2+0xa3/0x1ac
Jan 25 20:24:47 livecd kernel: [<c113971c>] ? kjournald2+0xa3/0x1ac
Jan 25 20:24:47 livecd kernel: [<c1036f11>] ? abort_exclusive_wait+0x63/0x63
Jan 25 20:24:47 livecd kernel: [<c1139679>] ? commit_timeout+0x5/0x5
Jan 25 20:24:47 livecd kernel: [<c103686b>] ? kthread+0x8d/0x92
Jan 25 20:24:47 livecd kernel: [<c13997bb>] ? ret_from_kernel_thread+0x1b/0x30
Jan 25 20:24:47 livecd kernel: [<c10367de>] ? __kthread_parkme+0x50/0x50
...

Вот лог при попытке писать процессом test.sh:

...
Jan 25 20:26:47 livecd kernel: INFO: task test.sh:28913 blocked for more than 120 seconds.
Jan 25 20:26:47 livecd kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jan 25 20:26:47 livecd kernel: test.sh         D 00000001     0 28913  24246 0x00000000
Jan 25 20:26:47 livecd kernel: f654bb10 00000086 ffffffff 00000001 f6c59030 c78d2438 c3ef4358 c155ef80
Jan 25 20:26:47 livecd kernel: c155ef80 f6a0b6a0 db44c588 db44c5c0 00001000 f533f780 f685f320 f31e9000
Jan 25 20:26:47 livecd kernel: c10a4620 00001000 00000001 f7548760 c155ef80 00000246 00000246 c1036e16
Jan 25 20:26:47 livecd kernel: Call Trace:
Jan 25 20:26:47 livecd kernel: [<c10a4620>] ? __getblk+0x23/0x283
Jan 25 20:26:47 livecd kernel: [<c1036e16>] ? prepare_to_wait+0x57/0x5f
Jan 25 20:26:47 livecd kernel: [<c11361d4>] ? do_get_write_access+0x1ae/0x346
Jan 25 20:26:47 livecd kernel: [<c1036f3a>] ? autoremove_wake_function+0x29/0x29
Jan 25 20:26:47 livecd kernel: [<c113644f>] ? jbd2_journal_get_write_access+0x18/0x26
Jan 25 20:26:47 livecd kernel: [<c111eb42>] ? __ext4_journal_get_write_access+0x3b/0x4e
Jan 25 20:26:47 livecd kernel: [<c11086a0>] ? ext4_reserve_inode_write+0x2c/0x5f
Jan 25 20:26:47 livecd kernel: [<c11086f2>] ? ext4_mark_inode_dirty+0x1f/0x14f
Jan 25 20:26:47 livecd kernel: [<c110aeba>] ? ext4_dirty_inode+0x2c/0x42
Jan 25 20:26:47 livecd kernel: [<c109df06>] ? __mark_inode_dirty+0x1e/0x185
Jan 25 20:26:47 livecd kernel: [<c1095d8b>] ? update_time+0x81/0x8a
Jan 25 20:26:47 livecd kernel: [<c1095e05>] ? file_update_time+0x71/0x8a
Jan 25 20:26:47 livecd kernel: [<c1063364>] ? __generic_file_aio_write+0x239/0x3a0
Jan 25 20:26:47 livecd kernel: [<c106351f>] ? generic_file_aio_write+0x54/0x9a
Jan 25 20:26:47 livecd kernel: [<c1103089>] ? ext4_file_write+0x3ec/0x413
Jan 25 20:26:47 livecd kernel: [<c108d348>] ? link_path_walk+0x57/0x675
Jan 25 20:26:47 livecd kernel: [<c1075289>] ? do_wp_page+0x2b6/0x641
Jan 25 20:26:47 livecd kernel: [<c108f884>] ? path_openat.isra.57+0x9c/0x33a
Jan 25 20:26:47 livecd kernel: [<c1076c32>] ? handle_pte_fault+0x5f6/0x633
Jan 25 20:26:47 livecd kernel: [<c108574d>] ? do_sync_write+0x61/0x88
Jan 25 20:26:47 livecd kernel: [<c10856ec>] ? do_sync_readv_writev+0x8d/0x8d
Jan 25 20:26:47 livecd kernel: [<c1085fa6>] ? vfs_write+0x9d/0x13d
Jan 25 20:26:47 livecd kernel: [<c10862ad>] ? SyS_write+0x3f/0x6c
Jan 25 20:26:47 livecd kernel: [<c1398ff8>] ? syscall_call+0x7/0xb
...

Итого: баг проявляется на разных винтах, т.е. это не проблема бэдов. Получается гайка контроллеру/материнке?

Решено обновлением прошивки

leg0las
()

Пару вопросов по s2ram и s2disk

Решил на домашнем компе (не ноуте) запилить «ждущий» и «спящий» режим.

Спящий как ни странно завелся сразу практически, только есть момент - есть например браузер с кучей вкладок, скушавший гиг-полтора ОЗУ. Засыпаем, просыпаемся - а то, что у браузера находилось в памяти, продолжает находится в свопе и начинаются торррмоооозззааааа. Используется sys-power/suspend + sys-power/hibernate-script на стандартном 3.10.25-gentoo (текущее стабильное). Своп сделан в виде раздела.

Ждущий не завелся. Совсем:

# s2ram 
Machine is unknown.
This machine can be identified by:
...
# s2ram -f
switching from vt7 to vt1... succeeded
fbcon fb0 state 1
s2ram_do: No such device
fbcon fb0 state 0
switching back to vt7... succeeded

$subj

Пардон, s2ram таки работает, с ключиком -f после ковыряния биоса и установки S3 вместо S1 режима (хз что это) - комп почти моментально потух, но индикатор питания мигал - так что все работает. Включился тоже моментально.

UPD: решено использованием tuxonice минус initrd (был самодельный, кастомный)

 

leg0las
()

AMD FX все.

Я конечно понимаю, что новость датирована месячной давности, но на ЛОРе вроде не было, если было - дайте ссылку на тред.

Камни AMD FX все. Дальше только говногибрид. А жаль, я надеялся годиков через 3 купить крутой «бульдозер».

Пруф, пруфпик роадмапа

Оптероны что-ли брать выходит?!?

UPD: Ложная тревога, расходимся: http://www.ixbt.com/news/hard/index.shtml?17/45/12

Для Ъ: Слайд взят неизвестно откуда, AMD будет клепать «чистокровные» CPU, но преемник вишера пока не известен.

 ,

leg0las
()

Вышел eudev-1.4

$subj

Чейнджлог не нашел, смотрю сейчас на гитхабе.

 ,

leg0las
()

INFO: task <task:ID> blocked for more than 120 seconds

Периодически виснет железяка, пруф

Проверял memtest`ом память, fsck и badblocks (первое, что под руку подвернулось) нихрена не нашли. На серваке стоит Debian (стоял и ранее, решили расширить, докинунуть два винта и воткнуть LVM, т.к. предидущий админ его ниасилил), ошибка повторилась.

Железка - HP ProLiant DL380 G4

 

leg0las
()

CMS для бложика

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

Требования: предпочтительно PHP, от вариантов на рельсах/перле не отказываюсь (если конечно это не перекомпилиивание половины компонентов, питон нахрен, спасибо, мне возни с virtualenv+djangocms/plone хватило, когда по FAQ и 500-я ошибка) не Joomla (дырявая до немогу), не WP (тормозное говно + траблы с обновлениями), не Drupal (просто не нравится, да и API часто ломают). К самому движку: шустрый, быстрый, не перегруженный, локализированый на великий и могучий, желательно - возможность интеграции с видеосервисами (ютруп), социальными сетями и гуглом (можно mapsы). База - MySQL. Дистр - Debian, на крайняк Gentoo воткну.

Присмотрел b2evolution - сам движок неплох, но плагины и само сообщество протухло, походу клепается только CMS, за темами/плагинами никто не следит. Сейчас посматриваю на MODx.

Имеются небольшие скиллы кодинга на PHP.

 , ,

leg0las
()

Zabbix: преобразование значений 1 Kb -> 1024 b

# zabbix_server -V
Zabbix server v2.0.9 (revision 39085) (08 October 2013)

Нужно считать трафик на железках (по SNMP) и место на дисках. Поле «Отображение значения» и соответствующие преобразования походу игнорятся. Гугл молчит - говорит был такой баг в первых версиях 2.0 ветки. Ставил и «B», «b», «B/s» и «b/s» в «Единицах измерения» - без толку. Приставку ставит, но считает миллионами. Оно конечно не критично, но хотелось бы чтобы все по феншую было.

П.С. В топике с воплями что КБ и МБ != КиБ и МиБ просьба не появляться.

 

leg0las
()

альтернатива nmap, где-то проскакивало в новостях в течении года

$subj. Еще помню, что она сканит настолько быстро, насколько это позволяет сетевой интерфейс.

 

leg0las
()

iDiots

Я просто оставлю это здесь:

http://www.youtube.com/watch?v=NCwBkNgPZFQ

Для Ъ не будет.

 , ,

leg0las
()

Раздать IPTV в NAT

Собственно для этого используется igmpproxy. Использовался до того времени, пока не было обнаружено, что работает оно (IPTV) не везде.

Итак, схема:

Провайдерское оборудование -> DGS-3100[1-й] -> DGS-3100[2-й] -> NAT (внешний, белый) -> NAT (подсети) -> DGS-3100-24[2-й]

Проблема в том, что поток приходится раздавать с 2-го на 1-й свитч в NAT`е, и в то же время принимать с 1-го на 2-й на реальниках. При запуске igmpproxy iptv отваливается напрочь, на свитчах igmp_snooping включен, для vlan`а с белыми ip state enable. Собственно сабж - как я понимаю нужно копать в сторону ACL на свитчах, чтобы разрулить эти потоки в обе стороны? Поделитесь пруфами.

До этого работало «частично» с ACL`ями на первом свитче - все, что подключено к второму, работало, на первом IPTV отсутствовал даже на реальниках. Сейчас все ACL`ки убраны.

 , ,

leg0las
()

То ли лыжи не едут... br0 && NAT && KVM

# cat /etc/network/interfaces
...

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
        address x.y.z.251
        netmask 255.255.255.0
        gateway x.y.z.254
...
auto br0
iface br0 inet static
        address x.y.z.249
        network x.y.z.0
        netmask 255.255.255.0
        broadcast x.y.z.255
        gateway x.y.z.254
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

При запуске сервера eth0 не видна извне. Т.е. оно как бы запускается, в ifconfig видна, но тем не менее зайти извне нельзя. Важное замечание: на серваке также крутится NAT, на второй сетевке (eth1) висит 15+ vlan`ов. ЛОРчик, помоги, я уже моск сломал вычитывая конфигурацию бриджа для KVM.

 , , ,

leg0las
()

RSS подписка на новые темы