Архив метки: Linux

Интересная головоломка.

Хм, попалась мне головоломка из практики… промучался с ней, к своему стыду, где то минут 40.

Задача, в perl-скрипте одной строчкой получить загрузку системы по ЦПУ.

Вот что первое приходит в голову:

if (`top -n 1 | grep Cpu`=~ /(\S+)\%id/) {print $1;}

Но, вроде на первый взгляд все правильно… а не работает. Вот почему не работает я и потратил около 40 минут, отя проблема то пустяшная. 🙂
Решение далее Читать далее

Системное и аппаратное время

Случилось как то такое, что внештатно перезагрузился один из серверов, после чего время прыгнуло на 1 месяц и 1 день вперед.. причем ntpd был запущен и запускался с опцией -g, но время почему то не подводилось…

Стали разбираться от чего же время после перезагрузки пригало. После гугленья нашли команду hwclock, которая с опцией -r читает аппаратное время, а с опцией -w подводит аппаратные часы в соответствии с системным временем.

После подвода аппаратных часов — время перестало прыгать. Оказалось что где то из 35 севреров на около 10 — аппаратное время не соответстовало текущему.

FreeBSD ZFS или Linux LVM ?

Очередной раз задался проблемой выбора ОС и ФС для своего хранилища…

Начну с того что мне больше импонирует FreeBSD + ZFS, но Linux как то больше распространен вроде и больше людей сидят на нем в GUI.  Нашел очень интересное сравнение этих двух сущностей: ZFSvsLVM. Из этого сравнения я вижу преимущества ZFS в том что ей проще управлять и она имеет встроенный контроль целостности данных, а главный минус — невозможность (возможно пока) уменьшить пул, путем исключения дисков из оного.

Пошел и задал вопрос на гугл-ответах и получил несколько интересных ответов.

Пока все же я все равно не определился. Возможно придется сделать две машины — одна под FreeBSD+ZFS, где часть дисков будет в RAIDZ а часть в обычном пуле и будет эта машина включаться по запросу для перемещения на нее данных и для взятия данных с нее для обработки. Вторая машина будет под Linux-ом с ГУИ Для работы и выполнения функции NAS-а.

Полезные ссылки:

mount error(12): Cannot allocate memory

Довольно часто на виртуальной машине отваливались сетевые диски с Windows7  и при попытке монтировать получал такую ошибку:

mount error(12): Cannot allocate memory

Спасибо интернету — решение находится здесь: http://alan.lamielle.net/2009/09/03/windows-7-nonpaged-pool-srv-error-2017

Кратко:

Выставить в 1 значение HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache

Выставить в 3 значение HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size

Перезапустить службу «Сервер».

Мне помогло.

Удаление двойных переводов строк

Вот небольшой скриптик, который удаляет из всех файлов в директории двойные переводы строк:

 perl |  copy code |? 
01
#!/usr/bin/perl
02
undef($/);
03
foreach $f (<*.*>) {
04
print "$f\n";
05
if ($f ne 'ddps.pl') {
06
open(FH,$f);
07
$l=;
08
close(FH);
09
$l=~ s/\r\n\s*\r\n/\n/smg;
10
open(FH,">$f.new");
11
print FH $l;
12
close(FH);
13
}
14
}

Восстановление RAID5 под Linux

В предыдущем посте мы разобрали как создать RAID5 массив в Linux-е.  Сегодня посмотрим что делать если в нашем массиве умер один из дисков. Читать далее

Программный RAID5 на Linux.

Сегодня будем изучать основы создания и восстановления программного раида 5го уровня (RAID5) в Linux openSuSe 11.1.

Сегодня мы просто создадим raid5 из 3х дисков (испытания проходят на виртуальной машине поэтому оперируем дисками по 1ГБ). Читать далее