вторник, 15 июня 2010 г.
вторник, 11 мая 2010 г.
ZFS user and group quota
Начиная с ZFS версии 4 и ZFS пула версии 15 (проверить версию можно командами "zfs upgrade" и "zpool upgrade"), встроенных в Solaris 10 Update 8, на ZFS можно устанавливать пользовательские и групповые квоты. Далее по списку задач (для групп - просто меняйте везде "user" на "group"). Имена вымышленные, в ходе экперимента ни одного жетского диска не пострадало:
Задать квоту:
# zfs set userquota@ivan=1G mypool/coolfs
Посмотреть квоту:
# zfs get userquota@ivan mypool/coolfs
Посмотреть занятое пользователем пространство:
# zfs get userused@ivan mypool/coolfs
А больше, собственно, ничего и не нужно ...
Из минусов: не хватает возможности устанавливать квоты на пул. Плюс при интенсивном копировании данных на ФС квота может переполниться процентов на 20 ... следует учесть сие поведение ... об этом даже сказано в мане.
Задать квоту:
# zfs set userquota@ivan=1G mypool/coolfs
Посмотреть квоту:
# zfs get userquota@ivan mypool/coolfs
Посмотреть занятое пользователем пространство:
# zfs get userused@ivan mypool/coolfs
А больше, собственно, ничего и не нужно ...
Из минусов: не хватает возможности устанавливать квоты на пул. Плюс при интенсивном копировании данных на ФС квота может переполниться процентов на 20 ... следует учесть сие поведение ... об этом даже сказано в мане.
понедельник, 3 мая 2010 г.
CacheFS
Сегодняшний материал - про CacheFS. CacheFS позволяет повысить производительность при работе с NFS и статичными файловыми системами. Материал подготовлен по мотивам сайта http://c0t0d0s0.org. Адаптированная версия на русском языке доступна по ссылке: CacheFS. Оригинальный текст здесь.
воскресенье, 25 апреля 2010 г.
Работа - часть жизни.
С одним умным человеком мне довелось пообщаться мельком в течение одного дня. Но именно он оставил неизгладимое впечатление в моем сознании. Очень грамотный, открытый, искренний, исполняющий свои обещания (это выяснилось позже) - таким должен быть современный менеджер (не думайте, что я тут лесть пишу - он всё равно не местный). Но речь не о нём - речь о том, что от такого человека я узнал следующее:
Все мы работаем, все мы тратим своё время на исполнение служебных обязанностей. Зачастую это преподносится, как зря прожитое, поскольку только личная жизнь есть то единственное, что имеет реальную ценность.
Но так ли это? Неужели Вы не помните своих коллег, с которыми решали общие задачи, которые подсказывали Вам, как сделать лучше, которых, возможно, Вы учили разным вещам? Общие проекты, идеи, обсуждения, споры - всё это остаётся и всё это ценно - и не стоит думать, что работа - это нечто лишнее в Вашей жизни. Присмотритесь. Есть ли в Вашем коллективе кто-то, на кого Вы ориентируетесь? Или кто-то, с кем у Вас постоянно оживленная дискуссия на тему и без темы? Или кто-то, в ком Вы уверены на все 100, что сможете позвонить и он поможет Вам с возникшей личной проблемой. Естественно, ситуации бывают разные, но нужно стремиться к тому, чтобы работа не становилась зря прожитым временем зарабатывания денег - работа, в каком-то смысле, должна быть частью жизни - и тогда она будет в радость.
Оффтопик:
Вы не замечали, что многие из Ваших друзей уже свалили - да именно "свалили" - из России?
Все мы работаем, все мы тратим своё время на исполнение служебных обязанностей. Зачастую это преподносится, как зря прожитое, поскольку только личная жизнь есть то единственное, что имеет реальную ценность.
Но так ли это? Неужели Вы не помните своих коллег, с которыми решали общие задачи, которые подсказывали Вам, как сделать лучше, которых, возможно, Вы учили разным вещам? Общие проекты, идеи, обсуждения, споры - всё это остаётся и всё это ценно - и не стоит думать, что работа - это нечто лишнее в Вашей жизни. Присмотритесь. Есть ли в Вашем коллективе кто-то, на кого Вы ориентируетесь? Или кто-то, с кем у Вас постоянно оживленная дискуссия на тему и без темы? Или кто-то, в ком Вы уверены на все 100, что сможете позвонить и он поможет Вам с возникшей личной проблемой. Естественно, ситуации бывают разные, но нужно стремиться к тому, чтобы работа не становилась зря прожитым временем зарабатывания денег - работа, в каком-то смысле, должна быть частью жизни - и тогда она будет в радость.
Оффтопик:
Вы не замечали, что многие из Ваших друзей уже свалили - да именно "свалили" - из России?
пятница, 23 апреля 2010 г.
xargs
Век живи - век учись.
Открыл для себя xargs ...
xargs принимает обрабатывает свой стандартный вход (stdin) и передаёт это всё в качестве аргументов команде, указанной в качестве её (xargs) аргумента. Выглядит примерно так:
$ getent passwd | awk -F: '{print $1}' | xargs finger
в результате этой команды будет вызван finger по всем пользователям системы. При чём будет запущен будет только один finger с кучей аргументов, представляющих список пользователей через пробел - да именно через пробел. xargs разделяет поля входного потока по пробелам, табуляциям и переводам строки, и затем передаёт их все finger-у (в данном случае) в качестве аргументов.
Закономерно предположить, что командная строка вполне может переполнится - на этот счёт есть решение: ключик "-L <количество>" - при указании такого параметра xargs запустит команду несколько раз, передавая в качестве аргументов очередное <количество> строк.
Кроме этого она поможет при решении проблемы указанной в недавней записи про проблемы с пробелами в bash. В предложенном решении вместо "for" можно использовать xargs с ключиком "-0" (цифра ноль):
$ cat spaces.txt | xargs -0
str1 str2 str3 str4
str5 str6 str7 str8
str9 str10 str11 str12
Объяснение "-0" и прочие подробности - в "man xargs".
... взял её на вооружение.
Открыл для себя xargs ...
xargs принимает обрабатывает свой стандартный вход (stdin) и передаёт это всё в качестве аргументов команде, указанной в качестве её (xargs) аргумента. Выглядит примерно так:
$ getent passwd | awk -F: '{print $1}' | xargs finger
в результате этой команды будет вызван finger по всем пользователям системы. При чём будет запущен будет только один finger с кучей аргументов, представляющих список пользователей через пробел - да именно через пробел. xargs разделяет поля входного потока по пробелам, табуляциям и переводам строки, и затем передаёт их все finger-у (в данном случае) в качестве аргументов.
Закономерно предположить, что командная строка вполне может переполнится - на этот счёт есть решение: ключик "-L <количество>" - при указании такого параметра xargs запустит команду несколько раз, передавая в качестве аргументов очередное <количество> строк.
Кроме этого она поможет при решении проблемы указанной в недавней записи про проблемы с пробелами в bash. В предложенном решении вместо "for" можно использовать xargs с ключиком "-0" (цифра ноль):
$ cat spaces.txt | xargs -0
str1 str2 str3 str4
str5 str6 str7 str8
str9 str10 str11 str12
Объяснение "-0" и прочие подробности - в "man xargs".
... взял её на вооружение.
пятница, 16 апреля 2010 г.
Принятие решений
Все мы принимаем решения. Вся наша жизнь - сплошное принятие решений. Всё что мы имеем - результат принятия решений. Купить машину или ездить на автобусе, поспать подольше или успеть на работу, погулять или посмотреть телевизор - кругом решения, решения, решения. Большинство из них принимаются на автопилоте - наверное, отчасти это и правильно, иначе бы люди перестали с Вами попросту общаться, считая занудой. С другой стороны зачастую мы принимаем важные решения, не принимая во внимание их возможные последствия. Но сегодня речь не об этом. Речь о том как принимать решения.
Чисто теоретически есть три типа методов - "рациональный": плюсы/минусы в столбик и "эмоциональный": хочу/не хочу, и "комбинированный": хочу,но лучше прикинуть.
Все делают это по разному. Ниже я лишь опишу свой метод (он безусловно не уникален, но мало ли кому пригодится).
1. Этап первый. "Очевидность выбора"
Первым делом выбор проводится методом "очевидности" - если решение важное, но выбор очевиден, то и приступать к пункту 2 не имеет смысла. Безусловно здесь играет роль предыдущий опыт, знания, сообразительность ... и в том числе эмоциональность и люди, чьё мнение имеет высокий вес;
Если вкрадываются сомнения в предпочтительность одного из подходов - переходим ко второму этапу;
2. Этап второй. "Формулировка последствий"
На втором этапе нужно расписать все плюсы и минусы каждого из подходов - все-все-все, вплоть до мелочей. Это, в принципе, не сложно, если немного подумать. Займёт минут 10, но зато упростит жизнь в дальнейшем. Как про "слоников" (или про кого там ...) по пять и по три - большие, но по "пять", а эти по "три", зато маленькие. Так и тут плюсы и минусы всех слоников.
3. Этап третий. "Расстановка приоритетов"
Осталось решить, что в итоге имеет самое важное значение. В примере выше нужно решить хотите ли Вы съэкономить и купить слоников "по три", или же в первую очередь Вам нужны "большие" слоники.
Резюмируя: Очевидность выбора -> Формулировка последствий -> Расстановка приоритетов;
А вообще коллеги сказали, что в природе существует такой вот интересный подход:
Для принятия решения нужно ответить на четыре вопроса:
1. Что произойдёт, если я сделаю это?
2. Что не произойдёт, если я сделаю это?3. Что произойдёт, если я не сделаю это?
4. Что не произойдёт, если я не сделаю это?
По окончании сбора информации, можно переходить к Этапу три "Расстановка приоритетов" ;)
В заключение оффтопик:
Обсудите с друзьями и коллегами:
Работа. Мы тратим на неё почти всё своё время. В каком случае работа стОит того?
вторник, 13 апреля 2010 г.
BASH. Проблема с пробелами в файлах.
Очень интересная проблема, в которую по началу все втыкают очень долго.
Например, есть файл, состоящий из строк, в которых есть пробелы. Допустим, нам нужно обработать его в bash построчно. Первое что, приходит обычно в голову, сделать примерно так:
> for i in `cat file.txt`; do command $i; done
Однако, результат себя не оправдывает:
> cat spaces.txt
str1 str2 str3 str4
str5 str6 str7 str8
str9 str10 str11 str12
> for i in `cat spaces.txt`; do echo $i;done
str1
str2
str3
str4
str5
str6
str7
str8
str9
str10
str11
str12
Происходит это потому, что "for" разделяет передаваемые ему поля не только по переводу строки, но в том числе и по пробелам, что в свою очередь и приводит к таким проблемам.
Например, есть файл, состоящий из строк, в которых есть пробелы. Допустим, нам нужно обработать его в bash построчно. Первое что, приходит обычно в голову, сделать примерно так:
> for i in `cat file.txt`; do command $i; done
Однако, результат себя не оправдывает:
> cat spaces.txt
str1 str2 str3 str4
str5 str6 str7 str8
str9 str10 str11 str12
> for i in `cat spaces.txt`; do echo $i;done
str1
str2
str3
str4
str5
str6
str7
str8
str9
str10
str11
str12
Происходит это потому, что "for" разделяет передаваемые ему поля не только по переводу строки, но в том числе и по пробелам, что в свою очередь и приводит к таким проблемам.
Частным решением проблемы может стать использование промежуточных переменных и редактора sed. Например так:
> for i in `cat spaces.txt|sed s/\ /:/g`; do k=`echo $i | sed s/:/\ /g` && echo $k;done
str1 str2 str3 str4
str5 str6 str7 str8
str9 str10 str11 str12
... первым седом мы замемяем все пробелы на двоеточия, вторым, соответственно наоборот. В решении реальной задачи в качестве промежуточного шаблона нужно использовать какой-либо символ, либо какую-либо последовательность, которая не встречается в исходном файле.
Подписаться на:
Сообщения (Atom)
