Обычно, когда заканчивается место на файловой системе – ищем растущие файлы (обычно это логи всякие) и удаляем их.
Итак, как правильно удалять файлы? ;)
Проверяем, что этот файл не открыт каким-нибудь процессом:
fuser /dir/filename

Если файл занят, что прибиваем процесс (или делаем корректные действия, чтобы процесс отпустил файл), после этого удаляем.

А что делать, если никто ничего не проверял, файлик грохнули, а вот место не освободилось?
Читать полностью »

Есть такой убойный сервис у Sun, называется Shared shell. Нужен для предоставления удаленного доступа к telnet-ssh сервисам по https.
Обычно используют RemoteAdmin или что-нибудь подобное, чтобы удаленно настроить приложения, но очень часто у клиентов зарезаны порты и вообще, доступ к интернету сильно ограничен. Это приложение позволяет обойти эти ограничения для настройки терминальных приложений.
Это java приложение, работает через всякие прокси, хорошо себя ведет на слабых каналах. Позволяет предоставить полный доступ к консоли или доступ только для просмотра, тут же есть чат с поддержкой русского языка, карандашик, которым можно выделить что-нибудь. Один человек создает сессию, соединяется по telnet или ssh. Затем, меню «Conference-Invite» получает ключ, который отправляете человеку, который присоединяется к вашей сессии. Весь интерфейс интуитивно понятен. Вообщем – швейцарский нож, рекомендую ;)
Shared shell

shared_shell_1

shared_shell_2

По мотивам стандартной документации Perlvar.

Считать целиком файл в переменную:

open (MOCK, $filename) or die "$!";
local $/;
# переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS)
$_ =<MOCK> ;    # захавать моск файл целиком
close (MOCK);

Напечатать содержимое массива:
@a=qw( 1 2fewf wf g ag f);
local $,="\n";
# переопределяем встроенную переменную "разделитель полей" ($, или $OUTPUT_FIELD_SEPARATOR или $OFS)
print @a;

Читать полностью »

И снова grep

05.08.2009

Иногда есть данные и шаблоны, и чтобы выбрать данные – обычно используют цикл, в котором грепают по шаблону. Но тут недавно внимательно перечитал man grep и нашел интересный момент ;) Можно в одну команду вывести список строк, которые попадают (или не попадают) под шаблон

cat data.txt
111
222
333
112
122
233
444

cat template.txt
2
1

/usr/xpg4/bin/grep -f template.txt data.txt
111
222
112
122
233

Или не попадают
/usr/xpg4/bin/grep -v -f template.txt data.txt
333
444

Для чего это можно использовать? Ну например, список новых томов в VxVM, список новых файлов в каталоге – удобно динамически формировать список и сравнивать его со старым списком.

Вдруг резк опросела производительность по операциям воода-вывода. С чего начать?
Ну, конечно, iostat (смотри также Перегретый диск в vxvm). Получили диск, или диски, а если используется vxvm – тогда лучше воспользоваться vxstat:

1. выбираем наиболее загруженные диски
# vxstat -g DG01 -i 10 -c 3 -d
OPERATIONS BLOCKS AVG TIME(ms)
TYP NAME READ WRITE READ WRITE READ WRITE
dm array_raid1_08_1 6 260 96 5664 10.0 64.3
dm array_raid1_10_2 7 205 112 5296 12.9 68.7
dm array_raid1_10_3 6 1199 96 15408 18.3 163.6
dm array_raid1_10_4 7 178 112 5312 12.9 39.0
...
dm array_raid5_06_1 9 33 132 524 8.9 8.2
dm array_raid5_07_1 2 58 32 1120 5.0 11.6

Читать полностью »

Несколько полезных быстрых ссылок по Veritas Storage foundation от Symantec:

Найти и скачать последние патчи на продукты – Patch Central Beta

Центральный портал документации по продуктам Storage Foundation DocCentral

Быстрый переход на документацию по продектам Access product updates, security alerts, manuals and more with Enterprise Product Support.

Нормальные man-ы в html-виде:
Storage Foundation and High Availability 4.1 for Solaris Manual Pages

Storage Foundation and High Availability 5.0 for Solaris Manual Pages

В продолжнение темы Solaris. Что делать, если отвалился дисковый массив? еще пара советов по подключению отвалившихся дисков. Итак, ситуация примерно такая:
# vxdisk list
DEVICE TYPE DISK GROUP STATUS
c1t0d0s2 sliced rootdisk rootdg online
...
fabric_0 sliced - - online
fabric_1 sliced - - online
- - datadg02 DG01 failed was:fabric_0
- - datadg03 DG01 failed was:fabric_1

1. Проще всего остановить все тома, депортировать и импортировать дисковую группу.

Но что делать, если часть дисков отвалилась, но некоторые тома еще живы (ну например, часть томов находится на зеркалах на другом массиве), и останавливать сервис нельзя?
Читать полностью »

Ну пароли типа 123456 могут себе позволить только руты, а все остальные пусть мучаются, записывают на бумажках и приклеивают их на монитор ;) Ну вот, вообщем-то, генератор паролей. Условия: 8 символов, обязательно один символ из верхнего регистра, один из нижнего, один спецсимвол.
Пример работы:
RyCnY7Z#
osM,s7I{
Hx0a@f`7
IM(1Tl|S
P[\QKNa0
g8*`xHUp

Закачать password_gen.pl

Поставили нам на днях доблестные специалисты из HP новый процессор на сервер (вернее заменили).

При загрузке EFI орет благим матом, что:

EFI version 2.00 [14.62]
EFI64 Running on Intel(R) Itanium Processor Family
UEFI 2.0 IPF server rx6600 7.12 [Fri Feb 23 17:21:28 2007] firmware by HP

This boot experienced the following problems:
WARNING[37]: CPU(s) deconfigured

Address the warning issues as soon as possible.
Redisplay list with ‘info warning’ at EFI shell.

Читать полностью »

При выполнении сложных работ, в результате которых могут быть потеряны данные или нарушена работа приложений можно воспользоваться отключением «подзеркала» томов в VxVM, в случае проблем можно затем быстро подняться с оторванного подзеркала. В случае, когда объемы данных значительны, а окно для выполнения работ ограничено, то восстановление из бэкапа может привести к нарушению SLA. А такой способ является простым, быстрым и надежным ;)
Итак, пусть у нас есть дисковая группа DG01, каждый том имеет по два зазеркалированных плекса. Плексы располагаются на 2 массивах (ARRAY_01 и ARRAY_01) и сабдиски имеют в своем названии эти имена (на самом деле это не обязательно, это нужно лишь чтобы отгрипать плексы, а как вы их разделите – это ваше дело, хоть руками ;)

1. Для начала убедимся, что у нас все тома имеют больше одного плекса и они все активны:
vxprint -g DG01 -v -F "%name" -e "v_pl_num < 2 "
vxprint -g DG01 -p | grep DISABLE

Читать полностью »